注意:未定义的索引:第9行的C:\ xampp \ htdocs \ template \ cek_login.php中的用户名

时间:2019-02-21 03:34:34

标签: php

我要问的问题在这里被问到了,但问得很糟,导致问题没有解决。 这个koneksi.php

<?php
  $host = "localhost";
  $user = "root";
  $pass = "";
  $db   = "zou";

  $con = mysqli_connect($host, $user, $pass, $db);
  if (mysqli_connect_errno()){
    echo "Koneksi gagal: " . mysqli_connect_error();
  }
?>

这是我的cek_login.php

session_start();

// menghubungkan php dengan koneksi database
include 'koneksi.php';

// menangkap data yang dikirim dari form login
$username = $_POST['username'];
$password = md5($_POST['password']);


// menyeleksi data user dengan username dan password yang sesuai

   $query = mysqli_query($con, "SELECT * FROM user WHERE username='$username' AND password='$password'");
   $data = mysqli_fetch_array($query);
   $jml = mysqli_num_rows($query);
// cek apakah username dan password di temukan pada database
if($jml > 0){

   $data = mysqli_fetch_assoc($login);

   // cek jika user login sebagai admin
   if($data['level']=="admin"){

      // buat session login dan username
      $_SESSION['username'] = $username;
      $_SESSION['level'] = "admin";
      // alihkan ke halaman dashboard admin
      header("location:dashboard.php");

 
   }else{

      // alihkan ke halaman login kembali
      header("location:index.php?pesan=gagal");
   }  
}

为什么我不能定义用户名? $ username中的详细信息无法调用。

这些错误消息是什么意思?

我该如何解决?

1 个答案:

答案 0 :(得分:0)

根本原因:

这是因为,您的$_POST仅在您提交表单时才会被初始化。

您默认使用它。

解决方案:

在使用$_POST ed变量之前添加条件。

if (isset($_POST['username'])) {
 // Your code after form is posted.
}

这将确保在使用变量之前将其发布。

并避免任何错误。

通常最好的做法是在使用变量的值之前检查变量是否已设置。

这绝对好:

$i = 0;
$i = $i + 1;

$i = $i + 1;

由于未初始化$i,这将导致PHP错误。