1

我有一个网络论坛,仅允许某些选定的用户访问它,即他们必须拥有$_SEESION['username']

现在在个人资料页面上 - 看起来像这样

http://127.0.0.1/mysite/profile.php?username=john

我想显示上传按钮或编辑配置文件按钮,具体取决于他们是否上传了图像。

我正在检查是否设置了 $_GET,如果没有设置,则首先重定向到主页:

if(isset($_GET['username'])) {
$username = mysql_real_escape_string($_GET['username']);

$profile = mysql_query(SELECT *
                       FROM forum
                       WHERE username = '$username') or DIE(mysql_error());

                       $row = mysql_fetch_array($profile);

                    echo"
                    Name : $row[name];
                   Country : $row[country];

    if($_GET['username'] == $_SESSION['username'] && $row['imagepath'] == '') {
   echo "Upload Button";
}
else {
      echo"Edit Button";
}
}

上传按钮显示在屏幕上,实际上指定了图像路径。

请问我哪里错了。

4

3 回答 3

1

您应该在 mysql_query 参数周围加上双引号。我复制了你的代码,这就是我的解决方案。

顺便说一句,你回声太多了。应该是如下代码。

echo "Name: ".$row['name'];
echo "Country: ".$row['country'];

if($_GET['username'] == $_SESSION['username'] && $row['imagepath'] == '') {
    echo "Upload Button";
}
else {
    echo"Edit Button";
}
于 2012-09-06T21:51:24.463 回答
0
  • mysql_query("QUERY HERE"),否则它根本不起作用。
  • $row['name'], $row['country']: 您需要将名称放在引号之间。
  • echo 'Text'. 你没有关闭引号。
  • empty($row['imagepath']). 它有一个功能,所以使用它。

如果上述更正仍然不起作用,请尝试回显您需要的所有变量:$_GET['username'], $_POST['username'], $row['imagepath']. 也许 PHP 无法读取它们。

于 2012-09-06T21:53:33.543 回答
-1

从这里修复了所有语法错误,您可以开始调试:

if ( isset( $_GET['username'] ) ) {
  $username = mysql_real_escape_string( $_GET['username'] );

  $profile = mysql_query( "SELECT *
    FROM forum
    WHERE username = '$username'" ) or DIE( mysql_error() );

  $row = mysql_fetch_array( $profile );

  echo "Name : " . $row['name'];
  echo "Country : ". $row['country'];

  if ( $_GET['username'] == $_SESSION['username'] && $row['imagepath'] == '' ) {
    echo "Upload Button";
  } 
  else {
    echo"Edit Button";
  }
}
于 2012-09-06T21:54:27.143 回答