首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >$_GET未定义的索引(来自mysql表的值)

$_GET未定义的索引(来自mysql表的值)
EN

Stack Overflow用户
提问于 2012-10-19 15:48:56
回答 5查看 1.4K关注 0票数 0

嗯,我是一个考虑PHP/HMTL编程的初学者,我已经被这些问题困扰了好几天了。

首先,我创建了包含以下列的Mysql表(id、Name、Surname、Telephone_number、Email)。然后我已经成功地创建了用于读取表的表单。现在,我想使用以下代码读取并编辑特定的行:

代码语言:javascript
运行
复制
41 <?php
42 $con = mysql_connect("localhost","username","password");
43 mysql_select_db("database", $con);
44 $id=$_GET["id"];
45 $result = mysql_query("SELECT * FROM Table  where id='$id'");
46 $row = mysql_fetch_array($result);
47 ?>

但我得到的是以下错误:注意:未定义的索引: 44行的C:\xampp\htdocs\contacts_edit.php中的id

任何帮助都将不胜感激!

EN

回答 5

Stack Overflow用户

发布于 2012-10-19 15:55:04

您尚未在URL中设置GET参数。这就是为什么没有在您的全局中定义id的原因。

要防止出现此问题,请在执行以下操作之前检查变量:

代码语言:javascript
运行
复制
$id = isset($_GET['id']) ? (int)$_GET['id']: 0;

代码语言:javascript
运行
复制
if (!isset($_GET['id']) {
    $_GET['id'] = 0;
}

给你一个简短的提示...

你真的应该看看SQL注入,你已经建立了一个非常大的安全漏洞。

不要在SQL查询中直接使用$_GET$_POST。您应该更喜欢使用PDO或MySQLi的预准备语句。如果您想使用您的解决方案,那么将您的id转换为一个整数值,如下所示:

代码语言:javascript
运行
复制
$id = (int)$_GET['id'];

然后,在未设置的情况下,您会得到默认值0。

票数 6
EN

Stack Overflow用户

发布于 2012-10-19 15:55:41

您必须首先检查id是否已设置

代码语言:javascript
运行
复制
<?php

$con = mysql_connect("localhost","username","password");
mysql_select_db("database", $con);

if(isset($_GET['id'])) {

   $id=$_GET["id"];
   $result = mysql_query("SELECT * FROM Table  where id='$id'");
   $row=mysql_fetch_array($result);
}
?>

更好的方法是使用pdo或mysqli。

How can I prevent SQL injection in PHP?

票数 2
EN

Stack Overflow用户

发布于 2012-10-19 16:05:28

我做了这件事,为我自己工作

代码语言:javascript
运行
复制
 <?php
 $con = mysql_connect("localhost","***","***");
 mysql_select_db("***", $con);
 if(isset($_GET["id"]) && !empty($_GET["id"])){
    $id= $_GET['id'];
    $result = mysql_query("SELECT * FROM core_usuarios  where id=".$id);
    $row = mysql_fetch_array($result);
    print_r($row);
}
 ?>

顺便说一句,如果你想连接到一个数据库,并且你正在使用“普通的php”,最好使用PDO PHP http://www.php.net/manual/en/pdo.construct.php

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12969690

复制
相关文章

相似问题

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