Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Умножение в формах

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
coolzero
Отправлено: 28 Августа, 2011 - 12:40:40
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




Привет всем Улыбка Только начинаю изучать php и уже столкнулся с проблемой. Пример который описан в учебнике не работает. Учебник взял с http://php.su/books/?php Называется Букварь по PHP и MySQL. Там сказано что он устарел, но для новичков подойдет. Теперь ближе к делу. Не работает такая форма:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <FORM ACTION="calc.php" METHOD="GET">
  2. <INPUT TYPE="text" NAME="first" SIZE="4" MAXLENGTH="4">
  3. <INPUT TYPE="text" NAME="second" SIZE="4" MAXLENGTH="4">
  4. <INPUT TYPE="Submit" VALUE="Умножить">


calc.php:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. Header("Content-type: text/html");
  3. echo "$first умножить на $second получится ", $first*$second;
  4. ?>


После введения чисел и нажатия кнопки появляется следующий текст:

"умножить на получится 0".

В чем проблема? Ведь если это работало в php 3, то должно и в php5? Или я ошибаюсь?

(Отредактировано автором: 28 Августа, 2011 - 12:41:36)

 
 Top
White
Отправлено: 28 Августа, 2011 - 13:04:32
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




coolzero при register_globals=on это работает, в php5(при чем не зря!!!) эта настройка по умолчанию выключена (да и оставили ее только чтобы обеспечить обратную совместимость).
так будет работать:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.   header("Content-type: text/html");
  3.   echo $_GET['first']." умножить на ".$_GET['second']." получится ", $_GET['first']*$_GET['second'];
  4. ?>

(Отредактировано автором: 28 Августа, 2011 - 13:05:30)



-----
if(time()>1356048000) die();
 
 Top
DeepVarvar Супермодератор
Отправлено: 28 Августа, 2011 - 13:05:01
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




register_global
 
 Top
coolzero
Отправлено: 28 Августа, 2011 - 13:31:07
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




White register_globals включил. Денвер перезапустил. Код поменял на Ваш. Результат - не работает.
 
 Top
White
Отправлено: 28 Августа, 2011 - 13:40:55
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




coolzero пишет:
register_globals включил

зря. выключите, мой код этого не требует. он делает работоспособным код в вашем примере.
(Добавление)
кстати, а что у вас в строке запроса после нажатия "Умножить"?

(Отредактировано автором: 28 Августа, 2011 - 13:42:38)



-----
if(time()>1356048000) die();
 
 Top
coolzero
Отправлено: 28 Августа, 2011 - 14:03:15
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




White register_globals=off - рестарт - проверка - не работает.

CODE (htmlphp):
скопировать код в буфер обмена
  1. http://test/calc.php?%24first=8&%24second=8
 
 Top
LIME
Отправлено: 28 Августа, 2011 - 15:35:36
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




coolzero у вас ошибка в форме
CODE (html):
скопировать код в буфер обмена
  1. <FORM ACTION="calc.php" METHOD="GET">
  2. <INPUT TYPE="text" NAME="$first" SIZE="4" MAXLENGTH="4">
  3. <INPUT TYPE="text" NAME="$second" SIZE="4" MAXLENGTH="4">
  4. <INPUT TYPE="Submit" VALUE="Умножить">

уберите знак доллара в именах параметров
он нужен только в php коде
(Добавление)
и включите показ ошибок в php.ini
вам бы выдало предупреждение что индекс не определен в массиве $_GET
 
 Top
coolzero
Отправлено: 28 Августа, 2011 - 15:47:29
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




LIME спасибо. После убирания $ все заработало. Не знаю зачем я их туда поставил Хм
(Добавление)
Также спасибо White за то что поправил код)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Если скрипт не работает »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB