PHP会话5.4到5.6

PHP会话5.4到5.6,php,session,Php,Session,我最近和一群学生一起创建了一个网站,但遇到了一些麻烦。 我们在本地主机上用PHP5.4创建了这个网站,效果非常好。 但是现在我们想让网站在线,而网络主机使用的是不同版本的php(5.6)。 因此,现在会话不会启动。 它会将我们重定向到主页,但我们没有登录。 我们认为这是因为php的版本,因为它一开始确实可以工作 <?php include_once 'connect.php'; session_start();// Starting Session // Storing Session $

我最近和一群学生一起创建了一个网站,但遇到了一些麻烦。 我们在本地主机上用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;
    }
}
?>

location.href='index.php'
这两个文件都包括在内,但我们无法计算出来


有人能帮忙吗?

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

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


您只看到失败的
session_start()
的结果,但我会检查
connect.php
是否为其新的托管位置正确配置了
session_start()应该在第一行。是的,如果包含的connect.php使用会话变量,那么必须首先使用
会话_start()
。不能混合和匹配不同的数据库连接API,或者使用
PDO
或者使用
MySQLi
。您应该到处使用准备好的语句。您使用
PDO
mysqli
的任何特定原因?您还应该了解PHP密码哈希/验证函数<代码>$ses\u sql
从未执行,因此您无法获取它。