2013-08-30 2 views
0

Привет, у меня возникли проблемы с пониманием того, как работает сессия. Я пытаюсь написать программу, которая будет повторно просить номер, который необходимо ввести, и каждый раз, когда число вводится в программу, чтобы распечатать:store variable session php

  1. это число
  2. сумма всех чисел, введенных
  3. кол во сколько раз я представил

Это мой код до сих пор:

<?php 
session_start(); 
if(isset($_session['count'])) 
{ 
    $_session['count'] = $count; 
}else{ 
    $_session['count'] = 0; 
} 
?> 

<html> 
    <head> 
     <title>number</Title> 
      <style> 
      </style> 
     <body> 
      <form action = "numbers.php" method = "post"> 
       Numbers: <input type "text" name = "number" size = "6"/> 
       <input type = "submit" value = "submit" name = "submit"/> 
       <p> 
      </form> 
     </body> 
    </head> 
</Html> 
<?php 
    if(isset($_POST["submit"])) 
    { 
     $number = $_POST['number']; 
     If (is_numeric($number)) 
     { 
      $count = $_session['count'] + $number; 
      print "Last number entered: ".$number; 
      print "<br>Total internal numbers: ".$count; 
     } 
    } 
?> 

Im пытается сохранить свою $count переменную так каждый раз, когда я представить его выводит общую сумму чисел вошли

+0

FYI: '$ CNT = 0; 'then' isset ($ cnt) 'будет ** false **! – undone

ответ

0

На старте вы используете неопределенный переменный $ подсчет , Редактировать его:

if(!isset($_session['count'])) 
    $_session['count'] = 0; 

Затем добавьте новую строку:

If (is_numeric($number)) 
{ 
    $count = $_SESSION['count'] + $number; 
    $_SESSION['count'] = $count; 
    print "Last number entered: ".$number; 
    print "<br>Total internal numbers: ".$count; 
} 

ИЛИ вторая часть редактирования для:

If (is_numeric($number)) 
{ 
    $_SESSION['count'] += $number; 
    print "Last number entered: ".$number; 
    print "<br>Total internal numbers: ".$_SESSION['count']; 
} 
+0

первый, если можно безопасно отправить на thedailywtf.com;) серьезно, не можете ли вы подумать о лучшей реализации? СОВЕТ: отмените проверку isset, от true до false –

+0

Я только что отредактировал его код, теперь у меня короткая версия. –

+0

спасибо, что это помогает alot – user2732815

0
<?php 
    if(isset($_POST["submit"])) 
    { 
     $number = $_POST['number']; 
     If (is_numeric($number)) 
     { 
      $count = $_session['count'] + $number; 
      $_session['count'] = $count; 
      print "Last number entered: ".$number; 
      print "<br>Total internal numbers: ".$count; 
     } 
    } 
?> 
2

Вы установите $_session['count'] = $count;, прежде чем иметь переменную $count. Вы должны обновить значение сеанса после того, как вы установили $count как:

$count = $_session['count'] + $number; 
$_session['count'] = $count; 

Вы можете заменить в верхней части вашего сценария с:

if(!isset($_session['count'])) 
{ 
    $_session['count'] = 0; 
} 
+1

+1 для объяснения ПОЧЕМУ код не работает, как ожидает ожидающий вопрос. – Fluffeh

+1

ah ok thanks alot :) – user2732815

0

Вот рабочий пример. [ПРОВЕРЕНО]

Вы должны назначить $_SESSION['count']=$count;

<?php 
session_start(); 
//Code commented as not required. 
/*if(isset($_session['count'])) 
{ 
    $_session['count'] = $count; 
}else{ 
    $_session['count'] = 0; 
} 
*/?> 

<html> 
<head> 
    <title>number</Title> 
    <style> 
    </style> 
    <body> 
    <form action = "" method = "post"> 
     Numbers: <input type "text" name = "number" size = "6"/> 
     <input type = "submit" value = "submit" name = "submit"/> 
     <p> 
    </form> 
    </body> 
</head> 
</Html> 
<?php 
if(isset($_POST["submit"])) 
{ 
    $number = $_POST['number']; 
    if (is_numeric($number)) 
    { 

     $count = $_SESSION['count'] + $number; 
     $_SESSION['count']=$count; 
     print "Last number entered: ".$number; 
     print "<br>Total internal numbers: ".$count; 
    } 
} 
?> 
+0

Не говорите, что код в начале не требуется. '$ count = $ _SESSION ['count'] + $ number;' будет проходить через неопределенное уведомление индекса при первом вызове сценария. – insertusernamehere

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