我的一个 php 页面中有一个链接,其中显示了登录用户的 friend ,并且每个用户的 friend 都有一个如下所示的链接,如下所示:
echo "<a href='profile.php?id=$row[friend_id]'>$friend_row[name]</a>";
正如您所看到的, friend 的 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 代码之后,它就消失了!!!
谁能告诉我为什么?
最佳答案
没有人能告诉你为什么你的变量包含与你预期不同的值,除非你发布实际初始化它的代码,但几乎每个人都可以告诉你将从 $_GET 超全局数组中取出的任何内容插入 SQL查询是一个糟糕的主意。
关于php - $_SERVER ['PHP_SELF' 的问题],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1583058/