Mysql
 sql >> Base de données >  >> RDS >> Mysql

Erreur de variable non définie dans mon script PHP

Il y a beaucoup de problèmes avec votre code, la principale raison pour laquelle vous recevez une erreur est que $usertype et $userstatus ne sont ni prédéfinis ni validés.
Mais à mon avis, ce n'est pas un problème majeur avec votre code.

Il y a quelques questions que j'aimerais vous poser :

  • Pourquoi créer deux boucles si vous devez récupérer une seule ligne ?
  • Pourquoi interroger la base de données deux fois si vous connaissez déjà la réponse ?
  • Échappez-vous à $username et $password pour les mauvais caractères en utilisant mysql_real_escape_string méthode ?

voici un exemple à quoi ce code devrait ressembler :

$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";
}

MISE À JOUR
Comme suggéré par nikc.org , suppression du 3e niveau if imbrication et remplacé par une comparaison ternaire