我的用户登录名没有启动会话,因此用户无法登录。在第2页中,我尝试echo $_SESSION['email'];
查看是否传递了会话变量,但未显示任何内容。
我仔细检查了phpmyadmin和数据库的格式,它的列是正确的,以及这些表格正在寻找的数据。
编辑:所有代码都在hs
文件夹中。在任何一个之前都没有空格session_start();
第1页:
<?php
session_start();
include '../hs/connect.php';
$email = mysqli_real_escape_string($con, trim($_POST['email']));
$password = mysqli_real_escape_string($con, $_POST['password']);
// echo $email when i tested these variables they returned the correct values
// echo $password
$sql="SELECT * FROM users WHERE email='$email' and password='$password'";
$result=mysqli_query($con,$sql);
$count=mysqli_num_rows($result);
if ($count==1){
$_SESSION['email'] = $email;
echo '<meta http-equiv="refresh" content="0;url=/hs/nextlogin.php">';
}
else{
echo '<meta http-equiv="refresh" content="0;url=/hs/hs.php">';
}
?>
上一个页面重定向到的页面(第2页):
<?php
session_start();
if (!isset($_SESSION['email'])) {
die("Please login <a href='../hs/hs.php'>here</a>"); //this keeps appearing even though I entered the correct login data
}
?>
解决方案:
通过谷歌搜索“ ipage会话不起作用”,我发现了这一点:http ://www.ipage.com/knowledgebase/read_article.bml?kbid=600
要运行PHP会话,请在使用会话的任何PHP脚本的顶部包含以下代码:
session_save_path(“您的主目录路径” / cgi-bin / tmp); session_start();
要查找“您的主目录路径”:登录PHP脚本页面以获取您的主目录的实际路径。用显示的路径替换“您的主目录路径”。将session_save_path设置为您的cgi-bin中的目录:如上例中的/ cgi-bin / tmp或其他目录,只要绝对路径正确即可。
问题是服务器上运行PHP的进程没有特权写入全局会话文件夹。您应该遵循您的虚拟主机提供的指导,如果那不能解决您的问题,我建议您在其支持系统中打开一个票证。
较旧的建议,以供将来参考:
由于某种原因,$ _ SESSION在重定向后没有继续。以下是可能出错的检查清单,但需要检查一些关键点:
$count
的确是1
。我知道这听起来很愚蠢,但有时会发生这些错误。header('Location: http://myhost.com/hs/nextlogin.php');
除了这些建议之外,我还需要更多信息来提出其他潜在解决方案。
编辑1:仅在这些页面上打开错误报告,将以下两行添加到页面顶部,就在php open标签之后:
error_reporting(E_ALL);
ini_set('error_reporting',E_ALL);
编辑2:正如barmar在注释中指出的那样,请确保文件中绝对没有任何内容<?php
,甚至没有空格。会话处理本身也可能是一个问题。您是否对php.ini中的会话处理进行了任何修改?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句