Страница 1 из 1

PHP передача параметров

Добавлено: 2018-09-18 13:52:41
Vlad5503
Первая команда с локального сайта на запуск скрипта php:

Код: Выделить всё

http://мой_сервер1/onof.php/?ip=172.16.140.7
Содержимое скрипта onof.php:

Код: Выделить всё

......
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://наш_сервер_далеко/cgi-bin/on100.pl?kod=1&T=22&id=$ip');
curl_exec($ch);
if (!curl_errno($ch)) {
    switch($http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE)){
        case 200: #OK
        break;
        default:
            echo 'Unexpected HTTP code: ', $http_code, "\n";
        }
}
......
Что происходит:
1. нажимаем на сайте кнопку по которой отработала Первая команда.
2. скрипт onof.php принял параметры
ip=172.16.140.7
3. На экран, по команде echo, выводит все полученные параметры.
4. на другом сервере скрипт срабатывает и пишет в лог ошибки, что не получен параметр $ip.

Пробовал другую структуру построения curl_init, curl_setopt - не помогло.
Менял местами значение - не помогло.
Что не так написано в скрипте или скриптах?

PHP передача параметров

Добавлено: 2018-09-19 3:49:26
Vlad5503
Скрипт принимающий параметры:

Код: Выделить всё

#!/usr/local/bin/perl
#наш_сервер_далеко/cgi-bin/on100.pl?kod=1&T=22&id=172.16.3.30
print ("Content-type: text/html\n\n");
use strict;
use CGI ':standard';
use Encode;

my $date = localtime;
my $kod = param ('kod');
my $tab = param ('T');
my $id = param ('id');
При обработке выдает в лог ошибок, что параметр $id равен выражению "$ip". Т.е. не значение Ip адреса, например 172.16.3.30, а переменная в виде текста.

PHP передача параметров

Добавлено: 2018-09-19 10:45:39
snorlov
Смотрите настройки апача... веб-сервера если точнее

PHP передача параметров

Добавлено: 2018-09-20 5:36:32
Vlad5503
Хотите сказать что апач умеет избирательно передавать параметры? В моём случае параметры kod и T приходят нормально, а вот id.. Хотя такой же параметр, в смысле словосочетание "id" использую на другом серваке и тоже через апач, и проблем нету. Да и платформы одинаковые по железу и софту(freebsd11.2, apache24, php56, perl).

PHP передача параметров

Добавлено: 2018-09-20 11:38:00
snorlov
Нифига не могу понять, у вас perl или php или все вместе...

PHP передача параметров

Добавлено: 2018-09-20 14:59:17
Vlad5503
На одном сервере передает параметры php.
На удаленном сервере принимает параметры perl.

PHP передача параметров

Добавлено: 2018-09-20 15:35:59
snorlov
Блин, вы же кидаете не
Vlad5503 писал(а):
2018-09-19 3:49:26
kod=1&T=22&id=172.16.3.30
а
Vlad5503 писал(а):
2018-09-18 13:52:41
kod=1&T=22&id=$ip
формируйте по другому
Vlad5503 писал(а):
2018-09-18 13:52:41
curl_setopt($ch, CURLOPT_URL, 'http://наш_сервер_далеко/cgi-bin/on100.pl?kod=1&T=22&id=$ip');

PHP передача параметров

Добавлено: 2018-09-25 8:10:13
Vlad5503
Переменная $ip получается ранее по скрипту, а именно так:

Код: Выделить всё

//получаем адрес из сформированного файлика.
$ofip = file_get_contents('/usr/users/ip.txt');
//проверим, что получили из файла.
echo "<br>$ofip";
//передадим комплект переменных на удаленный сервер.
curl_setopt($ch, CURLOPT_URL, 'http://удаленный_наш_сервер/cgi-bin/on100.pl/?id=$ofip&key=euflfq&kod=1&T=22');
curl_exec($ch);
//проверим получил ли удаленный сервер нашу команду или нет.
if (!curl_errno($ch)) {
    switch($http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE)){
        case 200: #OK
        break;
        default:
            echo 'Unexpected HTTP code: ', $http_code, "\n";
        }
}

По команде

Код: Выделить всё

echo "<br>$ofip";
я на экране (браузер) вижу тот адрес который был записан в файлик...
А вот на удаленный сервер так приходит текстовая переменная "$ip"...

PHP передача параметров

Добавлено: 2018-09-25 8:10:55
Vlad5503
Или удаленный сервер не правильно понимает передаваемые параметры...?
пошел ещё раз туда проверять...

PHP передача параметров

Добавлено: 2018-09-25 11:44:29
Vlad5503
В общем snorlov Вы дали верное направление. А именно кавычки должны быть двойными.
Вот так команда выглядит:

Код: Выделить всё

curl_setopt($ch, CURLOPT_URL, "http://наш_сервер_далеко/cgi-bin/on100.pl?kod=1&T=22&id=$ip");