các pro giúp em fix lỗi này cái ạ. em mới học php chưa hiểu lắm lỗi này

em đang viết phần login cho website. mặc dù database bên mysql đã khởi tạo và nhận nhưng khi đăng nhập thì kiểm tra username vs pass lại lỗi.
đây là code của em trong phần xử lý login
<?php
session_start();
include("config.php");
$username =$_POST['username'];
$password = ($_POST["password"]);
$sql=mysqli_query($link,"select*from user where username='$username' and password='$password'");
$num_rows=mysqli_num_rows($sql);
if($num_rows==0)
{
echo '<script type="text/javascript"> alert("sai tên đăng nhập hoặc mật khẩu"); history.go(-1)</script>';
}
else
{
$arr=mysqli_fetch_array($sql);
$_SESSION['u_id']= $arr['id'];
$_SESSION['user_id'] = $arr['username'];
$_SESSION['pass']= $arr['password'];
//$_SESSION['hoten']= $arr['hoten'];
//$_SESSION['ngaysinh']= $arr['ngaysinh'];
//$_SESSION['diachi']= $arr['diachi'];
header("location:index.php");
}
?>
em cho dù nhập vào thế nào cũng vào trường hợp $num_rows==0.
em là newbie nên chưa rành lắm. cần lắm 1 người giúp :danhdau:
 
  • Chủ đề
    hỏi php& mysql
  • bro cho mình hỏi ngu chút:
    $username =$_POST['username'];
    $password = ($_POST["password"]);
    trên ko có cặp dấu ngoặc đơn "()" và dưới thì có, vậy có khác nhau ko?
     
    Cái này dùng var_dump($ten_bien); để debug xem ở chỗ nào nó miss

    $username, $password xem có giá trị không

    không có => kiểm tra lại html <form action="..." method="post", phần <input type="..." name="ten_bien" xem viết đã đúng chưa $_POST['ten_bien']

    có => có thể do php bản cũ bạn thay lại câu query

    $sql = mysqli_query($link, "SELECT * FROM user WHERE username='{$username}' and password='{$password}'");

    hoặc

    $sql = mysqli_query($link, "SELECT * FROM user WHERE username='".$username."' and password='".$password."'");

    Cái bạn hỏi 2 cách viết đó như nhau

    cú pháp: $ten_bien = gia_tri;

    $_POST['ten_bien']: đây là biến toàn cục, lấy giá trị của của form truyền theo phương thức method="post"

    (): trong trường hợp này không có tác dụng gì
     
    bro cho mình hỏi ngu chút:
    $username =$_POST['username'];
    $password = ($_POST["password"]);
    trên ko có cặp dấu ngoặc đơn "()" và dưới thì có, vậy có khác nhau ko?

    Không biết thì hỏi là tốt. Còn cặp dấu ngoặc đơn thì không có gì khác biệt, mà bạn nên bỏ cặp dấu này đi chứ không nên dùng vậy.
     

    Thống kê

    Chủ đề
    100,759
    Bài viết
    467,597
    Thành viên
    339,858
    Thành viên mới nhất
    ffbbtopnhacai
    Top