0

我是 php 新手,遇到以下问题。我想检查会话用户名,看看它是否与 url 参数匹配,然后打印一些东西:

<?php

  // Check User
    if (isset($_SESSION['user_name'] == $_GET['name'])) {

        //print html

    }
?>

即使会话名称与 url 名称匹配,我在测试时也只是得到一个空白页。

4

4 回答 4

1

您忘记开始会话并且使用isset()不正确

<?php
  session_start();
  // Check User
    if ($_SESSION['user_name'] == $_GET['name']) {

        //print html

    }
?>

更好更完整的解决方案:

<?php
  session_start();
  // Check User
    if (isset($_SESSION['user_name']) 
        && isset($_GET['name']) 
        && $_SESSION['user_name'] == $_GET['name']) {

        //print html

    }
?>
于 2013-02-03T00:19:57.423 回答
0

您似乎将 isset 函数的布尔结果与来自 url 的字符串名称进行比较。

  // Check User
    if (isset($_SESSION['user_name'])&&isset($_GET['name'])) 
      if (($_SESSION['user_name'])==($_GET['name']))
{
        //print html
}

?>
于 2013-02-03T00:20:43.273 回答
0

在像这样检查会话之前开始会话

<?php
   session_start();
  // Check User
    if (isset($_SESSION['user_name']) == $_GET['name']) {

        //print html

    }
?>
于 2013-02-03T00:21:21.710 回答
0

函数中的逻辑错误isset(),这样做:

if (isset($_SESSION['user_name']) && isset($_GET['name']) && $_SESSION['user_name'] == $_GET['name']) {

    //print html

}

upd:当然,start_session()在任何带有会话变量的操作之前

于 2013-02-03T00:22:35.347 回答