PHP Session 5.4 to 5.6


PHP Session 5.4 to 5.6

我最近和一群学生一起创建了一个网站,但遇到了一些麻烦。我们在本地主机上用php5.4创建了这个网站,它运行得很好。但现在我们想让网站上线,网络托管使用了不同版本的php(5.6)。所以现在会话没有开始。它将我们重定向到主页,但我们没有登录。我们认为这是因为php的版本,因为它一开始确实有效。

<?php
include_once 'connect.php';
session_start();// Starting Session
// Storing Session
$user_check=$_SESSION['gebruiker'];
// SQL Query To Fetch Complete Information Of User
$ses_sql="select email_adres from gebruiker where email_adres='".$user_check".'";
$row = mysqli_fetch_assoc($ses_sql);
$login_session =$row['username'];
if(!isset($login_session)){
    header('Location: login.php'); // Redirecting To Home Page
}
else{
    header('Location: acountgegevens.php');
}
?>


<?php
include_once 'connect.php';
function logincheck(){
    if(isset($_POST['submit'])){
        $error = 0;
        // declare variables
        $email = null;
        $password = null;
        // check if email address has been set
        if (isset($_POST['email_adres']) && 
           !empty($_POST['email_adres'])) {
            $email = addslashes($_POST['email_adres']);
        }
        // check if password has been set
        if (isset($_POST['password']) && !empty($_POST['password'])) {
            $password = md5($_POST['password']);
        }
        if ($email == null || $password == null) {
            $error = 1;
        }
        // query database for user credentials
        $db = new PDO('**');
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $statement = $db->prepare("SELECT * 
                                   FROM gebruiker 
                                   WHERE email_adres = :email 
                                     AND wachtwoord = :password 
                                   LIMIT 1");
        $statement->execute(array(':email' => $email, ':password' => $password));
        $result = $statement->fetch(PDO::FETCH_OBJ);
        if (!$result) {
            $error = 1;
        } else {
            session_start();
            $_SESSION['gebruiker'] = $email;
            var_dump($_SESSION);
?>
<script>location.href='index.php'</script>
<?php
        }
        return $error;
    }
}
?>

这两个文件都包括在内,但我们搞不清楚。

有人能帮忙吗?

我猜您的connect.php没有更改为与托管公司host/user/password匹配,因此正在输出错误消息。

当然,这意味着放在connect.php之后的session_start(),因此在脚本尝试向浏览器发送内容之后,将无法工作。

您只看到失败的session_start()的结果,但我会检查connect.php是否为其新的托管位置正确配置。