$ _SERVER ['PHP_SELF']的问题

时间:2009-10-17 19:52:22

标签: php mysql session

我的一个php页面中有一个链接,其中显示了登录用户的朋友,并且在此页面中为每个用户的朋友提供了如下链接:

echo "<a href='profile.php?id=$row[friend_id]'>$friend_row[name]</a>";

并且您可以看到朋友的ID被传递到个人资料页面,在个人资料页面中,用户可以看到他们的个人资料并为他们留下评论。这是表格:

<form name="comment" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <input type="text" name="comment" class="comment" />
    <input type="submit" name="submit" value="submit" class="comment" />
</form>

这个PHP代码如下:

$insert="INSERT INTO comment (login_id,friend_id,msg)
                    VALUES ('$_SESSION[friend_id]','$_SESSION[id]','$_POST[comment]')";
$result = mysql_query($insert) or die(mysql_error());

现在我的问题是$_SESSION[friend_id]这个命令$_GET[id]等于$_SESSION[friend_id]=$_GET[id]并被传递到前面的页面没有任何值,在我的SQL表上看起来是0提交表格后。我试图在这个PHP脚本执行之前回应它并且它具有正确的值但是在执行此PHP代码之后它已经消失了!!!

任何人都可以告诉我为什么?

2 个答案:

答案 0 :(得分:2)

没有人能告诉你为什么你的变量包含的值与你预期的不同,除非你发布实际初始化它的代码,但几乎每个人都可以告诉你把你从$ _GET超全局数组中提取的任何东西推到SQL中查询是一个可怕的想法。

答案 1 :(得分:0)

除了SQL注入之外,似乎你的会话没有启动......

如果您要在任何PHP文件中使用$ _SESSION变量,请始终确保您拥有session_start();在该文件的开头..

希望有帮助...