我使用了一個非常簡單的PHP腳本(login.php)讓用戶登錄到受保護的頁面。不過,我不斷收到這些錯誤消息會話啓動PHP錯誤消息無法發送會話緩存限制器 - 已發送頭文件
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/sites/f/mysite.co.uk/public_html/users/login.php:15) in /var/sites/f/mysite.co.uk/public_html/users/login.php on line 36
Warning: Cannot modify header information - headers already sent by (output started at /var/sites/f/freedomprogramme.co.uk/public_html/users/login.php:15) in /var/sites/f/freedomprogramme.co.uk/public_html/users/login.php on line 39
和頁面不會重定向到歡迎頁面,其中有這條線在頂部
<?php
session_start();
if(!isset($_SESSION["sess_user"])){
header("Location: login.php");
}
else
{
?>
這裏是login.php中
的內容<!doctype html>
<html>
<head>
<title>Login</title>
</head>
<body>
<h1>Login</h1>
<form action="" method="post">
<label>Username:</label><input type="text" name="user"><br/>
<label>Password:</label><input type="password" name="pass"><br/>
<input type="submit" value="Login" name="submit"><br/>
<!--New user Register Link -->
<p><a href="register.php">New User Registration!</a></p>
</form>
<?php
if(isset($_POST["submit"])){
if(!empty($_POST['user']) && !empty($_POST['pass'])){
$user = $_POST['user'];
$pass = $_POST['pass'];
//DB Connection
$conn = new mysqli('xxxx', 'yyyy', 'zzzz') or die(mysqli_error());
//Select DB From database
$db = mysqli_select_db($conn, 'yyyy') or die("databse error");
//Selecting database
$query = mysqli_query($conn, "SELECT * FROM userpass WHERE user='".$user." AND pass='".$pass."'");
$numrows = mysqli_num_rows($query);
if($numrows !=0)
{
while($row = mysqli_fetch_assoc($query))
{
$dbusername=$row['user'];
$dbpassword=$row['pass'];
}
if($user == $dbusername && $pass == $dbpassword)
{
session_start();
$_SESSION['sess_user']=$user;
//Redirect Browser
header("Location:welcome.php");
}
}
else
{
echo "Invalid Username or Password!";
}
}
else
{
echo "Required All fields!";
}
}
?>
</body>
</html>
任何幫助表示讚賞。提前
''session_start();''之前已經有了一些輸出。把這個'session_start();'放在你的PHP腳本的最頂端。 –