Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kesalahan variabel tidak terdefinisi dalam skrip PHP saya

Ada banyak masalah dengan kode Anda, alasan utama Anda menerima kesalahan adalah karena $usertype dan $userstatus tidak ditentukan sebelumnya dan tidak divalidasi.
Tapi menurut saya itu bukan masalah utama dengan kode Anda.

Ada beberapa pertanyaan yang ingin saya tanyakan kepada Anda:

  • Mengapa membuat dua loop jika Anda perlu mengambil satu baris?
  • Mengapa menanyakan database dua kali jika Anda sudah tahu jawabannya?
  • Apakah Anda keluar dari $username dan $password untuk karakter buruk menggunakan mysql_real_escape_string metode?

berikut adalah contoh bagaimana kode ini akan terlihat seperti:

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

PERBARUI
Seperti yang disarankan oleh nikc.org , menghapus if tingkat 3 bersarang dan diganti dengan perbandingan ternary



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan SQL:1054, SQLState:42S22 Kolom tidak dikenal dalam kesalahan 'daftar bidang' Kesalahan Java Spring Boot Mysql

  2. Mengonversi nilai negatif dari FROM_UNIXTIME

  3. Pertanyaan mysql paralel di php?

  4. Interaksi 2 tabel:sisipkan, dapatkan hasil, sisipkan

  5. Penyimpanan TinyMCE UTF-8 ke Database MySQL