0

我曾经urldecode从以前的站点接收过会员 ID。URL 中显示了正确的 ID,但我无法从数据库中获取信息。

成员.php:

   <?php


$query = "SELECT name, memberID FROM members";

if(!$result = $db->query($query)){
    die('There was an error running your query[' . $db->error . ']');
}

while($row = $result->fetch_assoc()){
  printf ('<li><a href="profiles.php?memberID=' . urlencode($row['memberID']) . '">' . $row['name'] . '</a></li>');

}
?>

配置文件.php:

  <?php

$id = isset($_GET['memberID']);

$query = "SELECT * FROM members WHERE memberID = '".$id."'";

if ($result = $db->query($query)) {

while ($row = $result->fetch_assoc()){
    printf("%s (%s)\n", $row["memberID"], $row['name']);
}
}
 var_dump($query);
?>

我得到的只是一个空白屏幕。

4

4 回答 4

1

确保使用正确的memberIdvs.大小写memberID。这个非常重要。

不要通过 GET/POST 传递GET/POST 检索到的值urldecode他们已经是

于 2013-02-07T03:51:20.273 回答
1

我在代码中发现了几个问题:

成员.php

while($row = $result->fetch_assoc()){
  printf ('<li><a href="profiles.php?memberID=' . urlencode($row['memberID']) . '">' . $row['name'] . '</a></li>');

}

在这里,您使用的printf函数具有字符串格式的第一个参数。echo使用如下语句更正:

while($row = $result->fetch_assoc()){
  echo '<li><a href="profiles.php?memberID=' . urlencode($row['memberID']) . '">' . $row['name'] . '</a></li>';

}

配置文件.php

$id = isset($_GET['memberID']);

在这里,您正在设置$idwith isset() 函数的返回值。您应该设置 GET 参数的值,如下所示:

if(isset($_GET['memberID']))    $id = $_GET['memberID'];

现在看看它是否有效。

于 2013-02-07T04:59:00.843 回答
0

请根据您的代码尝试以下操作并让我们知道结果:

<?php
$id = isset($_GET['memberID']) ? $_GET['memberID'] : 0;
if($id > 0){
    $query = "SELECT * FROM members WHERE memberID = '".$id."'";
    $result = $db->query($query);
    if($result){
        echo "Rows found: " + $result->num_rows;
    } else {
        echo "No rows found";
    }
} else {
    echo "memberID is 0";
}
?>
于 2013-02-07T05:13:10.233 回答
-1

memberID 是数据库中的 int 字段还是字符串字段?如果它是一个 int 字段,则删除您对profiles.php 的查询中的单引号。

于 2013-02-07T03:51:08.603 回答