2012-06-20 2 views
0

Я работаю с переменной $ _SESSION в первый раз, и у меня возникают проблемы с пониманием того, что происходит с ней. То, что я хочу, чтобы этот код выполнял, - это обновлять счетчик каждый раз, когда нажимается кнопка «отправить». Он начинается с нуля, и после первого щелчка он обновляется до 1. Затем он застревает в одном и, похоже, не обновляет его. Я привел несколько примеров, но я не могу найти объяснения, почему он ведет себя так. Что я делаю не так? Я уверен, что это нечто довольно основное, но для меня жизнь я не могу понять, что это такое.

Заранее благодарим за вашу помощь!

1 <?php 
2   session_start(); 
3   $_SESSION['counter']=((!isset($_SESSION['counter']))? 0 : $_SESSION['counter']); 
4   if($_POST['submit']){ 
5     $_SESSION['counter']++; 
6   } 
7 ?> 
8 <html> 
9 <body> 
10 <form method = "post"> 
11   <input type="submit" name="submit" value = "Submit button" /> 
12 </form> 
13   <div name = "content"> 
14     <h3>Submit has been clicked <?php echo $_SESSION['counter'] ?> times</h3> 
15   </div> 
16 </body> 
17 </html> 
+1

Нет необходимости использовать этот уродливый тройной оператор здесь. Просто выполните: 'if (! Isset ($ _ SESSION ['counter'])) {$ _SESSION ['counter'] = 0; } ' – PeeHaa

ответ

1

Пробуйте этот код ... Думаю, вы сбросите счетчик на 0 при каждой загрузке страницы.

<?php 
session_start(); 
if (!isset ($_SESSION['counter'])) { 
    $_SESSION['counter'] = 0; 
} 
if (isset ($_POST['submit'])) { 
    $_SESSION['counter']++; 
} 
?> 
+0

Я пробовал это, и он, похоже, не работал? BTW. Я все равно должен использовать session_start(), да? – Eman

+0

Он по-прежнему вел себя так же, как и раньше. – Eman

+0

Да, извините, я отредактирую свой код. –

1

Возможно, это оригинальная установка $_SESSION['counter'].

Я бы начать его по-разному:

if($_POST['submit'] && isset($_SESSION['counter'])){ 
     $_SESSION['counter']++; 
}else{ 
     $_SESSION['counter'] = 0; 
} 
+0

Это, похоже, не устанавливает $ _SESSION ['counter']. Следовательно, он никогда не увеличивается. – Eman

Смежные вопросы