【发布时间】:2013-05-12 16:54:41
【问题描述】:
我的表格是这样的:
<form action="del.php" method="post" enctype="multipart/form-data">
Number of field to show:<input type="text" name="limit" /><br /><br />
Top category:
<select name="topcat">
<option>tech</option>
<option>automobile</option>
</select><br /><br />
Base category:
<select name="cat">
<option>mobile</option>
<option>computer</option>
</select>
<input type="submit" />
</form>
我正在尝试编写代码以从页面中选择的数据库中删除特定 id: del.php:
<head>
<?php
require_once('globals.php');// for database connection
?>
</head>
<body>
<?php
$cat = $_POST['cat'];
$topcat = $_POST['topcat'];
$limit = $_POST['limit'];
if(isset($_GET['delete']))
{
$query = 'DELETE FROM '.$cat.' WHERE id = '.(int)$_GET['delete'];
echo $query;
$result = mysql_query($query);
}
$query = 'select id,headline from '. $cat.' order by date DESC limit 0,'.$limit;
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result))
{
$headline=$row['headline'];
echo '<div class="record" id="record-'.$row['id'].'">
<a href="?delete='.$row['id'].'" class="delete">Delete</a>
<strong>'.$headline.'</strong>
</div>';
}
?>
</body>
问题:当 isset($_GET['delete'] 被执行时,它说 undefined variable cat 。
但$cat 被定义为从以前的形式解析。
有什么解决办法吗?
【问题讨论】:
-
没有要提交的文件时不需要
enctype="multipart/form-data"。 -
$cat 不能为空,请发布您的 php 错误。
-
@Pietu1998:好的删除并检查...问题仍然存在。
-
@Brad - 如果我们每次谈论 sql 注入漏洞时都能得到一分钱......我们现在将成为百万富翁......
-
@user2320375,不不不不!首先学习以正确的方式编写查询。你不明白这是一个多么糟糕的问题。有自动机器人在互联网上漫游,寻找像你这样的坏代码。不仅如此,一旦您需要在字符串值中使用撇号之类的东西,您的代码将无法正常运行。修理它。先学对路。如果你是初学者也没关系。你学错了。