首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >view_forum.php。无法修复get id

view_forum.php。无法修复get id
EN

Stack Overflow用户
提问于 2013-11-30 19:08:18
回答 2查看 152关注 0票数 2

$id=$_GET['id'];行上有一个错误,通知:未定义的索引: D:\XAMPP\htdocs\view_topic.php中的id在第101行上。我试图将“$_GET”更改为“$_POST”,但错误仍然相同。有什么帮助吗?

我试图从数据库中检索id,并列出用户发布的所有论坛主题。其他的php文件可以顺利运行。我在找回帖子的身份证时遇到了问题。

代码语言:javascript
复制
<?php
$host="localhost";
$username="root";
$password="";
$db_name="db";
$tbl_name="forum_question";

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// get value of id that sent from address bar 
$id=$_GET['id'];
$sql="SELECT * FROM $tbl_name WHERE id='$id'";
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);
?>
EN

回答 2

Stack Overflow用户

发布于 2013-11-30 19:13:03

在将数据分配给外部世界的变量时,始终使用isset构造

代码语言:javascript
复制
if(isset($_GET['id']))
{
$id=$_GET['id'];
$sql="SELECT * FROM $tbl_name WHERE id='$id'";
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);
}
else
{
echo "ID was not set. Let me go and check the form again !";
}
?>
票数 0
EN

Stack Overflow用户

发布于 2013-11-30 19:15:07

这个变量必须在您的URL中设置。你必须检查它是否存在:

代码语言:javascript
复制
<?php
$host = "localhost";
$username = "root";
$password = "";
$db_name = "db";
$tbl_name = "forum_question";

// Connect to server and select databse.
$db = new mysqli($host, $username, $password, $db_name);

// get value of id that sent from address bar 
$id = isset($_GET['id']) ? (int) $_GET['id'] : 0;

if($id <> 0) {
    // TODO
    // 404 Not Found
} else {
    $sql = "SELECT * FROM $tbl_name WHERE id='$id'";
    $row = $db->query($sql)->fetch_assoc();
    // TODO
    // Do Something with Data
}

你的网址必须是http://example.com/path/to/script.php?id=42

  • 我添加了(int),因此不可能进行sql注入。
  • 我用MySQLi代替了MySQLi,参见对您的问题的评论。
  • 我从查询中的变量中删除了引号,您不需要它们。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20304435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档