Php Mysql在程序中使用$\u会话时出现问题

Php Mysql在程序中使用$\u会话时出现问题,php,mysql,session,Php,Mysql,Session,我试图在一个.php脚本中使用$\u SESSION['valid\u user'],该脚本访问“users”下的表“mail”。$\u SESSION['valid\u user']已在我包含的脚本中定义。每当我在SELECT语句中使用“WHERE to=$\u SESSION['valid\u user']”时,就会得到一个空白页。但是,如果我将其取出,脚本将运行并显示数据库中的所有消息,而不仅仅是定义为显示给特定用户名的消息。尽管如此,我可以在while循环或SELECT语句之外回显$\u

我试图在一个.php脚本中使用$\u SESSION['valid\u user'],该脚本访问“users”下的表“mail”。$\u SESSION['valid\u user']已在我包含的脚本中定义。每当我在SELECT语句中使用“WHERE to=$\u SESSION['valid\u user']”时,就会得到一个空白页。但是,如果我将其取出,脚本将运行并显示数据库中的所有消息,而不仅仅是定义为显示给特定用户名的消息。尽管如此,我可以在while循环或SELECT语句之外回显$\u会话['valid\u user']。这是我的密码:


更改为
$result=mysql\u查询(“从邮件中选择*到=”。$\u会话['valid\u user']。”)

更改为
$result=mysql\u查询(“从邮件中选择*到=”。$\u会话['valid\u user'].“”)

您需要在查询中的会话变量周围放上括号

改变

$result = mysql_query("SELECT * FROM mail WHERE to=$_SESSION['valid_user']")


编辑 你需要改变

while($row = mysql_fetch_array($result))


因为您是根据列的名称而不是索引值引用列。

您需要在查询中的会话变量周围放上括号

改变

$result = mysql_query("SELECT * FROM mail WHERE to=$_SESSION['valid_user']")


编辑 你需要改变

while($row = mysql_fetch_array($result))

因为您是根据列的名称而不是索引值来引用这些列。

试试看

 $result = mysql_query("SELECT * FROM mail WHERE to='".$_SESSION['valid_user']."'");

这两个查询都不应该是有效的查询

试试看

 $result = mysql_query("SELECT * FROM mail WHERE to='".$_SESSION['valid_user']."'");


这两个查询都不应该是有效的查询

尝试在变量中捕获查询并将其打印出来,以查看得到的结果

$query = "SELECT * FROM mail WHERE to=$_SESSION['valid_user']";

如果$\u会话['valid\u user']包含任何空格,则需要以单引号或双引号的形式对其进行包装,否则MySQL将不知道您真正想要的是什么。

尝试在变量中捕获查询并打印出来,以查看结果

$query = "SELECT * FROM mail WHERE to=$_SESSION['valid_user']";

如果$\u会话['valid\u user']包含任何空格,您需要将其以某种形式的单引号或双引号括起来,否则MySQL将不知道您真正想要的是什么。

大概
user\u name
是一个变量,最初由您站点的用户提供?在这种情况下,在将其嵌入SQL查询时,您必须对其进行转义,否则您将容易受到注入攻击:

$result = mysql_query("SELECT * FROM mail WHERE to='".mysql_escape_string($_SESSION['valid_user'])."'");

大概
user\u name
是一个变量,最初由您站点的用户提供?在这种情况下,在将其嵌入SQL查询时,您必须对其进行转义,否则您将容易受到注入攻击:

$result = mysql_query("SELECT * FROM mail WHERE to='".mysql_escape_string($_SESSION['valid_user'])."'");

你能修好密码吗?不需要反勾号,只需将其粘贴并单击
{}
代码格式按钮。但有一件事很容易看到,您在
$\u会话['valid\u user']
周围没有引号。另外,您应该开始显示mySQL错误:
if(!$result)echo mySQL_error()您的SQL看起来不正确。您是否尝试过
mysql\u查询(“SELECT*FROM-mail-WHERE-to='$\u SESSION[valid\u user]'”?我试过每个人的答案-但没有运气。另外,如果我添加一个“else”语句,页面将不会显示任何内容明白了吗!我只是设置了$user=$\u SESSION['valid\u user'],你能修改代码吗?不需要反勾号,只需将其粘贴并单击
{}
代码格式按钮。但有一件事很容易看到,您在
$\u会话['valid\u user']
周围没有引号。另外,您应该开始显示mySQL错误:
if(!$result)echo mySQL_error()您的SQL看起来不正确。您是否尝试过
mysql\u查询(“SELECT*FROM-mail-WHERE-to='$\u SESSION[valid\u user]'”?我试过每个人的答案-但没有运气。另外,如果我添加一个“else”语句,页面将不会显示任何内容明白了吗!我只是将$user=$\u SESSION['valid\u user']改为设置。原始数据$usrname已经转义,最终结果被放入现在标记为“$\u SESSION['valid\u user']的变量中。我强烈建议您在创建查询时转义,而不是在更早的时间。原始数据,$usrname,已经转义,并且最终产品被放入现在标记为“$\u SESSION['valid\u user]”的变量中。我强烈建议您在创建查询时转义,而不是在较早的时间。现在站点显示(背景和菜单),但消息不显示。现在站点显示(背景和菜单),但消息不显示。