php - 无法使用 urldecode 从数据库获取信息

标签 php mysql urldecode

我使用urldecode从以前的网站接收成员(member)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);
?>

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

最佳答案

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

members.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>';

}

profiles.php

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

此处您将使用 isset() 函数返回值设置 $id。 您应该改为从 GET 参数设置值,如下所示:

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

现在看看它是否有效。

关于php - 无法使用 urldecode 从数据库获取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14743175/

相关文章:

MySQL Join - 表 A 的所有行应与表 B 的每一行连接

java - 对于针对未编码的 URL 执行 URLDecoder 是否有任何顾虑?

asp.net - URL 解码在 Azure Web 应用程序上不起作用

java - 使用填充 0 进行整数到 UUID 的转换

java - 无法使用crontab在mysql数据库中插入utf-8字符来自动化程序

php - 转义 urldecode 转义混淆

php - 如何从表列中选择最大数字,分配给变量并加 1

php - MySql 中的快速随机行

php - 如何加入表中的最新记录?

php - 用户角色数据库架构设计