0
我最近和一群学生一起创建了一个网站,但遇到了一些麻烦。 我们在php5.4的本地主机上创建了这个网站,它工作的很完美。 但现在我们想让网站在线,并且网站主办使用不同版本的php(5.6)。 所以现在会话不会启动。 它将我们重定向到主页,但我们未登录。 我们认为这是因为php的版本,因为它起初工作。PHP Session 5.4 to 5.6
<?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;
}
}
?>
这两个文件都包括在内,但我们不能弄明白。
有人可以帮忙吗?
'在session_start();'应在第一线。 –
是的,如果包含的* connect.php *使用会话变量,'session_start()'必须是第一件事。 – Phiter
您不能混合和匹配不同的数据库连接API,可以使用'PDO'或使用'MySQLi'。 – Tom