无法在不同的PHP页面中获取会话

时间:2015-01-12 17:56:23

标签: php session mysqli

除了我初始化它之外,无法从不同的PHP页面获取会话

这是我第一个初始化会话的PHP页面。

<?php
   $i =1;

$team = htmlentities($_POST['team']);
$id = htmlentities($_POST['id1']);
$mobile = htmlentities($_POST['mobile1']);


if(isset($_POST['id2']))
{
    $ids = htmlentities($_POST['id2']);
    $mobiles = htmlentities($_POST['mobile2']);
 $i=2;   
}
if(isset($_POST['id3'])){
       $ids = $ids.','.htmlentities($_POST['id3']);
        $mobiles = $mobiles.','.htmlentities($_POST['mobile3']);
    $i=3;}
echo $team;
echo $i;

$connect =new mysqli('localhost', 'root', 'password','test');


if($connect->connect_error)
{
die("connection failed : ".$connect->connect_error);
}

$data = "INSERT INTO `Users`(`team_name`, `id`, `mobile`, `ids`, `mobiles`) VALUES ('$team','$id','$mobile','$ids','$mobiles')" ;
$createData="CREATE TABLE `$id`(
   `id` INT NOT NULL ,
   `ansOpChoosen` INT NOT NULL,
   `realAns` INT NOT NULL
   );";
echo 'pass';
$link ="/test.html";
$link2 = "/signups.html";
if(mysqli_query($connect,$data) && mysqli_query($connect,$createData) )
{ 
     session_start();
    $_SESSION['user'] = $id;  
header('Location: '.$link);    
echo "new record created successfully";
}

else{
   header('Location: '.$link2);    
  echo "error";
}

$connect->close();


?>

这是另一个php页面,我尝试检索数据,但它不会取任何东西

<?php
$id =    $_SESSION['user'];
$quesNo = $_POST['questionNo'];
$optionCho = $_POST['optionchoosen'];
$optionReal =$_POST['optionreal'];
echo $id;
//echo "hbbhkhb";
$connect =new mysqli('localhost','root','password`','test');
if($connect->error){
  echo "connection error";    
}
$check ="SELECT * FROM `$id` WHERE `id`=$quesNo";
if($res=mysqli_query($connect,$check)){
    $count = mysqli_num_rows($res);
    if($count>0)
    {
        $data ="UPDATE `$id` SET `ansOpChoosen`=$optionCho,`realAns`=$optionReal WHERE `id`=$quesNo";

    }
    else{
        $data = "INSERT INTO `$id`(`id`,`ansOpChoosen`,`realAns`) VALUES ($quesNo,$optionCho,$optionReal)";
    }
    $store=mysqli_query($connect,$data);

}

?>

3 个答案:

答案 0 :(得分:3)

session_start();放在要使用会话的每个页面的顶部。

答案 1 :(得分:1)

始终必须先致电session_start()才能对会话采取行动。

  

session_start()根据通过GET或POST请求传递的会话标识符创建会话或恢复当前会话,或通过cookie传递。

来源:http://php.net/manual/en/function.session-start.php

答案 2 :(得分:0)

使用session_start()函数启动会话。 小心:它必须是每页的顶部。

例如:

<?php
session_start();
if (!isset($_SESSION['count'])) {
  $_SESSION['count'] = 0;
} else {
  $_SESSION['count']++;
}
?> 

手动:http://php.net/manual/en/session.examples.basic.php