Làm cách nào để chuyển hướng trang trong PHP sau khi đăng nhập?

Tôi đã xây dựng một trang web bao gồm một trang đăng nhập. Tôi cần chuyển hướng người dùng đến trang hồ sơ của họ sau khi họ đăng nhập thành công, nhưng tôi không biết cách thực hiện điều đó trong PHP vì đây là trang web đầu tiên của tôi. Tôi đã tìm kiếm trên internet và được thông báo rằng hàm header() sẽ thực hiện thủ thuật này, nhưng nó sẽ chỉ hoạt động nếu tôi không xuất bất kỳ thông tin nào trước khi sử dụng nó

Vấn đề là tôi đã xuất ra một loạt thông tin Bao gồm cả HTML để tự xây dựng trang đăng nhập. Vậy làm cách nào để chuyển hướng người dùng từ trang này sang trang tiếp theo?

Tôi có những lựa chọn nào?

CHỈNH SỬA. Đây là toàn bộ thông tin đăng nhập của tôi. trang php.

 



session_start(); 

echo " 
       
                 
                         
                        Sprout 
               
                   
       
              
Name

Password
"; if ($_SERVER['REQUEST_METHOD'] == 'POST') { $username = $_POST["username"]; $password = $_POST["password"]; $dbhost = "localhost"; $dbuser = "root"; $dbpass = "root"; $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ("Error connecting to database"); $dbname = "database"; mysql_select_db($dbname); $query = "SELECT username FROM users WHERE username = '$username' AND password = '$password'"; $result = mysql_query($query) or die ("Failed Query of " . $query); while($row = mysql_fetch_assoc($result)) { $_SESSION["user"] = $username; } } ?>

Điều này đã đưa tôi trở lại trang gốc một cách chính xác, nhưng thông tin đăng nhập không hoạt động - Tôi vẫn đăng xuất, không có thông báo lỗi, không có kết xuất thông tin người dùng, không có gì. Việc sử dụng $_SESSION của tôi có vi phạm thứ gì đó mà auth0 sử dụng không?

Thông tin đăng nhập đã hoạt động tốt trước khi tôi bắt đầu luồng chuyển hướng (tôi chỉ mã hóa cứng trang chủ dưới dạng chuyển hướng)… Và tôi biết các tài liệu nói về nonce, v.v. nhưng tôi chỉ muốn thử nghiệm điều này trước - chắc chắn nó sẽ hoạt động chứ?

Trong bài viết này, chúng ta sẽ tìm hiểu cách chuyển hướng người dùng trở lại cùng một trang sau khi đăng nhập thành công. Chúng tôi sẽ sử dụng PHP trong hướng dẫn này

3 cách để chuyển hướng trở lại cùng một trang sau khi đăng nhập – PHP

Bạn có thể đã xem rất nhiều trang web nơi bạn có thể xem nội dung của nó. Nhưng để thực hiện một số hành động, trước tiên bạn phải đăng nhập. Khi bạn nhấp vào đăng nhập, bạn được chuyển hướng đến một số trang khác, nơi bạn có thể nhập email và mật khẩu của mình và đăng nhập. Sau khi đăng nhập thành công, sau đó chuyển hướng bạn trở lại cùng một trang nơi bạn nhấp vào nút “Đăng nhập”. Một cách khác là họ hiện cho bạn một cửa sổ bật lên trên cùng một trang, sau khi đăng nhập, bạn có thể thực hiện thao tác đó

Đó là một chức năng rất hữu ích. Đặc biệt nếu bạn muốn người dùng xem nội dung của trang web mà không cần phải đăng nhập

Facebook

Ví dụ: trong Facebook bạn có thể xem video, ảnh và hồ sơ. Nhưng để thích/bình luận/chia sẻ hoặc gửi tin nhắn/yêu cầu kết bạn, bạn phải đăng nhập. Vì vậy, chúng tôi sẽ thảo luận về 3 phương pháp để thực hiện điều đó, chúng tôi sẽ sử dụng cơ sở dữ liệu mẫu có tên mô hình cổ điển cơ sở dữ liệu này sẽ được đưa vào các tệp nguồn bên dưới

Phương pháp 1 – URL

Đây là kỹ thuật tương tự như chúng ta đã thảo luận trong đoạn 1 của bài viết này. Chúng ta sẽ tạo 3 trang nha. php, http. php và phương thức-1-url. php. Trang Chủ. php sẽ là trang mà chúng ta sẽ tạo nút “Đăng nhập” và method-1-url. php sẽ là trang hiển thị trang đăng nhập. http. php là trang chịu trách nhiệm xử lý việc gửi biểu mẫu và truy vấn cơ sở dữ liệu

Trang Chủ. php

Ở đây chúng tôi đang nối thêm đường dẫn đầy đủ của trang hiện tại vào URL

You are logged in

"; // Complete path to this page $actual_link = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?> Login

phương pháp-1-url. php

Ở đây, chúng tôi đang nối thêm biến tiếp tục trong thuộc tính hành động biểu mẫu nhận được từ nhà. tập tin php

http. php

Tệp này chịu trách nhiệm cho tất cả logic đăng nhập của bạn

 0)
    {
        // Save user ID in $_SESSION variable
        $_SESSION["user_id"] = mysqli_fetch_object($result)->id;

        // Redirecting back to same page where "Login" button was clicked
        header("Location: " . $_GET["continue"]);
    }
    else
        echo "Incorrect password";
}

Phương pháp 2 – PHP

Phương pháp này liên quan đến việc sử dụng biến PHP $ _SERVER tích hợp để thực hiện tác vụ. Biểu mẫu đăng nhập không thành công và không có tham số bổ sung nào trong URL

You are logged in

"; ?>

http. php

Ở đây tất cả logic đăng nhập sẽ vẫn giống như trong bước trước, chỉ cần thay đổi cách chúng tôi chuyển hướng trở lại. Vì đây là một yêu cầu AJAX nên chúng tôi sẽ không thực hiện chuyển hướng HTTP mà sẽ chỉ gửi phản hồi trở lại AJAX. Phản hồi có thể là bất kỳ chuỗi nào bạn muốn nhưng để đơn giản, chúng tôi chỉ gửi chuỗi “Đăng nhập thành công”

Làm cách nào để chuyển hướng người dùng trên trang sau khi đăng nhập bằng PHP?

Vấn đề tương tự cũng tồn tại khi sử dụng một tệp PHP/HTML. .
Đặt mã này trước bất kỳ html nào trong trang của bạn (thậm chí không được có một khoảng trắng nào trước mã này)
Use this -It's case sensitive- .
Đóng nó khi bạn hoàn thành

Làm cách nào để chuyển hướng trang trong PHP?

Chuyển hướng từ trang này sang trang khác trong PHP thường được thực hiện bằng hai cách sau. Sử dụng hàm tiêu đề trong PHP . Hàm header() là một hàm có sẵn trong PHP được sử dụng để gửi tiêu đề HTTP (Giao thức truyền siêu văn bản) thô tới máy khách.