sql >> Databasteknik >  >> RDS >> Mysql

Odefinierat variabelfel i mitt PHP-skript

Det finns många problem med din kod, huvudorsaken till att du får ett felmeddelande är att $usertype och $userstatus är inte fördefinierade och inte validerade.
Men enligt min åsikt är det inte ett huvudproblem med din kod.

Det finns några frågor som jag skulle vilja ställa till dig:

  • Varför skapa två loopar om du behöver hämta en enda rad?
  • Varför frågar databasen två gånger om du redan vet svaret?
  • Krymmer du $username och $password för dåliga tecken med mysql_real_escape_string metod?

här är ett exempel på hur den här koden ska se ut:

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

UPPDATERA
Som föreslagits av nikc.org , tog bort tredje nivån if kapsling och ersätts med ternär jämförelse



  1. Lagra bild till databas blob; hämta från db till Picturebox

  2. Transponera ett sql-resultat så att en kolumn går till flera kolumner

  3. Data från två tabeller med samma kolumnnamn

  4. Varför tar ActiveRecord destroy_all så lång tid?