sql >> Database teknologi >  >> RDS >> Mysql

Udefineret variabel fejl i mit PHP-script

Der er mange problemer med din kode, hovedårsagen til at du modtager en fejl er fordi $usertype og $userstatus er ikke foruddefinerede og ikke validerede.
Men efter min mening er det ikke et hovedproblem med din kode.

Der er få spørgsmål, som jeg gerne vil stille dig:

  • Hvorfor oprette to sløjfer, hvis du skal hente en enkelt række?
  • Hvorfor spørger databasen to gange, hvis du allerede kender svaret?
  • Undslipper du $username og $password for dårlige tegn ved hjælp af mysql_real_escape_string metode?

her er et eksempel på, hvordan denne kode skal se ud:

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

OPDATERING
Som foreslået af nikc.org , fjernet 3. niveau if indlejring og erstattet med ternær sammenligning



  1. Forespørgsel for at vælge strenge, der slutter med et bestemt tegn

  2. MySQL char vs. int

  3. Room API - Hvordan henter jeg det nyligt indsatte genererede id for enheden?

  4. Ydeevne overraskelser og antagelser:DATEDIFF