代码问题 - 意外的$ end?现在尝试了半个小时来解决这个问题......
你能发现问题吗?
<?php
session_start();
if (!isset($_SESSION['user_id'])) {
if (isset($_COOKIE['user_id']) && isset($_COOKIE['username'])) {
$_SESSION['user_id'] = $_COOKIE['user_id'];
$_SESSION['username'] = $_COOKIE['username'];
}
}
?>
<html>
<head>
</head>
<body>
test
<?php
$dbc = mysqli_connect(localhost, hidden, hidden, hidden);
if (!isset($_GET['shipID'])) {
$query = "SELECT user_id, shipID, IP, Image FROM ships WHERE shipID = '" . $_SESSION['shipID'] . "'";
}
else {
$query = "SELECT user_id, shipID, IP, Image FROM ships WHERE shipID = '" . $_GET['shipID'] . "'";
}
$data = mysqli_query($dbc, $query);
while ($row = mysqli_fetch_array($data)) {
if ($row['IP'] == $_SERVER["REMOTE_ADDR"])
{
echo 'Cool';
}
else { echo 'Fail' ; }
?>
</body>
</html>
游戏的目的是证明IP地址与数据库中列出的IP地址相同。
任何&amp;非常感谢。
答案 0 :(得分:4)
您的while块永远不会在else
之后结束。
您可以在上一次}
之后添加结束(else
)括号,轻松解决此问题。
其次,正如@Tadeck所提到的,您的代码容易受到注入攻击。为防止出现这种情况,我建议使用PDO or mysqli,因为mysql_*
函数已弃用。
答案 1 :(得分:1)
尝试使用更高级的文本编辑器(如Aptana),它具有许多内置功能,可以更轻松地对代码进行故障排除。 http://www.aptana.com/
答案 2 :(得分:0)
你没有关闭while循环中的大括号。
如果你缩进你的代码,发现这种事情要容易得多!