2015-10-27 3 views
0

У меня есть остальная часть кода, но мне кажется, что мой оператор if для возраста, продолжает застревать и повторяет утверждение. Я вижу в var_dump, что он получил правильное значение, но он продолжает возвращаться к заявлению, в котором говорится, чтобы ввести числовое значение.Опрос, застрявший в петле

<?php 

session_start(); 

var_dump($_SESSION); 

$isValid = true; 

$fullName = ""; 
$age = ""; 
$gender = ""; 



if (isset($_POST) && !empty($_POST)) 
{ 
    if (isset($_POST['fullName']) && !empty($_POST['fullName']))  
    { 
     $_SESSION['fullName'] = $_POST['fullName']; 
    } 
    else 
    { 
     $isValid = false; 
     echo "Please fill in your Full Name."; 
    } 

    if (isset ($_POST['age']) && !empty($_POST['age'])) 
    { 
     $_SESSION['age'] = $_POST['age']; 

     if (empty($_POST['age'])) 
     { 
      $isValid = false; 
      echo "Please fill in your Age."; 
     } 

     else if(!is_numeric($age)) 
     { 
      $isValid = false; 
      echo "Must be a numeric value."; 
     } 
    } 
    else 
    { 
     $isValid = true; 
    } 

    if (isset($_POST['yourGender']) && !empty($_POST['yourGender']))  
    { 
     $_SESSION['yourGender'] = $_POST['yourGender']; 
    } 
    else 
    { 
     $isValid = false; 
     echo"Please pick your gender"; 
    } 

    if ($isValid) 
    { 
     header('Location: qp2.php'); 
    } 
} 

?> 

<html> 
    <head> 
     <title> Questions Page 1</title> 
    </head> 

<body> 

    <form method="post" action="qp1.php"> 

     <!--Name --> 
     Full Name: <input type="text" name="fullName" value="<?php echo $fullName; ?>"/><br/> 

     <!-- Email --> 
     Age: <input type="text" name="age" value="<?php echo $age; ?>"/><br/> 
     <br/> 

     <!-- How? Dropdown --> 
     How did you hear about us? 
     <select name="yourGender" value="<?php echo $gender; ?>"> 
      <option value=""></option> 
      <option value="male">Male</option> 
      <option value="female">Female</option> 
     </select> 

     <br/> 

     <!-- Submit button --> 
     <input type="button" value="Back" onclick="location.href='index.php'"/> 
     <input type="submit" value="Next"/> 


    </form> 

</body> 
</html> 

Может ли кто-нибудь сказать мне, что не так с моими заявлениями?

+0

Пожалуйста, быть более конкретным указанием на какой строке вы видите неправильное состояние. – jpaljasma

+0

'$ age = $ _POST ['age']' – aldrin27

+0

Eugen Rieck, на самом деле помог мне решить эту проблему. Это было мое заявление else, в котором отсутствовал оператор $ _SESSION. – ryuuman123

ответ

0

Вы делите на if(!is_numeric($age)) без присвоения $age.

Либо назначить $age=$_SESSION['age']; или проверить if(!is_numeric($_SESSION['age']))

+0

Большое спасибо! Не мог видеть, что это было что-то простое – ryuuman123

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