Mysql
 sql >> база данни >  >> RDS >> Mysql

Грешка с недефинирана променлива в моя PHP скрипт

Има много проблеми с вашия код, основната причина да получавате грешка е, защото $usertype и $userstatus не са предварително дефинирани и не са валидирани.
Но според мен това не е основен проблем с вашия код.

Има няколко въпроса, които бих искал да ви задам:

  • Защо да създавате два цикъла, ако трябва да извлечете един ред?
  • Защо да правите заявки към база данни два пъти, ако вече знаете отговора?
  • Избягате ли от $username и $password за лоши знаци с помощта на mysql_real_escape_string метод?

ето пример как трябва да изглежда този код:

$query1 = "SELECT user_type,user_staus FROM `user_info` WHERE name='{$username}' AND password='{$password}' LIMIT 1";

$fetched = mysql_query($query1);

//check if record exists otherwise you would receive another notice that can 
//break redirect functionality
if (mysql_num_rows($fetched))
{
    $record = mysql_fetch_assoc($fetched);

    // make sure that value is integer
    if ((int)$record["user_staus"])
    {
        exit("Please login after some time");
    }
    else
    {
        $url = (bool)$record["user_type"] ? 'admin_form.php' : 'user_form.php';

        header("Location: {$url}");

        exit(0);
    }

}
else
{
    echo "please register to login";
}

АКТУАЛИЗИРАНЕ
Както е предложено от nikc.org , премахна 3-то ниво if гнездене и заменено с троично сравнение



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да показвам само 5 записа на страница от моята таблица на база данни на mysql чрез пагинация?

  2. Spring Data Join със спецификации

  3. Заявете MySQL, като поставите отметка в множество квадратчета с автоматична актуализация

  4. В CentOS7 не може да стартира MySQL

  5. Laravel eloquent не актуализира колона JSON:Преобразуване на масив в низ