2013-09-13 3 views
-2

Эй я получил некоторые проблемы с сессией и диетическими переменным: O IMO я, может быть, думаю, что это может быть около PHP_SELF или переменного $ nombreentre Но я буду пусть и проверить :) ThxPhp Session Variable Ошибка

<?php 
    $formulaire = '<FORM method="POST" action="<?php $_SERVER[\"PHP_SELF\"]; ?>"> 
    <p> 
    <label>Entrez un nombre de 0 a 100 :</label> <input name="nombre" type="text"/> 
    <input type="submit" value ="Valider !"/> 
    </p> 
    </form>' ; 

    if(isset($_POST['nombre'])) 
    { 
    $nombreentre = htmlentities(stripslashes($_POST['nombre']));} 

if (empty($_SESSION['nombremystere'])) 
{ 
    $_SESSION['nombremystere'] = mt_rand(0, 100); 
    echo $formulaire; 
} 
else 
{ 
     if ($_SESSION['nombremystere'] > $nombreentre) 
     { 
      echo 'C\'est plus !'; 
      echo $formulaire; 
     } 
     elseif ($_SESSION['nombremystere'] < $nombreentre) 
     { 
      echo 'C\'est moins !'; 
      echo $formulaire; 
     } 
     else 
     { 
      echo 'Bravo, vous avez trouve le nombre mystere !'; 
      session_destroy(); 
     } 
}  
?> 
+0

Wow here come downvotes. Вы задаете вопросы после тестирования и показываете, что можете отлаживать. Говорить, что вы думаете, что это может быть что-то, но вы позволите нам отладить его ... извините, но, вероятно, не получите никакой помощи. – Rottingham

+0

Я пытаюсь найти его около 4 часов, я просто не знаю, что делать, ответ может быть между этими подсказками, но я не нашел нигде идеи о том, что я мог бы написать вместо этого. :( –

+0

Вы можете начать с отображения какой ошибки вы – Rottingham

ответ

0

Попробуйте вместо этого:

Мы просто сдвигая закрытие} первого IF.

if(isset($_POST['nombre'])) { 
    $nombreentre = htmlentities(stripslashes($_POST['nombre'])); 

    if (empty($_SESSION['nombremystere'])) 
    { 
     $_SESSION['nombremystere'] = mt_rand(0, 100); 
     echo $formulaire; 
    } 
    else 
    { 
     if ($_SESSION['nombremystere'] > $nombreentre) 
     { 
      echo 'C\'est plus !'; 
      echo $formulaire; 
     } 
     elseif ($_SESSION['nombremystere'] < $nombreentre) 
     { 
      echo 'C\'est moins !'; 
      echo $formulaire; 
     } 
     else 
     { 
      echo 'Bravo, vous avez trouve le nombre mystere !'; 
      session_destroy(); 
     } 
    } 
} 
+0

Если 'isset ($ _ POST ['nombre'])' оценивается как true, а '$ _SESSION ['nombremystere']' не задано, вы получите неопределенный индекс уведомление - вам также нужно c heck его с 'isset()'. –

0

В коде есть несколько ошибок, но неопределенная ошибка переменной возникает, когда isset($_POST['nombre']) и empty($_SESSION['nombremystere']) оба возвращают false.

Вам нужно уточнить вашу логику - вероятно, нечто большее, вдоль этих линий:

// we can only check for a win if we have an answer *and* the user has made a guess 
if(isset($_SESSION['nombremystere']) && isset($_POST['nombre'])) { 
    $nombreentre = htmlentities(stripslashes($_POST['nombre'])); 
    if ($_SESSION['nombremystere'] > $nombreentre) { 
     echo 'C\'est plus !'; 
     echo $formulaire; 
    } 
    else if ($_SESSION['nombremystere'] < $nombreentre) { 
     echo 'C\'est moins !'; 
     echo $formulaire; 
    } 
    else { 
     echo 'Bravo, vous avez trouve le nombre mystere !'; 
     session_destroy(); 
    } 
} 

// either the user hasn't submitted a guess, or we haven't generated a random number for them to guess 
else { 
    $_SESSION['nombremystere'] = mt_rand(0, 100); 
    echo '<form method="post" action="' . $_SERVER["PHP_SELF"] . '"> 
    <p> 
    <label>Entrez un nombre de 0 a 100 :</label> <input name="nombre" type="text"/> 
    <input type="submit" value ="Valider !"/> 
    </p> 
    </form>'; 
} 
Смежные вопросы