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

Форум PHP

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

 

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

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

тема: Не передаётся GET-параметр
 
 автор: poll   (07.03.2007 в 16:00)   письмо автору
 
 

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


Файл index.php

<?php
if (!isset($sec))
{
$sec="60";
}
print "<META HTTP-EQUIV=Refresh Content=$sec>";
?>

<form method=get action="index.php">

<select name="sec">
<option>Время обновления</option>
<option value="30">30 секунд</option>
<option value="60">1 минута</option>
<option value="90">3 минуты</option>
</select>
<input type=submit value="OK">
</form>

<?php
print "Текущее время обновления: $sec секунд.";
?>


Что делает скрипт? Пользователь заходит на страницу и она автоматически обновляется через указанный нитервал. При первом заходе интервал ставится на 60 секунд, а потом как изменит посетитель. В чем проблема? Скрипт отлично работает на локалхосте (на Денвере)!!!!! и не работает на виртуальном хостинге! Хостинг платный, все есть, проблема не в нем..

Описываю проблему, которая появляется на хостинге. Когда выбираешь время и нажимаешь ок, то значение не в писывается в переменную! хотя даже появляется в строке index?sec=30 но скрипт оставляет значение по умолчанию, т.е. снова срабатывает if (!isset($sec)), еще раз повторю, на локалхосте все работает! а тут нет, в чем может быть проблема?

Надеюсь на помощь.

   
 
 автор: Саня   (07.03.2007 в 16:42)   письмо автору
 
   для: poll   (07.03.2007 в 16:00)
 

К переменным, переданым из формы нужно обращаться так:
<?php
if (!isset($_GET['$sec'])) { 
  
$sec="60";
} else {
  
$sec $_GET['$sec'];
}
print 
"<META HTTP-EQUIV=Refresh Content=$sec>";
?>

<form method=get action="index.php">

<select name="sec">
<option>Время обновления</option>
<option value="30">30 секунд</option>
<option value="60">1 минута</option>
<option value="90">3 минуты</option>
</select>
<input type=submit value="OK">
</form>

<?php
print "Текущее время обновления: $sec секунд.";
?>
Чтобы понять почему так - сделайте поиск по ключевому слову "register_globals".

   
 
 автор: poll   (07.03.2007 в 16:50)   письмо автору
 
   для: Саня   (07.03.2007 в 16:42)
 

-

   
 
 автор: zerocool   (07.03.2007 в 16:44)   письмо автору
 
   для: poll   (07.03.2007 в 16:00)
 

Исправте строку

if (!isset($sec))  

на

if (!isset($_GET[sec]))  


И здесь
<?php 
print "Текущее время обновления: $sec секунд."
?> 

на
<?php 
print "Текущее время обновления: $_GET[sec] секунд."
?> 

   
 
 автор: poll   (07.03.2007 в 16:53)   письмо автору
 
   для: zerocool   (07.03.2007 в 16:44)
 

Да, и еще вот эту строчку надо было изменить!
print "<META HTTP-EQUIV=Refresh Content=$_GET[sec]>";

Все заработало!

   
Rambler's Top100
вверх

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