dongluan0020 2012-07-07 23:34
浏览 38

尝试从URL中提取id字段时返回错误

Warning I am not a php programmer.

I have inherited a php diary script while trying to help a client restore an old site. The script does not function as expected. It seems that the problem lies with the way that $id is not being extracted from a link such as http://example.com/diary.php?id=51

Here is the script that should handle this:

<?php
// instert automatic date structure for 2004 or 2005
include 'admin24/config.inc.php';
if (isset($_GET['id'])){ 
$query = "SELECT * FROM `diary` WHERE id=$id";
$result = mysql_query($query)
    or die ("problem resolving information....contact php_admin");     
$row = mysql_fetch_array($result);
extract($row);
$date = date("j F Y", (strtotime($date)));
?>

If I substitute an integer for $id like so:

$query = "SELECT * FROM `diary` WHERE id=51";

there is no problem and the query is retrieved from the db just fine.

Can anyone tell me why this is not working? As it is, it always returns:

"problem resolving information....contact php_admin"

Thanks in advance.

  • 写回答

2条回答 默认 最新

  • duanhuan8983 2012-07-07 23:46
    关注

    I guess register_globals has been turned off (recommended), so $id needs to get initialized. try this:

    <?php
    // instert automatic date structure for 2004 or 2005
    include 'admin24/config.inc.php';
    if (isset($_GET['id'])){
      $id = (int) $_GET['id']; // the cast to 'int' is necessary to prevent sql injections!
      $query = "SELECT * FROM `diary` WHERE id=$id";
      $result = mysql_query($query)
        or die ("problem resolving information....contact php_admin");     
      $row = mysql_fetch_array($result);
      extract($row);
      $date = date("j F Y", (strtotime($date)));
    ...
    
    评论

报告相同问题?

悬赏问题

  • ¥30 seata使用出现报错,其他服务找不到seata
  • ¥15 怎么实现输入一个要删除的数后删除后显示剩余数再输入再删除显示剩余数(语言-c语言)
  • ¥35 引用csv数据文件(4列1800行),通过高斯-赛德尔法拟合曲线,在选取(每五十点取1点)数据,求该数据点的曲率中心。
  • ¥20 程序只发送0X01,串口助手显示不正确,配置看了没有问题115200-8-1-no,如何解决?
  • ¥15 Google speech command 数据集获取
  • ¥15 vue3+element-plus页面崩溃
  • ¥15 像这种代码要怎么跑起来?
  • ¥15 安卓C读取/dev/fastpipe屏幕像素数据
  • ¥15 pyqt5tools安装失败
  • ¥15 mmdetection