2015-09-13 2 views
-3

Я читал об использовании тернарного оператора для установки начального значения по умолчанию для неопределенных переменных. Так вот что я пытался сделать в верхней части моих скриптов, как вы увидите.php undefined переменное уведомление, почему я получаю его здесь?

Тем не менее, я по-прежнему получаю неопределенные переменные ошибки в полях ввода поля ввода.

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

Мой код:

<?php 

    if (isset($_POST["submit"])) { 

    $user_name = isset($_POST["name"]) ? $_POST["name"] : ""; 
    $user_email = isset($_POST["email"]) ? $_POST["email"] : ""; 
    $user_age = isset($_POST["age"]) ? $_POST["age"] : ""; 

    $validation_errors = ""; 
    $error_counter = null; 


    if (empty($_POST["name"])) { 
     $validation_errors .= "<li class='validation_errors'>Please input your name.</li>"; 
     $error_counter++; 
    } 

    if (empty($user_email)) { 
     $validation_errors .= "<li class='validation_errors'>Please input your email.</li>"; 
     $error_counter++; 
    } 

    if (empty($user_age)) { 
     $validation_errors .= "<li class='validation_errors'>Please input your age.</li>"; 
     $error_counter++; 
    } elseif (intval($user_age) < 18) { 
     $validation_errors .= "<li class='validation_errors'>You must be over 18 years old.</li>"; 
     $error_counter++; 
    } 


    if ($error_counter != 0) { 

     // $validation_errors = "<li class='validation_success'>Message successfully sent!</li>"; 
     $error_design = "<hr> <p id='error_msg'>Please Fix Below Errors: <p>"; 

    }; 

    } 

?> 


<!DOCTYPE html> 
<html> 
<head> 

    <meta charset="utf-8"> 

    <title>SandBox</title> 

    <link rel="stylesheet" type="text/css" href="css/style.css"> 
    <link rel="stylesheet" href="css/animate.css"> 

    <script type="text/javascript" src="js/jquery.js"></script> 
    <script type="text/javascript" src="js/script.js"></script> 
</head> 
<body> 

    <header> 

    </header> 

    <form action="" method="post"> 

    <div class="input_group"> 
     <label for="name">Name</label> 
     <input type="text" name="name" value="<?php echo htmlspecialchars($user_name); ?>"> 
    </div> 

    <div class="input_group"> 
     <label for="email">eMail</label> 
     <input type="email" name="email" value="<?php echo htmlspecialchars($user_email); ?>"> 
    </div> 

    <div class="input_group"> 
     <label for="age">Age</label> 
     <input type="text" name="age" value="<?php echo htmlspecialchars($user_age); ?>"> 
    </div> 

    <input type="submit" value="Send" name="submit" id="submit"> 

    <?php echo $error_design; ?> 

    <div> 

     <ul> 

     <?php echo $validation_errors; ?> 

     </ul> 

    </div> 

    </form> 


    <footer></footer> 

</body> 
</html> 
+0

Не могли бы вы изменить свой вопрос, чтобы включить точный текст сообщения об ошибках, которые вы получаете, и указать, какие строки кода запускают ошибки? – Kenster

+0

все, что вам нужно сделать, это просто сохранить переменные пустыми в начале кода php. make ur имя пользователя, адрес пользователя и возраст пользователя пуст в начале php-кода – Gautam

+0

Хорошо ... Но будут и некоторые ошибки ... [link] (http://www.webyzz.hu/test.php) ;) – l0rkaY

ответ

0

Поместите эти переменные перед оператором IF:

$user_name = isset($_POST["name"]) ? $_POST["name"] : ""; 
$user_email = isset($_POST["email"]) ? $_POST["email"] : ""; 
$user_age = isset($_POST["age"]) ? $_POST["age"] : ""; 

или просто использовать:

// Report all errors except E_NOTICE 
error_reporting(E_ALL & ~E_NOTICE); 
+0

Ваш ответ неверный; это не имеет никакого отношения к этому. Посмотрите на код OP еще раз очень внимательно, в том числе на то, что они написали: * «Тем не менее, я все еще получаю неопределенные переменные ошибки в поля ввода поля моей контактной формы **. *« * - Решение очень простое, но оно не является Это то, что вы предоставили. –

+0

Я отредактировал мой ответ 8 минут назад ... Еще раз прочитал, я отправил решение;) – l0rkaY

+0

* «Или просто используйте: // Сообщить обо всех ошибках, кроме E_NOTICE error_reporting (E_ALL & ~ E_NOTICE);" * - Я считаю, что они используя отчет об ошибках, или их система уже настроена для обнаружения и отображения уведомлений. В противном случае OP не опубликовал бы, что они получают неопределенные уведомления переменных. –

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