Help. Отправка post запросов на php.

12
Igorrok
На сайте с 28.08.2007
Offline
117
2340

Прошу, подкиньте скрипт отправки пост запроса для авторизации на сайте и последовательная отправка cookies, для последующей авторизированной деятельности на сайте.

Пожалуйста, поделитесь реализацией.

Истина где-то рядом...
malls
На сайте с 08.08.2005
Offline
255
#1

Делюсь: CURL

zhidronsss
На сайте с 12.10.2007
Offline
36
#2

<?
$process = curl_init($url); //урл принимающий пост
curl_setopt($process, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($process, CURLOPT_POSTFIELDS, $post_data); //строка пост ?parametr=xxx&parametr2=qqq или массив $post[parametr1]="xxx" и т.д.
curl_setopt($process, CURLOPT_POST, 1);
$return = curl_exec($process); // в $return результат
curl_close($process);
?>
[Удален]
#3

Как уже писали выше, используйте библиотеку CURL.

Подробнее можно почитать здесь:

http://www.askapache.com/htaccess/sending-post-form-data-with-php-curl.html (англ)

http://www.phpclub.ru/detail/article/curl (русск)

Пример:

<?php
// Поиск книг на сервере amazon.com
$url = "http://www.amazon.com/exec/obidos/search-handle-form/002-5640957-2809605";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url); // set url to post to
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);// allow redirects
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable
curl_setopt($ch, CURLOPT_TIMEOUT, 3); // times out after 4s
curl_setopt($ch, CURLOPT_POST, 1); // set POST method
curl_setopt($ch, CURLOPT_POSTFIELDS, "url=index%3Dbooks&field-keywords=PHP+MYSQL"); // add POST fields
$result = curl_exec($ch); // run the whole process
curl_close($ch);
echo $result;
?>
[Удален]
#4

какую то херню вы все советуете :)

вот жесть.

http://phpdude.ru/archives/category/phpdude-curl

http://phpdude.ru/archives/552 это какбы как пример :)

Igorrok
На сайте с 28.08.2007
Offline
117
#5

Если не сложно, то кусок кода...

S
На сайте с 03.03.2009
Offline
2
#6
Igorrok:
Если не сложно, то кусок кода...

Свои 5 копеек вставлю:

Рекомендую скачать zend framework и присмотреться к классу Zend_Http_Client в мануале даны хорошие примеры в частности по вашей задаче, разберетесь, рекомендую настоятельно.

[Удален]
#7
Igorrok:
Если не сложно, то кусок кода...

так по второй ссылке кусок кода :)

T.R.O.N
На сайте с 18.05.2004
Offline
314
#8
seodorx:
Рекомендую скачать zend framework

Пипец. А вместо echo/ print / Response.write не рекомендуете использовать какойнить xxx_framework????? Ну серьезно??? Зачем плодить замены стандартных фунции которые, тем более, работают корректней, быстрее и в использовании, просто, удобней?

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
Snoopik
На сайте с 20.02.2009
Offline
29
#9

Класс


<?php
class Func
{
var $search = array (
"'<script[^>]*?>.*?</script>'si",
"'<[\/\!]*?[^<>]*?>'si",
'["]',
"'([\r\n])[\s]+'",
"'&(quot|#34);'i",
"'&(amp|#38);'i",
"'&(lt|#60);'i",
"'&(gt|#62);'i",
"'&(nbsp|#160);'i",
"'&(iexcl|#161);'i",
"'&(cent|#162);'i",
"'&(pound|#163);'i",
"'&(copy|#169);'i",
"'&#(\d+);'e");
var $replace = array (
"",
"",
"",
"\\1",
"\"",
"&",
"<",
">",
" ",
"chr(161)",
"chr(162)",
"chr(163)",
"chr(169)",
"chr(\\1)");
function parser($txt)
{
return preg_replace($this->search, $this->replace, $txt);
}
}
?>

Код авторизации:


<?
session_start ();
session_register ( 'aut' );
session_register ( 'login' );



$fun = new Func();
// Проверяем заполнены ли строки Логин и Пароль
if (! empty ( $_POST ['logi'] ) or ! empty ( $_POST ['pass'] )) {
// Проверяем через класс
$logi = $fun->parser( trim ( $_POST ['logi'] ) );
$pass = $fun->parser( trim ( $_POST ['pass'] ) );

$query = "SELECT * FROM users WHERE login = '" . mysql_real_escape_string($logi) . "' LIMIT 1";
$result = mysql_query ( $query );
$num = mysql_num_rows ( $result ) or die(mysql_error());
$row = @mysql_fetch_array ( $result );
if ($num == '0') {
$_SESSION ['aut'] = '0';
$_SESSION ['login'] = 'Гость';
echo 'Извините, но такого пользователя не существует.';
echo '<meta http-equiv="refresh" content="3 url=/usercp/">';

} else {
if ($row ['pass'] != md5 ( $pass )) {
echo 'Извините, но пароль не верный!';

} else {
if ($row ['adm'] == '1') {
$_SESSION ['aut'] = '2';
$_SESSION ['login'] = $logi;
echo 'Вы вошли в систему как администратор ' . $logi . ', сейчас вы будете перенаправлены';
echo '<meta http-equiv="refresh" content="3 url=/admin/">';

} else {
$_SESSION ['aut'] = '1';
$_SESSION ['login'] = $logi;
echo 'Вы вошли в систему как пользователь ' . $logi . ', сейчас вы будете перенаправлены';
echo '<meta http-equiv="refresh" content="3 url=/main/">';

}
}
}
} else {
echo 'Заполнителя правильно форму входа.';

}
?>

Это как из вариантов)

p.s понравилось, поставь репу)

public class SearchEngines
dvaes
На сайте с 03.09.2007
Offline
65
#10

че-т не понял. к чему это в данной теме?)

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий