我的网站上有一个登录系统。我在这个过程中涉及这3个文件。 Config.php
,functions.php
和login.php
Config.php
具有数据库连接
functions.php
具有在数据库中检索和存储数据所需的功能。
当我尝试使用任何用户凭据登录时,可能会发生以下事情之一:
PHP警告:session_start():无法发送会话cookie - 标头 已经发送(输出从第58行的/ / functions.php开始
PHP警告:session_start():无法发送会话缓存限制器 - 标题已经发送(输出从... / login.php:56开始) 第58行的/ functions.php
PHP警告:无法修改标头信息 - 已发送的标头 在第67行的/ / login.php中输出(输出从... / login.php:56开始)
我用...
相同的文件一直在XAMPP服务器上运行,只有在我想在我的主机上运行时才会出现此问题。
这是我的代码:
的functions.php
class LoginRegister
{
function __construct($db)
{
$this->db = $db;
}
public function eventoLogin($usuario, $passw)
{
$query = $this->db->prepare("SELECT id,user FROM people WHERE user=? AND password=?");
$query->execute(array(
$usuario,
$passw
));
$userdata = $query->fetch();
$num = $query->rowCount();
if($num == 1) {
session_start(); //<------------ LINE 58
$_SESSION['login'] = true;
$_SESSION['uid'] = $userdata['id'];
$_SESSION['uname'] = $userdata['user'];
$_SESSION['login_msg'] = "Sesión iniciada correctamente";
return true;
} else {
return false;
}
}
}
的login.php
<?php
require_once "functions.php";
$db = new DatabaseConnection();
$user = new LoginRegister($db->pdo);
if($user->getSession()){
header('Location: actualizar.php');
exit();
}
?>
<html>
<body>
<?php //<---------- LINE 56
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$usuario = $_POST['usuario'];
$passw = $_POST['passw'];
}
if(empty($usuario) or empty($passw)) {
echo "Falta el nombre de usuario y/o contraseña";
} else {
$login = $user->eventoLogin($usuario, $passw);
if($login) {
header('Location: actualizar.php'); //<------- LINE 67
}
else {
echo "Error, nombre de usuario o contraseña incorrectos";
}
}
?>
<div>
<form action="" method="post" name="reg">
<table>
<tr>
<td><input type="text" name="usuario" placeholder="Nombre de usuario"></td>
</tr>
<tr>
<td><input type="password" name="passw" placeholder="Contraseña"></td>
</tr>
<tr>
<td> <input type="submit" name="submit" value="Ingresar" onclick="return(submitreg());"></td>
</tr>
</table>
</form>
</div>
</body>