我是 php 新手,遇到以下问题。我想检查会话用户名,看看它是否与 url 参数匹配,然后打印一些东西:
<?php
// Check User
if (isset($_SESSION['user_name'] == $_GET['name'])) {
//print html
}
?>
即使会话名称与 url 名称匹配,我在测试时也只是得到一个空白页。
您忘记开始会话并且使用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
}
?>
您似乎将 isset 函数的布尔结果与来自 url 的字符串名称进行比较。
// Check User
if (isset($_SESSION['user_name'])&&isset($_GET['name']))
if (($_SESSION['user_name'])==($_GET['name']))
{
//print html
}
?>
在像这样检查会话之前开始会话
<?php
session_start();
// Check User
if (isset($_SESSION['user_name']) == $_GET['name']) {
//print html
}
?>
函数中的逻辑错误isset()
,这样做:
if (isset($_SESSION['user_name']) && isset($_GET['name']) && $_SESSION['user_name'] == $_GET['name']) {
//print html
}
upd:当然,start_session()
在任何带有会话变量的操作之前