ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

07.08.2007, 18:04
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Оно то может и работает (оптимизатор Sql), но к чему это? Лишняя информация в коде, логически некорректный код... В общем это то, что называется "плохой стиль программирования", да и перенос такого когда на разных Sql-платформах будет вести себя по разному...
|
|
|

08.08.2007, 07:43
|
|
Познающий
Регистрация: 10.06.2007
Сообщений: 63
Провел на форуме: 324710
Репутация:
40
|
|
Сообщение от Ni0x
myp3zz, просто location меняй, header('Location: script2.php');
дак а если данные передаются скрипту который мне не изменить например который на другом сайте
|
|
|

08.08.2007, 09:19
|
|
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме: 4172659
Репутация:
646
|
|
myp3zz, тогда данные отправляй скрипту, куда должен попасть пользователь, а скрипт пусть уже отправляет куда надо (через curl это делать удобно)
|
|
|

08.08.2007, 10:23
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
myp3zz, смотря каким методом передаются данные... Если методом GET тогда всё очень просто... Предположим, что твой скрипт обработки называется myhandler.php, а чужой - somehandler.php и при этом ты взаимодействуешь с переменными a, b и c. Тогда, чтобы одновременно обработать данные в твоём скрипте, и при этом передать их другому, твой myhandler.php должен выглядеть так:
<?php
ob_start();
// Тут идёт обработка переменных $_GET["a"], $_GET["b"] и $_GET["c"]
// Редирект юзера
header("Location: http://somehost.ru/somehandler.php?a={$_GET["a"]}&b={$_GET["b"]}&c={$_GET["c"]}");
ob_end_flush();
?>
В случае, если данные передаются методом POST, то тут уже придётся реализовать взаимодействие через сокеты или библиотеку CURL. Если через сокеты, то твой скрипт myhandler.php будет смотреться примерно так:
<?php
$requestContent = sprintf("a=%s&b=%s&c=%s", $_POST["a"], $_POST["b"], $_POST["c"]);
$sendData = "POST /somehandler.php HTTP/1.1\r\n";
$sendData .= "Host: www.somehost.ru\r\n";
$sendData .= "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0\r\n";
$sendData .= "Pragma: no-cache\r\n";
$sendData .= "Content-Type: application/x-www-form-urlencoded\r\n";
$sendData .= sprintf("Content-Length: %d\r\n", strlen($requestContent));
$sendData .= "Connection: Close\r\n\r\n";
$sendData .= $requestContent;
$socket = fsockopen("www.somehost.ru", 80, $errno, $errstr, 60);
if (!$socket) die($errstr);
$ret = fwrite($socket, $sendData);
if (!$ret) die("Can't write to socket");
$response = "";
while (!feof($socket)) {
response .= fgets($socket, 1024);
}
fclose($socket);
// На данном этапе у нас в $response будет ответ сервера, разумеется
// его нужно будет проанализировать, чтобы понять удачно ли были
// переданы данные. Тут же организуем обработку переменных
// $_POST["a"], $_POST["b"] и $_POST["c"]
?>
Если взаимодействие будет через CURL, то тогда придётся написать что-то типа такого:
<?php
$requestContent = sprintf("a=%s&b=%s&c=%s", $_POST["a"], $_POST["b"], $_POST["c"]);
$sendData = "POST /somehandler.php HTTP/1.1\r\n";
$sendData .= "Host: www.somehost.ru\r\n";
$sendData .= "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0\r\n";
$sendData .= "Pragma: no-cache\r\n";
$sendData .= "Content-Type: application/x-www-form-urlencoded\r\n";
$sendData .= sprintf("Content-Length: %d\r\n", strlen($requestContent));
$sendData .= "Connection: Close\r\n\r\n";
$sendData .= $requestContent;
$curlHandler = curl_init();
curl_setopt($curlHandler, CURLOPT_URL, "http://www.somehost.ru");
curl_setopt($curlHandler, CURLOPT_PORT, 80);
curl_setopt($curlHandler, CURLOPT_TIMEOUT, 60);
curl_setopt($curlHandler, CURLOPT_CUSTOMREQUEST, $sendData);
curl_setopt($curlHandler, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curlHandler, CURLOPT_HEADER, true);
curl_setopt($curlHandler, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlHandler, CURLOPT_FAILONERROR, false);
$response = curl_exec($curlHandler);
if (curl_errno($curlHandler) != CURLE_OK) die(curl_error($curlHandler));
// На данном этапе у нас в $response будет ответ сервера, разумеется
// его нужно будет проанализировать, чтобы понять удачно ли были
// переданы данные. Тут же организуем обработку переменных
// $_POST["a"], $_POST["b"] и $_POST["c"]
?>
|
|
|

08.08.2007, 11:01
|
|
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме: 4172659
Репутация:
646
|
|
На curl'е можно вообще не прибегать к протоколу HTTP как таковому. Например, вот так можно передать POST данные:
Код:
$c = curl_init(url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_POSTFIELDS,'par1=bla1&par2=bla2');
$result = curl_exec($c);
curl_close ($c);
|
|
|

08.08.2007, 11:12
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Joker-jar, вы забыли указать curl_setopt($c, CURLOPT_POST, true). По умолчанию CURL делает GET запросы. Да и вообще я привык работать с HTTP протоколом на одном уровне... То, что описал я, помогает понять суть работы скрипта.
|
|
|

08.08.2007, 14:48
|
|
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
Провел на форуме: 1469995
Репутация:
589
|
|
header("Location: http://somehost.ru/somehandler.php?a={$_GET["a"]}&b={$_GET["b"]}&c={$_GET["c"]}");
Зачем такие сложности?
PHP код:
header('Location: http://somehost.ru/somehandler.php?' . $_SERVER['QUERY_STRING']);
|
|
|

08.08.2007, 14:56
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Ну там же могут быть и другие переменные?  Да и там есть такой пункт как:
// Тут идёт обработка переменных $_GET["a"], $_GET["b"] и $_GET["c"]
Лучше на протяжении скрипта использовать одни и те же переменные, чем мыкаться между разными... Так придётся сделить за двумя параметрами, филтьтровать, проверять типы и т.д.
|
|
|

21.08.2007, 08:44
|
|
Новичок
Регистрация: 14.08.2007
Сообщений: 9
Провел на форуме: 24643
Репутация:
1
|
|
Помогите составить запрос для постинга сообщения в ФАК.
Адрес фака: http://www.p i e f.ru/faq/
Нужна ссылка вида http://domain.ru/faq/add.asp?=message=123date=123
P.S. Там asp. Заранее спасибо.
|
|
|

21.08.2007, 09:43
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
najort, ты обратил внимание, что данные передаются методом POST? Ты не сможешь дёрганьем урлы добавить сообщение...
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|