我希望在注册后页面应继续进行会话。因为我已经创建了以下代码。
if($_POST['action']=='finder_quick_reg')
{
extract($_POST);
print_r($_POST);
$result=$dbg->exec("INSERT INTO `login_register`(`email`, `password`, `reg_date`, `complite_register`, `type`) VALUES ('$client_mail','$client_password', now(),'0','c_finder')") or die("Insert Failed ".mysql_error());
$lastId = $dbg->lastInsertId();
$results=$dbg->exec("INSERT INTO `care_finder`(`postal_code`,`user_pic`, `login_id`,`f_name`, `l_name`, `gender` ) VALUES ('$postal_code', 'default.jpg','$lastId', '$f_name', '$l_name', '$gender')")or die("Insert Failed ".mysql_error());
}
else{echo 'error';}
if($results){
include_once 'connection.php';
$con=new connection();
$dbg=$con->db;
$sql="SELECT * FROM `login_register` WHERE `login_id`='$lastId'";
$stmt=$dbg->query($sql);
$rows=$stmt->fetch(PDO::FETCH_ASSOC);
session_start();
//echo $lastId;
$_SESSION['Uname']=$rows['email'];
$_SESSION['pword']=$rows['password'];
$_SESSION['Utype']=$rows['type'];
$_SESSION['Uid']=$rows['login_id'];
}
在这个db.php页面之后,它将转到user_index.php 以下代码在user_index.php中使用
<?php
session_start();
if (!isset($_SESSION['Uname'])) {
//header("location:index.php");
echo 'no sesseion';
}
else {
......
......
}
可以帮助我一些人
答案 0 :(得分:1)
您在开始会话前输出
if($_POST['action']=='finder_quick_reg')
{
// ...
print_r($_POST);
// ...
}
else { echo 'error'; }
从标题中我假设在生产服务器上关闭了error_reporting
,否则你会看到一条错误信息
警告:无法修改标头信息 - 已发送的标头...
你应该在你的其他文件中完全像你在其他文件中那样开始会话 - 在它开始之前,在所有其他语句之前。
在旁注中,看一下notes in the documentation for export()
function点,在那里写了为什么/在不受信任的数据上使用它是个坏主意。
答案 1 :(得分:0)
session_start();
应该来自登录页面。