0

我正在创建一个配置文件页面,该页面将在用户使用 GET 方法登录后从 url 获取 id。但是我仍然收到错误消息,尽管会话不是空的,但他们没有在保护页面上进行会话,有人可以帮助我吗?

这是代码的一部分

配置文件.php

<?php
ob_start();
require_once('for members/scripts/connect.php'); 
require_once('send_post.php'); 
   session_start();
   $sessionlogin = ($_SESSION['login']);
   $userid = ($_SESSION['user_id']);
   $username = ($_SESSION['username']);
   $fname = ($_SESSION['first_name']);
   $lname = ($_SESSION['last_name']);
   $sessionaddres =($_SESSION['address']);
    //echo "your do not have a session";
    var_dump($sessionlogin);
   var_dump($userid);
   var_dump($username);
// updatede for using the GET methode for ge the data nedded from the url 
if(isset($_GET['user_id']))
{
     $userid = $_GET['user_id'];
}
else
{
    echo "this is an error";
}

?>
4

3 回答 3

0

session_start()必须在输出任何标头之前包含您的内容,如果两个包含的文件中有任何输出,则会导致会话出现问题。另外,我很好奇您的输出缓冲是否影响会话。尝试置于session_start()您的ob_start()电话之上。

于 2013-03-17T15:57:30.853 回答
0

尝试移动session_start到 php 脚本的顶部,像这样

<?php
session_start(); //SET SESSION START HERE
ob_start();

require_once('for members/scripts/connect.php'); 
require_once('send_post.php'); 

$sessionlogin = ($_SESSION['login']);
...
...
...

?>
于 2013-03-17T15:57:53.383 回答
0

你应该使用session_start(); 在页面的开头

如果您使用的是 user_id,一个提示是数值

if((isset($_GET['user_id']))&&(is_numeric($_GET["user_id"]))) 
 {
   $userid = $_GET['user_id'];
 }
于 2013-03-17T16:02:06.640 回答