[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Счетчик нажатий по кнопке
chexa
Ребят, помогите!

Хочу, чтобы программа просто считала кол-во нажатий по кнопке в одном php файле.

соответственно для этого ввожу вот такой код:


<?  

if (empty($a)) {
$a = 0;
}
$a++;

echo <<<HERE
<input type = "submit" value = "123">
HERE;

echo ($a);
?>


А в итоге стоит единица и все! хоть ты сто раз нажми. В чем проблема? код же вроде логичный



Спустя 4 часа, 48 минут, 40 секунд (24.11.2010 - 07:19) inpost написал(а):
Совсем не логичный! Переменная создаётся на странице! Нажимая на кнопку submit - ты переходишь на другую страницу, то есть сам на себя, и переменная заново создаётся.
Это можно реализовать через сессию ($_SESSION), или на крайняк через java script.

Спустя 3 часа, 33 минуты, 37 секунд (24.11.2010 - 10:53) chexa написал(а):
А как тогда будет выглядеть код с SESSION ?

вообще в книге по которой я занимаюсь эта прога написана так:

<?  
$a++;
$b++;

print <<<HERE

<input type= "text"
name = "a";
value = "
$a";>

<input type= "text"
name = "b";
value = "
$b";>
$b
<input type = "submit" value = "123">
HERE;

?>



Но на строке $a++; и
$b++;
денвер пишет ошибку: Notice: Undefined variable: a in Z:\home\qwe\www\proga.php on line 15
Notice: Undefined variable: a in Z:\home\qwe\www\proga.php on line 16

так как сделать так, чтобы переменная хранилась?

Спустя 14 минут, 23 секунды (24.11.2010 - 11:07) Basili4 написал(а):
<?php
$index=isset($_GET['index'])?(int)$_GET['index']:0;
echo $index;
?>

<form>
<
input type="hiden" value="<?php echo $index+1; ?>" name="index" >
<
input type="submit">
</
form>



и не зачем мусорить в сессии

Спустя 9 минут, 1 секунда (24.11.2010 - 11:16) chexa написал(а):
работает! сможете пожалуйста вкратце разжевать эту строку:


$index=isset($_GET['index'])?(int)$_GET['index']:0;

Спустя 4 минуты, 1 секунда (24.11.2010 - 11:20) Basili4 написал(а):
если есть $_GET['index'] то превести к целому числу и положить в index иначе в index положить 0

Спустя 4 минуты, 27 секунд (24.11.2010 - 11:25) chexa написал(а):
А почему тогда не срабатывал код:


<?  

if (empty($a)) {
$a = 0;
}
$a++;

echo <<<HERE
<input type = "submit" value = "123">
HERE;

echo ($a);
?>



тут же тоже есть условие:

if (empty($a)) {
$a = 0;
}



или его просто нужно кинуть в отдельное <?php ?>

Спустя 7 минут, 48 секунд (24.11.2010 - 11:33) linker написал(а):
Потому что

1. <input type = "submit" value = "123"> - отсутствует атрибут name="a"
2. У всех нормальных людей register_globals отключены, поэтому нужно явно брать из $_GET['a']/$_POST['a'].
3. При каждом запуске скрипта, $a всегда empty, ибо неоткуда брать было брать предыдущее значение, ты его не сохранял.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.