Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
netadmin.ws
Панель управления Регистрция свободна! Календарь Список пользователей Часто задаваемые вопросы Поиск по форуму Архив скриптов Главная   
Форум сетевых администраторов
Форум сетевых администраторов Форум сетевых администраторов » Программирование » PHP » Передача параметров через Get (это просто бедствие какое-то)
Предыдущая тема     Следующая тема
Автор
Тема    Новая тема     Ответить на эту тему
MAVIAN
Участник

Зарегистрирован: Feb 2004
Место проживания:
Публикаций: 2
Статус: MAVIAN в оф-лайне
Angry Передача параметров через Get (это просто бедствие какое-то) [сообщение #61233]

Второй день не могу понять причну граблей. Сначала я заметил, что на веб-сервере PHP скрипты работают прекрасно до тех пор, пока не требуется передача параметров методом GET. Сейчас проблема уже локализована, но все равно не понятно - либо я сошел с ума, либо что-то не так с интерпретатором.
Он упорно не желает видеть переменнные в строке запроса GET, как и в командной строке тоже.

Итак, платформа win32 (win2k professional), версия php 4.3.4, примитивная программа myscript.php:
---------------
<html>
<title><"Simple script"></title>
<?=$maks?>
<?=$php_errormsg?>
</body></html>
----------------
Способы, которыми я ее запускал:

php myscript.php '&maks=test'
php -f myscript.php '&maks=test'
php myscript.php '&maks=test'&
php myscript.php "&maks=test"
php myscript.php &maks=test
php myscript.php&maks=test
php myscript.php "&maks=test"
php myscript.php &maks=test
php myscript.php maks=test

И всегда получал один и тот же ответ:
<html>
<title><"test"></title>
Undefined variable: maks
</body></html>

Действующие параметры раздела Data Handling файла php.ini:
arg_separator.output = "&"
arg_separator.input = ";&"
variables_order = "EGPCS"
register_globals = Off
register_argc_argv = Off
post_max_size = 8M
gpc_order = "GPC"
magic_quotes_gpc = On
magic_quotes_runtime = Off
magic_quotes_sybase = Off
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
always_populate_raw_post_data = On

Пробовал
register_globals = On
register_argc_argv = On
разницы никакой.

Вопрос: КАК нужно передавать значения переменных через комм. строку ???!!

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 18-02-2004 11:48
Нажмите сюда для просмотра профайла MAVIAN Отправить Персональное сообщение MAVIAN Найти сообщения от MAVIAN Добавить MAVIAN в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
MarKer
Модератор
Средний рейтинг: 4.67 | Оценок: 15
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Sep 2002
Место проживания:
Публикаций: 470
Статус: MarKer в оф-лайне
[сообщение #61234]

Ты забыл что строка с данными, после имени скрипта начинается со знака вопроса. Т.е. у тебя получается:
"myscript.php&maks=test"
А надо:
"myscript.php?maks=test"

MarKer добавил 18-02-2004 в 12:35:44:
А амперсанд используется для разделения.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 18-02-2004 12:34
Нажмите сюда для просмотра профайла MarKer Отправить Персональное сообщение MarKer Найти сообщения от MarKer Добавить MarKer в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
MAVIAN
Участник

Зарегистрирован: Feb 2004
Место проживания:
Публикаций: 2
Статус: MAVIAN в оф-лайне
[сообщение #61236]

В таком случае интерпретатор не видит имени входного файла

>Chpphp.exe myscript.php?maks=test
Status: 404
Content-type: text/html
X-Powered-By: PHP/4.3.4

No input file specified.

>Chpphp.exe myscript.php ?maks=test

<html>
<title><"Simple script"></title>
Undefined variable: maks
</body></html>

> Сhpphp.exe myscript.php '?maks=test'

<html>
<title><"Simple script"></title>
Undefined variable: maks
</body></html>

>Chpphp.exe fotoopen.php "?maks=test"

<html>
<title><"Simple script"></title>
Undefined variable: maks
</body></html>

То есть по-прежнему без изменений
Кстати, вот тут внизу страницы
http://www.php.net/manual/en/features.commandline.php
говорится, что
php myprog.php '(амперсанд)param1=bla(амперсанд
)param2=hugo'
должно работать...

Поскольку он не работает под Apache Win32 ни как CGI, ни через SAPI модуль php4apache.dll, есть подозрение, что либо надо копать php.ini, либо пробовать другую версию...

MAVIAN добавил 18-02-2004 в 13:39:42:
ХА ! Оказывается, надо было использовать другую версию интерпретатора из подпапки CLI. Тогда выражение вида

C:\php\php.exe myscript.php "&maks=test" Ð_АБОТАЕТ !

>C:\php\php.exe myscript.php "&maks=test"

Content-type: text/html
X-Powered-By: PHP/4.3.4

<html>
<title><"Simple Script"></title>
test
</body></html>


Сообщение было отредактировано MAVIAN 18-02-2004 в 13:29

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 18-02-2004 13:18
Нажмите сюда для просмотра профайла MAVIAN Отправить Персональное сообщение MAVIAN Найти сообщения от MAVIAN Добавить MAVIAN в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
GenUS
Участник+
Средний рейтинг: 4.63 | Оценок: 19
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Apr 2003
Место проживания: 127.0.0.1
Публикаций: 334
Статус: GenUS в оф-лайне
[сообщение #61249]

А можно еще другим способом ....
test.php

PHP:

<?PHP
echo $argc."\n\n"; // кол-во параметров (включая имя файла)
var_dump($argv); // собственно массив параметров
?>



code:
c:\php>php -q test.php param1 param2 param3
4

array(4) {
  [0]=>
  string(8) "test.php"
  [1]=>
  string(6) "param1"
  [2]=>
  string(6) "param2"
  [3]=>
  string(6) "param3"
}

__________________
.

Сообщение было отредактировано GenUS 18-02-2004 в 16:19

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 18-02-2004 16:16
Нажмите сюда для просмотра профайла GenUS Отправить Персональное сообщение GenUS Посетить домашнию страничку GenUS! Найти сообщения от GenUS Добавить GenUS в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
he][es
Участник+
Средний рейтинг: 4.07 | Оценок: 30
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: he][es в оф-лайне
[сообщение #61251]

А с какой стати он будет чего то выводить? Ты считал переменную? $_GET['var_name']??? и register_globals = Off
т.что...

__________________
Админ - вождь Апачей...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 18-02-2004 16:40
Нажмите сюда для просмотра профайла he][es Отправить Персональное сообщение he][es Найти сообщения от he][es Добавить he][es в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя



Формат времени GMT. Текущее время 15:44.
Новая тема   Ответить на эту тему [ Версия для печати Печать | Отправить эту страницу другу/знакомому! Отправить | Получать уведомления об обновлении этой темы Подписка ] Предыдущая тема     Следующая тема
Навигация по форуму:
Оценка темы:

Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения.
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
 

Page generated in 0.06510305 seconds (85.09% PHP - 14.91% MySQL) with 26 queries.


  Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
©NetAdmin.ws, 2001-2026.
Powered by: vBulletin
Copyright ©2000, 2001, Jelsoft Enterprises Limited.