Во открыла новую тему..... Хотя в принципе это продолжение старой. Есть такая строка в моей программе <form id="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> но она работает только для РНР5, а мне нужно чтобы она работала на РНР4. ЕЕ можно какнибудьпереписать? Например, на РНР4 доступ к ответу пользователя можно получить через $HTTP_POST_VAR['img0_url'], а на РНР5 все гораздо короче $_POST['img0_url']. Может то же самое и с $_SERVER['PHP_SELF']? только вот в книге я ничего не нашла(((((
Посмотри, передаются ли данные print_r($_POST) Включи вывод всех ошибок error_reporting(E_ALL) Результаты в студию
$_POST есть и в четвертой версии, а от $HTTP_POST_VAR вообще рекомендую отказаться, ибо это устарело. А что выводит <?php echo $_SERVER['PHP_SELF']; ?>?
Mavir, в моей 4ой это не работает. проверено не однократно. У меня версия 4.0, а $_POST появилось только в 4.1.0. А что выводит <?php echo $_SERVER['PHP_SELF']; ?>? Она не выводит, а вызывает РНР-код, который находится в самой программе, т.е. саму себя программа вызывает,
Сталкивался. У меня $_SERVER['PHP_SELF']; выдает то, что написано в документации, т.е. путь к скрипту относительно root. Версия PHP 4.3.4. Если хочешь посмотреть значения $_SERVER, вызови print_r($_SERVER) или phpinfo()
Вот и у меня должно быть то же самое, программа выводит сама себя. Но видно на старых версиях это не работает(((((
Если надо получить имя файла, в котором находится данная форма, то можно попробовать так: PHP: <? $x=__FILE__; // берешь имя файла (тебе выдает полный путь до него с корня системы) $z=basename($x); // выделяешь его базовое имя print $z; // выводишь на экран ?>
__FILE__ показывает имя текущего файла. Он не будет равен $_SERVER['PHP_SELF'] (сравниваю только имена файлов, без путей), если его включили через include.
Неужели print $_SERVER['PHP_SELF']; запускает заново этот скрипт? Это ведь простое строковое значение, а не команда на выполнение.
На старых версиях работают: $HTTP_SERVER_VARS $HTTP_POST_VARS $HTTP_GET_VARS $HTTP_COOKIE_VARS $HTTP_POST_FILES