PHP会话5.4到5.6
我最近和一群学生一起创建了一个网站,但遇到了一些麻烦。 我们在本地主机上用PHP5.4创建了这个网站,效果非常好。 但是现在我们想让网站在线,而网络主机使用的是不同版本的php(5.6)。 因此,现在会话不会启动。 它会将我们重定向到主页,但我们没有登录。 我们认为这是因为php的版本,因为它一开始确实可以工作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 $
<?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
从未执行,因此您无法获取它。