2016-07-03 3 views
0

Я хочу узнать, как сохранить ценность после запроса на отправку.Как сохранить ценность после отправки запроса?

В моем коде, у меня есть эти переменные:

  1. MyVar
  2. MYANS
  3. результат

myvar является случайной вал между 0-5. Я получу myans с моего ввода, если myans == myvar, тогда результат будет правдой (иначе он будет ложным).

Я вижу myvar, прежде чем я отправлю свои ans только для попытки, но хотя я вижу var, когда я его отправляю, то, что я вижу, иногда бывает ложным, а иногда и истинным. Что мне не хватает?

example.php:

<?php 

    session_start(); 

    if (!isset($_COOKIE['result'])) { 
     setcookie("result","EMPTY"); 
    } 

    setcookie("myvar",rand(0,5)); 

    if (!empty($_POST)) { 

     if ($_POST['myans'] == $_COOKIE['myvar']) { 
      setcookie("result","TRUE"); 
     } 
     else { 
      setcookie("result","FALSE"); 
     } 
    } 
?> 

<html> 
<head> 
    <title>Example</title> 
</head> 
<body> 
    <form method="post" action=""> 
     <?php echo $_COOKIE['myvar'] ?> 
     <input type="text" name="myans"> 
     <input type="submit" value="Send"> 
     <?php echo $_COOKIE['result'] ?> 
    </form> 
</body> 
</html> 

ответ

0

Проблемы вы того, были вызваны вашим генератор случайных чисел, что делает создание нового номера перед сравнением с оригиналом. Я сделал некоторые изменения, чтобы установить только «myvar», если он пуст. это будет устанавливаться только один раз, но по крайней мере вы можете увидеть, как ваш код работает по назначению. Я рекомендую вам определить, какую именно функциональность вы хотите, прежде чем добавлять к ней.

Я также отключил вас от «$ _COOKIE» var до «$ _SESSION» vars. Они скрыты от клиента, а по умолчанию php - около 24 минут, если не обновлены. Я не знаю, что вы планируете использовать для этого, но использование файлов cookie позволяет конечному пользователю манипулировать этой информацией. Если это вас не беспокоит, непременно раскомментируйте строки «setcookie()».

<?php 

    session_start(); 

    if (!isset($_SESSION['result'])) { 
     //setcookie("result","EMPTY"); 
     $_SESSION["result"] = "EMPTY"; 
    } 

    //setcookie("myvar",rand(0,5)); 
    if(empty($_SESSION["myvar"])){ 
     $_SESSION["myvar"] = rand(0,5); 
    } 
    // 

    if (!empty($_POST)) { 
     if ($_POST['myans'] == $_SESSION['myvar']) { 
      //setcookie("result","TRUE"); 
      $_SESSION["result"] = "TRUE"; 
     } else { 
      //setcookie("result","FALSE"); 
      $_SESSION["result"] = "FALSE"; 
     } 
    } 

?> 

<html> 
<head> 
    <title>Example</title> 
</head> 
<body> 
<form method="post" action=""> 
    <?php echo isset($_SESSION['myvar']) ? $_SESSION['myvar'] : ""; ?> 
    <input type="text" name="myans"> 
    <input type="submit" value="Send"> 
    <?php echo isset($_SESSION['result']) ? $_SESSION['result'] : ""; ?> 
</form> 
</body> 
</html> 
Смежные вопросы