我一直在嘗試向我的網站添加用戶登錄系統,并且以下登錄頁面似乎工作正常(就它檢查用戶名和密碼而言,通過用戶通過):索引.php<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Login Form</title> </head> <body> <form id="form1" name="form1" method="post" action="login.php"> <table width="510" border="0" align="center"> <tr> <td colspan="2">Login Form</td> </tr> <tr> <td>Email Address:</td> <td><input type="text" name="email" id="email" /></td> </tr> <tr> <td>Password</td> <td><input type="password" name="password" id="password" /></td> </tr> <tr> <td> </td> <td><input type="submit" name="button" id="button" value="Submit" /></td> </tr> <tr> <td colspa"2"><?php if(isset($_GET['f'])){echo("<h2>Login Failed</h2>");} ?></td> </tr> </table> </form> </body></html>登錄.php<?php session_start(); $email = $_POST['email']; $password = $_POST['password']; include 'includes/db_connect.php'; $conn = new PDO($dsn, $user, $pass); $query = "SELECT password, salt FROM member WHERE email = :email"; $result = $conn->prepare($query); $result->bindParam(":email", $email); $result->execute(); $number_of_rows = $result->rowCount();但是,我總是收到“您不是授權用戶...”錯誤,我試過將 avar_dump()和var_export()for$_SESSION但得到NULL并print_r沒有產生任何結果,echo 也是如此$_SESSION['email'],這表明我的$_SESSION全局為空,我session_start();在login.php 和 results.php 都開始,所以會話應該在那里并繼續。我在同一臺服務器上安裝了諸如 WordPress 之類的東西,所以很確定諸如$_SESSION在主機上運行之類的東西,而且 PHP 是 7.2,所以也應該符合要求。我忽略了什么愚蠢的錯誤?
1 回答

尚方寶劍之說
TA貢獻1788條經驗 獲得超4個贊
在 中results.php,您應該session_start()在任何 HTML 輸出之前的代碼頂部放置 。
<?php
session_start();
?>
<html>
... rest of code
從文檔:
要使用基于 cookie 的會話,必須在向瀏覽器輸出任何內容之前調用 session_start()。
如果您將 error_reporting 設置為顯示 E_WARNING,您應該會看到警告“無法發送會話 cookie - 標頭已經發送...”
- 1 回答
- 0 關注
- 129 瀏覽
添加回答
舉報
0/150
提交
取消