Переменная не эхом - PullRequest
       3

Переменная не эхом

0 голосов
/ 25 декабря 2010

У меня есть следующий код, где var $ username не отображается, когда вы вводите значение.

//TODO: SET AUTH TOKEN as random hash, save in session
$auth_token =  rand();   

if (isset($_POST['action']) && $_POST['action'] == 'Login')
{

    $errors = array(); //USED TO BUILD UP ARRAY OF ERRORS WHICH ARE THEN ECHOED
    $username = $_POST['username'];

    if ($username = '')
    {
        $errors['username'] = 'Username is required';
    }

    echo $username; // var_dump($username) returns string 0
}


require_once 'login_form.html.php';

 ?>

login_form это это:

<form method="POST" action="">
<input type="hidden" name="auth_token" value="<?php echo $auth_token ?>">
Username: <input type="text" name="username">
Password: <input type="password" name="password1">
<input type="submit" name="action" value="Login">
</form>

Часть токена аутентификации не важна, просто когда я набираю значение в текстовом поле имени пользователя и нажимаю кнопку входа в систему, имя пользователя не отображается, var_dump возвращает строку (0), а print_r просто пусто.

Ответы [ 4 ]

3 голосов
/ 25 декабря 2010

глупая ошибка

if ($username = '')   <-- this is an assignment

Должно быть это

if ($username == '')  <-- this is comparison
2 голосов
/ 25 декабря 2010

Эта строка является назначением, а не сравнением:

if ($username = '')

Вы хотите:

if ($username == '')
2 голосов
/ 25 декабря 2010
if ($username = '')

Вам не хватает =, поэтому вы присваиваете пустую строку $username. Измените его на

if ($username == '')
               ^-- note the 2 equal signs.
1 голос
/ 25 декабря 2010
//TODO: SET AUTH TOKEN as random hash
$auth_token =  rand();   

if (isset($_POST['action']) && $_POST['action'] == 'Login')
{

    $errors = array(); //USED TO BUILD UP ARRAY OF ERRORS WHICH ARE THEN ECHOED
    $username = $_POST['username'];

    if ($username == '') // **You are assiging not comparing** 
    {
        $errors['username'] = 'Username is required';
    }

    echo $username; // var_dump($username) returns string 0
}


require_once 'login_form.html.php';

 ?>

В вашей форме входа в систему: (атрибут действия ..)

 <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
 <input type="hidden" name="auth_token" value="<?php echo $auth_token ?>">
 Username: <input type="text" name="username">
 Password: <input type="password" name="password1">
 <input type="submit" name="action" value="Login">
 </form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...