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

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Vlad5503
сержант
Сообщения: 226
Зарегистрирован: 2010-03-25 5:41:41

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

Непрочитанное сообщение Vlad5503 » 2018-09-18 13:52:41

Первая команда с локального сайта на запуск скрипта 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 - не помогло.
Менял местами значение - не помогло.
Что не так написано в скрипте или скриптах?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Vlad5503
сержант
Сообщения: 226
Зарегистрирован: 2010-03-25 5:41:41

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

Непрочитанное сообщение Vlad5503 » 2018-09-19 3:49:26

Скрипт принимающий параметры:

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

#!/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, а переменная в виде текста.

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

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

Непрочитанное сообщение snorlov » 2018-09-19 10:45:39

Смотрите настройки апача... веб-сервера если точнее

Vlad5503
сержант
Сообщения: 226
Зарегистрирован: 2010-03-25 5:41:41

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

Непрочитанное сообщение Vlad5503 » 2018-09-20 5:36:32

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

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

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

Непрочитанное сообщение snorlov » 2018-09-20 11:38:00

Нифига не могу понять, у вас perl или php или все вместе...

Vlad5503
сержант
Сообщения: 226
Зарегистрирован: 2010-03-25 5:41:41

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

Непрочитанное сообщение Vlad5503 » 2018-09-20 14:59:17

На одном сервере передает параметры php.
На удаленном сервере принимает параметры perl.

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

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

Непрочитанное сообщение snorlov » 2018-09-20 15:35:59

Блин, вы же кидаете не
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');

Vlad5503
сержант
Сообщения: 226
Зарегистрирован: 2010-03-25 5:41:41

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

Непрочитанное сообщение Vlad5503 » 2018-09-25 8:10:13

Переменная $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"...

Vlad5503
сержант
Сообщения: 226
Зарегистрирован: 2010-03-25 5:41:41

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

Непрочитанное сообщение Vlad5503 » 2018-09-25 8:10:55

Или удаленный сервер не правильно понимает передаваемые параметры...?
пошел ещё раз туда проверять...

Vlad5503
сержант
Сообщения: 226
Зарегистрирован: 2010-03-25 5:41:41

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

Непрочитанное сообщение Vlad5503 » 2018-09-25 11:44:29

В общем snorlov Вы дали верное направление. А именно кавычки должны быть двойными.
Вот так команда выглядит:

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

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