MySQLi登录系统错误

时间:2016-06-08 11:18:53

标签: php mysql mysqli login

我一直在使用 PHP MySQLi 功能登录系统,但是我遇到了一个我认为无法识别会话的错误,我无法弄清楚它为什么会发生的原因。

编辑:更新了代码。

  

的login.php

<?php
session_start();
require 'db/connect.php';
If (Isset($_POST['Login'])) {
    $EM = mysqli_real_escape_string($db, $_POST['email']); //Assign directly no need to create the $EM. You can put the whole into your query also
    $PW = mysqli_real_escape_string($db, $_POST['password']);
    $result = $db->query("select * from users where Email='$EM' AND password='$PW'");
    $row = $result->fetch_array(MYSQLI_BOTH);
    $_SESSION["UserID"] = $row['UserID'];
    header('location: Account.php');
    exit;
    }
?>
  

Account.php

<?php
require 'db/connect.php';
session_start();

if (isset($_SESSION["UserID"])) {
    include 'header.php'; //It contains output so move after session_start();
    echo 'Successfully logged in';
} else {
    header('location: Login.php');
    exit;
}
 ?>

2 个答案:

答案 0 :(得分:1)

在调用session_start();之前有输出。这应该导致&#34;标题已经发送&#34; -fatal error。

删除account.php中的空行(关闭并打开php无论如何都没有意义,在此片段中)

include 'header.php';
?>

<?php
 session_start();

header.php中是否有某种输出?

你有任何错误消息吗?您可以通过在代码顶部添加以下内容来显示错误:

ini_set('display_errors', 1);
error_reporting(-1);

在知道heder.php的作用后编辑:你的account.php应该像这样开始

<?php
session_start();
require 'db/connect.php';
include 'header.php';

答案 1 :(得分:0)

修改

基于OP评论。

以下是精美文件。不要在session_start()header()函数之前放置任何内容,在这些函数之前缓冲区中应该没有任何输出。

session_start();
require 'db/connect.php';
if (Isset($_POST['Login'])) {
    $EM = mysqli_real_escape_string($db, $_POST['email']); //Assign directly no need to create the $EM. You can put the whole into your query also
    $PW = mysqli_real_escape_string($db, $_POST['password']);
    $result = $db->query("select * from users where Email='$EM' AND password='$PW'");
    $row = $result->fetch_array(MYSQLI_BOTH);
    $_SESSION["UserID"] = $row['UserID'];
    header('location: Account.php');
    exit;
}

Account.php

session_start();
require 'db/connect.php';
if (isset($_SESSION["UserID"])) {
    include 'header.php'; //It contains output so move after session_start();
    echo 'Successfully logged in';
} else {
    header('location: Login.php');
    exit;
}