Đăng nhập trong php

Mọi người ơi, cho mình hỏi.
Mình làm chức năng đăng nhập
1 file là index.php và 1 file login.
Ý mình hỏi là sau :

  • trước khi đăng nhập : trang index.php sẽ hiển thị tren banner là chữ đăng nhập
  • và sau khi đăng nhập: trang index tren banner thay thế chữ đăng nhập bằng ten người dùng.
    Vậy làm sao mọi người. Mình biết là vụ nay nhưng đối với trường hợp 2 trang index roi cai cai 1 trang thì mình lam ạ. Tức là đăng nhập xong mình chỉ load lại trang thui chứ hk chuyển qua trang khác

Dùng session kiểm tra điều kiện khi có user đăng nhập, thì cho hiển thị chũ nếu ko thì cho banner :slightly_smiling:

Lại dùng kỹ thuật Ajax ta gữi url có tham số là tên đăng nhập và mật khẩu cho tập tin login.php xử lý và lấy ra tên đăng nhập sau đó thay đỗi lại giá trị chổ bạn muốn đỗi lại.

1 Like

cái đoạn ajax " lấy ra tên đăng nhập sau đó thay đỗi lại giá trị chổ bạn muốn đỗi lại." làm sao bạn

dùng session thì mình biết. nhưng ý mình là thay thế chữ đăng nhập bằng tên người dùng. mà chỉ load lại trang thui á. chứ hk chuyển qua trang khác

bạn mới lập trình php đúng ko, vậy thì tạm bỏ qua khái niệm ajax đã nhé.
Theo như ý hiểu của mình thì bạn đặt hàm xử lý đăng nhập ngay tại trang index.

không có mình đặt xử lý tại trang login á.

Vậy thì giờ bạn hãy đọc qua về Ajax đi.
Tại trang index của bạn, khi nhấn vào submit trong form login, dùng ajax gửi request tới login , hàm login nhận các params truyền lên, nếu login thành công thì lưu thông tin ( có thể là username) và session và trả data về. / nếu login sai thì bạn trả về mã lỗi, hay gì gì đó tùy bạn
Ajax tùy thuộc thuộc vào data được trả về từ login mà dùng js thông báo lỗi hay [ẩn chữ login và dán tên người dùng vừa mớ đăng nhập vào]

trong phần body

<input type='text' name='txtUser'>
<input type='password' name='txtPass'>
<button id='login'> đăng nhập </button>
<script type='login.js' type='text/javascript'></script>

trong login.js

$('#login').click(function(){
   $username = $("input[name='txtUser']");
   $password = $("input[type='txtPass']");
   $.post(
      "login.php",
      data:"username="+$username.val()+"&password="+$password.val(),
      success:function(result)
      {
         if(result != "0")
         {
            $(this).html(result); // chữ đăng nhập trong nút đăng nhập sẽ được thay thế bằng tên đăng nhập của người dùng
            // chổ nào có chữ đăng nhập thì chuyễn thành tên người dùng không tải lại trang. Ngoài ra xử lý gì thêm thì tùy
          }
          else
           alert(" tên tài khoản hoặc mật khẩu không trùng khớp ");  
      }
   )
})

login.php

 // đoạn mã kết nối cơ sỡ dữ liệu
 $sql = "select * from Account where username = '" . $_POST['username'] . "' and password = '" . $_POST['password'] . "'";
 $result = DataProvider::QueryData($sql)
 if($result->num_rows > 0)
 {
    while($rows = result->fetch_assoc())
    {
       echo $rows['username']; // xuất tên đăng nhập
    }
 }
 else
 {
    echo "0"; // để ajax nhận kết quả
 }

do đó
tập tin login.php có nội dung $rows[‘username’] hoặc là “0”. và result trong ajax chỉ lấy 1 trong 2 giá trị này để kiễm tra.
Ưu điểm của ajax là không cần rào dữ liệu gữi lên server bằng mà vẫn lấy được dữ liệu về và thay đỗi tại vị trí muốn đỗi lại. Đoạn mã trên chỉ là ví dụ thôi.

1 Like

Đoạn bạn nói Ajax có ưu điểm là “Ko cần rào dữ liệu gửi lến server” nghĩa là sao nhỉ/

Mình cũng mới học php được vài tuần, theo như ý của bạn thì sài session là ok
if(isset($_SESSION[‘user’])){
echo ’ noi dung web can hien thi ra ';
}else{
echo ‘banner nhu index cũ ra’;
}
Trình độ mình chỉ tới đó =) hi vọng giúp được bạn

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?