Forum Webscript.Ru

Программирование => PHP => Тема начата: Shelya от 30 Ноября 2001, 20:21:41

Название: Submit из скрипта
Отправлено: Shelya от 30 Ноября 2001, 20:21:41
Вот наткнулся на проблемку, не знаю как ее поправильнее решить.

Конкретно надо из скрипта1 переслать данные скрипту2 (и запустить его), как будто на скрипт2 сделали submit какой-то формы. Знаю как это сделать через exec("curl ... Есть ли другие способы?

Да, и еще: как отослать на клиентскую машину файл, который генерируется на лету? То есть результатом выполнения скрипта является файл, который пользователь может сохранить на диске.

Заранее спасибо за ответы!
Название: Submit из скрипта
Отправлено: VaV от 30 Ноября 2001, 21:12:29
вызвать подобно методу GET
header("Location:call_me.php?value1=$data1&value2=$data2");
Название: Submit из скрипта
Отправлено: DaBugi от 30 Ноября 2001, 21:30:15
1)
Каким методом ты передаешь данные гет или пост?

Если гет - то элементарно делаешь ссылку типа
или например через header
Header("Location:http://www.blabla.com/script.php?param1=value1¶m2=value2");

Если пост - то используй сокеты:


$url = "www.blabla.com";
$path = "/script.php";
$query_1 = "param1=".urlenocde($value1)."¶m2=".urlencode($valu2);
$query = "POST $path HTTP/1.0\\r\\n".
"Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*\\r\\n".
"Referer: ".$referer."\\r\\n".
"Accept-Language: en\\r\\n".
"Content-Type: application/x-www-form-urlencoded\\r\\n".
"User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98;)\\r\\n".
"Host: ".$url."\\r\\n".
"Content-Length: ".strlen($query_1)."\\r\\n".
"Connection: Keep-Alive\\r\\n".
"\\r\\n".
"$query1[$i]\\r\\n";
$fp = fsockopen($url, 80/* или тот на котором висит сервер*/);
$puts = fputs($fp, $query);
fpassthru($fp);/*выдает что после этого запроса выдаст сервер*/


2)
Как я понял тебе нужно выдать окошко сохранения файла на клиентской машине, так? Если да то воть:


header("Content-Disposition: attachment; filename=$filename\\r\\n");
header("Content-Type: application/octet-stream\\r\\n");
header("Content-Type: application/force-download\\r\\n");
header("Content-Type: application/download\\r\\n");
header("Content-Transfer-Encoding: binary\\r\\n");
$fp = fopen(\'$filename\',\'r\');
fpassthru($fp);
fclose($fp);
Название: Submit из скрипта
Отправлено: Shelya от 30 Ноября 2001, 22:03:12
Со вторым вопросом спасибо - все понятно.

А вот с первым объясню поподробнее. Мне не подходит метод с header, потому что мне надо из одного скрипта за одно выполнение вызвать много разных других скриптов. И при этом я не могу использовать кучу функций (ftp_connect, exec, system, passthru, openlog, socket_get_status, socket_set_blocking, socket_set_timeout, syslog, fsockopen, pfsockopen,accept_connect, bind, close, connect, lten, read, socket, strerror, write) - поэтому-то я и не могу сделать через exec, или fsockopen, как предложил DaBugi.

Так есть ли методы без использования этих функций?
Название: Submit из скрипта
Отправлено: Макс от 30 Ноября 2001, 23:28:24
Ну если у тебя еще и fopen(), file(), virtual() для удаленных ресурсов не работают и cURL не подключен то помоему никак