-1

代码问题 - 意外 $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 地址相同。

任何和所有帮助表示赞赏。

4

3 回答 3

4

你的 while 块永远不会在else.

您可以通过}在最后一个else.

其次,正如@Tadeck 所提到的,您的代码容易受到注入攻击。为了防止这种情况,我建议使用PDO 或 mysqli,因为这些mysql_*功能已被弃用。

于 2012-10-05T23:12:35.520 回答
1

尝试使用更高级的文本编辑器,如 Aptana,它具有许多内置功能,可以更轻松地排除代码故障。http://www.aptana.com/

于 2012-10-05T23:17:56.363 回答
0

您没有关闭 while 循环上的大括号。

如果你缩进你的代码,发现这种事情会容易得多!

于 2012-10-05T23:12:37.223 回答