Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: При запуске скрипта в окно ввода подставляется PHP-код
 
 автор: uch   (08.02.2011 в 17:55)   письмо автору
38 Кб
 
 

Можно еще вопрос, немного выходящий за рамки темы, но относящийся к этому же скрипту?

В начале скрипта идет форма ввода данных:
<input type=text name=name value="<?= $_POST['name']; ?>">

Здесь в value подставляется такой код: <?= $_POST['name']; ?>.
При запуске скрипта это значение выводится в окно ввода, даже если подставлять одинарные либо двойные кавычки. На прикрепленном скриншоте я показал результат выполнения скрипта.
Из-за чего такое происходит?

  Ответить  
 
 автор: Deed   (08.02.2011 в 18:45)   письмо автору
 
   для: uch   (08.02.2011 в 17:55)
 

Вероятно файл имеет расширение не "php" или выполняется вне самой среды php

А насчет необязательности экранирования точки в символьных классах меня берут большие сомнения.

  Ответить  
 
 автор: uch   (08.02.2011 в 19:26)   письмо автору
 
   для: Deed   (08.02.2011 в 18:45)
 

Файл имеет расширение .php и выполняется в среде PHP. Скрипт приведен в точности как в книге, но у меня он не работает должным образом :(

  Ответить  
 
 автор: cheops   (08.02.2011 в 19:31)   письмо автору
 
   для: uch   (08.02.2011 в 19:26)
 

Хм... а другие PHP-скрипты у вас выполняются нормально (т.е. связка Apache+PHP настроена корректно)?

  Ответить  
 
 автор: uch   (08.02.2011 в 19:42)   письмо автору
 
   для: cheops   (08.02.2011 в 19:31)
 

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

  Ответить  
 
 автор: cheops   (08.02.2011 в 19:47)   письмо автору
 
   для: uch   (08.02.2011 в 19:42)
 

А попробуйте выражение <?= $_POST['name'] ?> заменить на <?php echo $_POST['name'] ?> ( в некоторых версиях PHP короткий вариант тэгов <?= ?> отключен по умолчанию). Ничего не меняется?

  Ответить  
 
 автор: uch   (08.02.2011 в 20:05)   письмо автору
 
   для: cheops   (08.02.2011 в 19:47)
 

Теперь вместо этого выражения в окно ввода выводит следующее:
<br /> <b>Notice</b>:  Undefined index:  name in <b>C:\server\reg.php</b> on line <b>2</b><br />  

Как я понимаю, интерпретатор сообщил о неинициализированной переменной?
Я в начале скрипта написал так:
<?php
$name 
"ttt";
?>

Но ошибка все та же.

  Ответить  
 
 автор: cheops   (08.02.2011 в 20:12)   письмо автору
 
   для: uch   (08.02.2011 в 20:05)
 

Интерпретатор ругается, вернее сообщает замечание (Notice), что переменная $_POST['name'] не инициализирована. Когда скрипт создавался, он расчитывался на уровень предупреждения об ошибках, исключающий замечания Notice.
<?php
  error_reporting
(E_ALL & ~E_NOTICE); 
?>

Если вывод замечаний (Notice) в php.ini включен, необходимо явно обрабатывать все случаи ввода новых переменных и элементов массивов. Т.е. писать что-то вроде
<?= if(isset($_POST['name'])) echo $_POST['name']; ?>

PS На серверах хост-провайдеров режим вывода замечаний обычно отключен или по крайней мере его всегда можно отключить на уровне .htaccess или функции error_reporting(). В дистрибутивах PHP по умолчанию он включен.

  Ответить  
 
 автор: uch   (08.02.2011 в 20:41)   письмо автору
 
   для: cheops   (08.02.2011 в 20:12)
 

Выставил в скрипте уровень замечаний, скрипт заработал должным образом.
Спасибо за ответ, Игорь Вячеславович.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования