我有一个网站,当我的用户登录时,它会将他们带到
验证.php
(它连接到数据库并将电子邮件和密码与用户输入匹配,如果确定将客户端数据放入会话并将客户端带到 /memberarea/index.php 否则返回登录页面并显示消息“无效的电子邮件或密码!”)
<?php
ob_start();
session_start();
$email=$_POST['email'];
$pass=md5($_POST['pass']);
include("conn.php"); // connects to Database
$sql="SELECT * FROM `user` WHERE email='$email' AND pass='$pass'";
$result=mysql_query($sql);
$new=mysql_fetch_array($result);
$_SESSION['fname']=$new['fname'];
$_SESSION['lname']=$new['lname'];
$_SESSION['email']=$new['email'];
$_SESSION['passwrd']=$new['passwrd'];
$no=mysql_num_rows($result);
if ($no==1){
header('Location:memberarea/index.php');
}else {
header("Location:login.php?m=$msg"); //msg="Invalid Login"
}
?>
然后在验证电子邮件 ID 和密码后,它会将他们带到`
/memberarea/index.php
(这就是问题发生的地方。)
在 index.php 中,它检查是否已创建会话以阻止黑客进入会员区并将其发送回登录页面。
<?
session_start();
isset($_SESSION['email'])` && `isset($_SESSION['passwrd'])`
问题是客户端在 verify.php 中得到验证(代码在上面)
在 varify.php 中,只有在我把
ob_start();
它session_start();
移到上面之后/memberarea/index.php
,
如果我删除ob_start()
它将客户端保留在 verify.php 页面上并显示错误标题是 alredy SENT。
在我把ob_start()
它放进去之后,/memberarea/index.php
但会话是空白的,
所以它返回登录页面并显示错误($msg)“无效登录”,这是我编程显示的。
谁能告诉我为什么会话不能将值从 verify.php 传递到/memberarea/index.php