php登录可以在XAMPP上工作,但不能在web服务器上工作?
我正试图添加一个简单的登录到一个网站,并在我的本地主机XAMPP服务器上完美地工作,但现在当上传到我的网站时,我可以注册新用户,但当我登录时,页面就变成空白php登录可以在XAMPP上工作,但不能在web服务器上工作?,php,mysql,login,xampp,Php,Mysql,Login,Xampp,我正试图添加一个简单的登录到一个网站,并在我的本地主机XAMPP服务器上完美地工作,但现在当上传到我的网站时,我可以注册新用户,但当我登录时,页面就变成空白 <?php $error = ''; if (isset($_POST['login'])) { session_start(); $username = trim($_POST['username']); $password = trim($_POST['pwd']); // location to
<?php
$error = '';
if (isset($_POST['login'])) {
session_start();
$username = trim($_POST['username']);
$password = trim($_POST['pwd']);
// location to redirect on success
$redirect = './adminArea_db.php';
require_once('./includes/authenticate_pdo.inc.php');
}
?>
<!DOCTYPE HTML>
<html>
<link href="css/screen.css" rel="stylesheet" media="screen" />
<meta charset="utf-8">
<title>Login</title>
</head>
<body>
<div id="main">
<?php
if ($error) {
echo "<p>$error</p>";
} elseif (isset($_GET['expired'])) {
?>
<p>Your session has expired. Please log in again.</p>
<?php } ?>
<form id="form1" method="post" action="">
<p>
<label for="username">Username:</label>
<input type="text" name="username" id="username" value="">
</p>
<p>
<label for="pwd">Password:</label>
<input type="password" name="pwd" id="pwd">
</p>
<p>
<input name="login" type="submit" id="login" value="Log in">
</p>
</form>
</div>
</body>
</html>
登录
您的会话已过期。请重新登录
用户名:
密码:
有什么想法吗
在我的错误日志中发现一些错误,不确定是否有用
[11-Feb-2014 20:48:52 Europe/London] PHP Warning: session_start() [<ahref='function.session-start'>function.session-start</a>]: Cannot send session cookie - headers already sent by (output started at /home/georgepa/public_html/login_db.php:2) in /home/georgepa/public_html/login_db.php on line 6
[11-Feb-2014 20:48:52 Europe/London] PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at /home/georgepa/public_html/login_db.php:2) in /home/georgepa/public_html/login_db.php on line 6
[11-Feb-2014 20:48:52 Europe/London] PHP Warning: session_regenerate_id() [<a href='function.session-regenerate-id'>function.session-regenerate-id</a>]: Cannot regenerate session id - headers already sent in /home/georgepa/public_html/includes/authenticate_pdo.inc.php on line 28
[11-Feb-2014 20:48:52 Europe/London] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/georgepa/public_html/login_db.php:2) in /home/georgepa/public_html/includes/authenticate_pdo.inc.php on line 29
[11-Feb-2014 20:48:52 Europe/London]PHP警告:session_start()[]:无法发送会话cookie-已由第6行/home/georgepa/public_html/login_db.PHP中的/home/georgepa/public_html/login_db.PHP中的(输出开始于/home/georgepa/public_html/login_db.PHP:2)发送的标头
[11-Feb-2014 20:48:52 Europe/London]PHP警告:session_start()[]:无法发送session cache limiter-第6行/home/georgepa/public_html/login_db.PHP的/home/georgepa/public_html/login_db.PHP中已发送的头(输出开始于/home/gepa/public_html/login_db.PHP:2)
[11-Feb-2014 20:48:52 Europe/London]PHP警告:会话_REGENATE_id()[]:无法重新生成会话id-标题已在第28行的/home/georgepa/public_html/includes/authenticate_pdo.inc.PHP中发送
[11-Feb-2014 20:48:52 Europe/London]PHP警告:无法修改标题信息-标题已由第29行/home/georgepa/public_html/login_db.PHP中的/home/georgepa/public_html/includes/authenticate_pdo.inc.PHP发送(输出开始于/home/georgepa/public_html/login_db.PHP:2)
我想我的authenticate_pdo.inc.php文件有问题
<?php
require_once('./includes/connection.inc.php');
$conn = dbConnect();
// get the username's details from the database
$sql = 'SELECT salt, pwd FROM users WHERE username = :username';
// prepare statement
$stmt = $conn->prepare($sql);
// bind the input parameter
$stmt->bindParam(':username', $username, PDO::PARAM_STR);
// bind the result, using a new variable for the password
$stmt->bindColumn(1, $salt);
$stmt->bindColumn(2, $storedPwd);
try{
$stmt->execute();
$stmt->fetch();
}catch(PDOException $e){
exit('problem reading from table users'.$e->getMessage());
}
dbClose($conn) ;
// encrypt the submitted password with the salt and compare with stored password
if (sha1($password . $salt) == $storedPwd) {
$_SESSION['authenticated'] = 'admin'; // role of authenticated user
$_SESSION['username']=$username;
// get the time the session started
$_SESSION['start'] = time();
session_regenerate_id();
header("Location: $redirect");
exit;
} else {
// if no match, prepare error message
$error = 'Invalid username or password';
}
?>
session\u start()
以及session\u regenerate\u id()
应放在php脚本的开头之后,然后再进行任何其他输出
由于并非总是可以通过在程序开始处放置ob_start()
来设置输出缓冲
阅读以下文章可能会对您有所帮助:
- ]
首先打开错误报告。如何打开错误报告?查看此处:和内部服务器错误服务器遇到内部错误或配置错误,无法完成您的请求。请与服务器管理员联系,webmaster@george-paterson.co.uk并通知他们错误发生的时间,以及您可能采取的任何可能导致错误的措施。有关此错误的详细信息,请参阅服务器错误日志。此外,尝试使用ErrorDocument处理请求时遇到500内部服务器错误。这不会改变任何事情。您需要获得准确的错误消息,而不是500服务器错误。试试这个: