PHP: <?php $url = "http://www.kreativ.realkran.ru/up.php?_fio=Petya Vasechkin&_email=Petya Vasechkin&_psev=Petya Vasechkin&_name=Petya Vasechkin&_com=Petya Vasechkin"; // при помощи этой функции разбиваем адрес на массив, который будет содержать хост, путь и список переменных. $parse_url = parse_url($url); $path = $parse_url["path"]; // если есть список параметров if($parse_url["query"]) // добавляем к пути до файла список переменных(?var=23&var2=54) $path .= "?" . $parse_url["query"]; // тут получаем хост (test.ru) $host= $parse_url["host"]; // а вот тут создаем список переменных с параметрами. Эти данные будут переданы через POST. Все значения переменных обязательно нужно кодировать urlencode ("еще тест") $fp = fsockopen($host, 80, $errno, $errstr, 10); if ($fp) echo "true"; else echo "false"; if ($fp) { $out = "POST ".$url." HTTP/1.1\r\n"; $out .= "Host: ".$host."\r\n"; $out .= "Referer: ".$url."\r\n"; $out .= "Cookie: income=1\r\n"; $out .= "Content-Type: multipart/form-data; boundary=1BEF0A57BE110FD467A\r\n"; $out .= "Content-Length: 1024\r\n\r\n"; $out .= "--1BEF0A57BE110FD467A\r\n"; $out .= "Content-Disposition: form-data; name=\"_fio\"\r\n\r\n"; $out .= "Petya Vasechkin\r\n"; $out .= "--1BEF0A57BE110FD467A\r\n"; $out .= "Content-Disposition: form-data; name=\"_email\"\r\n\r\n"; $out .= "milo@ya.ru\r\n"; $out .= "--1BEF0A57BE110FD467A\r\n"; $out .= "Content-Disposition: form-data; name=\"_psev\"\r\n\r\n"; $out .= "Petya Vasechkin\r\n"; $out .= "--1BEF0A57BE110FD467A\r\n"; $out .= "Content-Disposition: form-data; name=\"_name\"\r\n\r\n"; $out .= "Petya Vasechkin\r\n"; $out .= "--1BEF0A57BE110FD467A\r\n"; $out .= "Content-Disposition: form-data; name=\"zak\"; filename=\"text.txt\"\r\n"; $out .= "Content-Type: application/octet-stream\r\n"; $out .= "Content-Transfer-Encoding: binary\r\n\r\n"; $out .= "Content-Disposition: form-data; name=\"_com\"\r\n\r\n"; $out .= "Petya Vasechkin\r\n"; $out .= "--1BEF0A57BE110FD467A\r\n"; echo $out; fputs($fp, $out); // отправляем данные echo $errno; echo $errstr; ?> Тренируюсь в отправке пост запроса в формате multipart/form-data, fsockopen выдает тру, но запрос не доходит, нужна помощь, если запрос правильный, но работа не добавляется.
Пуск -> Выполнить -> Telnet www.kreativ.realkran.ru 80 Далее набирай POST-запрос (можно copy/paste) и смотри что придет в ответ.
По-моему, ты просто где-то спёр код и теперь хочешь чтобы тебе его верно перписали. Подозрительный ты супчик. Выдаёт тру потому что подсоеденение прошло. Ошибка потому что заголовки не прошли. Первое в POST Content-Length должен быть правильно указан. У тебя 1024 по всей видимости просто с потолка слетело. А должно быть strlen(всё, что ты отправляешь) или filesize(который ты читаешь). Или типа того.
А можно ссылку где почитать о отправке post запросов? Хотелось бы понять какое поле за что отвечает. Мне например нужно отправить запрос с двумя переменными например var1=15 и var2=test что в приведенном примере нужно изменить?
Пытаюсь заставить скрипт авторизовываться через curl на почему то входа не происходит. выкладываю текст кода, скажите что неправильно делаю? Код (Text): $url = "http://tsn.spb.ru/company/index.php"; $login = 'test1'; // логин $password = '123321123321'; // пассворд $submit='Войти'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_TIMEOUT, 3); // Таймаут после 4 секунд curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MRA 4.6 (build 01425); .NET CLR 1.1.4322)'); curl_setopt($ch, CURLOPT_REFERER,$url); curl_setopt($ch, CURLOPT_POST, 1); // Устанавливаем метод POST curl_setopt($ch, CURLOPT_POSTFIELDS, "referer=&t=&f=&st=login=$login&password=$password&submit=$submit&CookieDate=1"); // посылаемые значения $result = curl_exec($ch);
telef, ищи в интернете. Здесь никто не поможет, ибо любой пост запрос расценивается за попытки спама. Исключая XML RPC, конечно.
Потому что потому. Потому что хз чья это база, ага. Если твоя проверяй высылая на почту. Или пользуй интернет для изучений POST-запросов.
Все разобрался! По примеру выше все работает. т.е. post отправляется, данные логин и пароль проверяются, но почему то вход не происходит может кто подскажет почему?
все разобрался надо было куки сохранять! PHP: curl_setopt($ch, CURLOPT_COOKIEFILE, $user_cookie_file); curl_setopt($ch, CURLOPT_COOKIEJAR, $user_cookie_file); Вопрос А как мне открыть вторую страницу с этими же куками?