Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > CGI скрипт через PHP system


Автор: Mosaicolor 12.5.2020, 17:19
Код

<?php
$ip = getenv('REMOTE_ADDR');
system ('QUERY_STRING=addr=$ip cgi-bin/address.cgi');
?>


IP адрес в первой строке определяется, но не передается во вторую строку.
Подскажите, пожалуйста, что неправильно и как это решить.

Определять IP адрес в самом cgi-скрипте через $ENV{'REMOTE_ADDR'} - не получается. В скрипте, запускаемом через php system, REMOTE_ADDR не определяется.

Автор: The_Aleksey 12.5.2020, 22:46
В одинарных кавычках не подставляются значения переменных, т.е. надо либо вот так
Код

system ("QUERY_STRING=addr=$ip cgi-bin/address.cgi");

либо с конкатенацией строк
Код

system ('QUERY_STRING=addr=' . $ip . ' cgi-bin/address.cgi');

Автор: Mosaicolor 12.5.2020, 23:56
Огромное-преогромное спасибо! Первый вариант работает.
Я так и подозревал, что решение несложное...

Жаль, что репу плюсануть не удалось, т.к. у меня мало постов.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)