ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > PHP, PERL, MySQL, JavaScript
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #331  
Старый 07.08.2007, 18:04
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

Оно то может и работает (оптимизатор Sql), но к чему это? Лишняя информация в коде, логически некорректный код... В общем это то, что называется "плохой стиль программирования", да и перенос такого когда на разных Sql-платформах будет вести себя по разному...
 

  #332  
Старый 08.08.2007, 07:43
myp3zz
Познающий
Регистрация: 10.06.2007
Сообщений: 63
Провел на форуме:
324710

Репутация: 40
Отправить сообщение для myp3zz с помощью ICQ
По умолчанию

Цитата:
Сообщение от Ni0x  
myp3zz, просто location меняй, header('Location: script2.php');
дак а если данные передаются скрипту который мне не изменить например который на другом сайте
 

  #333  
Старый 08.08.2007, 09:19
Joker-jar
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме:
4172659

Репутация: 646


Отправить сообщение для Joker-jar с помощью ICQ
По умолчанию

myp3zz, тогда данные отправляй скрипту, куда должен попасть пользователь, а скрипт пусть уже отправляет куда надо (через curl это делать удобно)
 

  #334  
Старый 08.08.2007, 10:23
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

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"]

?>
 

  #335  
Старый 08.08.2007, 11:01
Joker-jar
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме:
4172659

Репутация: 646


Отправить сообщение для Joker-jar с помощью ICQ
По умолчанию

На 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);
 

  #336  
Старый 08.08.2007, 11:12
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

Joker-jar, вы забыли указать curl_setopt($c, CURLOPT_POST, true). По умолчанию CURL делает GET запросы. Да и вообще я привык работать с HTTP протоколом на одном уровне... То, что описал я, помогает понять суть работы скрипта.
 

  #337  
Старый 08.08.2007, 14:48
Helios
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
Провел на форуме:
1469995

Репутация: 589
Отправить сообщение для Helios с помощью ICQ
По умолчанию

Цитата:
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']); 
 

  #338  
Старый 08.08.2007, 14:56
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

Ну там же могут быть и другие переменные? Да и там есть такой пункт как:

Цитата:
// Тут идёт обработка переменных $_GET["a"], $_GET["b"] и $_GET["c"]
Лучше на протяжении скрипта использовать одни и те же переменные, чем мыкаться между разными... Так придётся сделить за двумя параметрами, филтьтровать, проверять типы и т.д.
 

  #339  
Старый 21.08.2007, 08:44
najort
Новичок
Регистрация: 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. Заранее спасибо.
 

  #340  
Старый 21.08.2007, 09:43
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

Цитата:
<form method=post>

najort, ты обратил внимание, что данные передаются методом POST? Ты не сможешь дёрганьем урлы добавить сообщение...
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ