Php 避免有多个删除文件

Php 避免有多个删除文件,php,mysql,delete-row,Php,Mysql,Delete Row,我有一个网页,后面有一个很大的CMS,你可以在那里添加新闻、图片和其他东西。当然,你也可以删除它们 只需单击delete,它将引导您进入delete脚本,该脚本将删除表中的行。问题是,我有4-5个看起来完全相同的deletescripts,只是它们从不同的表中删除。我希望表是一个变量,它跟踪用户来自哪个子页面,所以我只需要一个删除脚本,而不是多个 单击此按钮可删除某些内容: <a href='deletenews.php?id=<?php echo $id ?>'>DEL

我有一个网页,后面有一个很大的CMS,你可以在那里添加新闻、图片和其他东西。当然,你也可以删除它们

只需单击delete,它将引导您进入delete脚本,该脚本将删除表中的行。问题是,我有4-5个看起来完全相同的deletescripts,只是它们从不同的表中删除。我希望表是一个变量,它跟踪用户来自哪个子页面,所以我只需要一个删除脚本,而不是多个

单击此按钮可删除某些内容:

<a href='deletenews.php?id=<?php echo $id ?>'>DELETE</a>
请注意,它会转到deltenews.php,如果它只是delete.php就好了

删除脚本如下所示:

session_start();

if ($_SESSION['username']) {

    } else {
        include 'index.php';
        die ("<script> alert(You have to be logged in.');</script>");
    }

mysql_connect('localhost', 'username', 'password') or die (mysql_error());
mysql_select_db('database') or die (mysql_error());

mysql_query("DELETE FROM news WHERE id = '$_GET[id]'") or die(mysql_error());

header('Location: forside.php');
我希望有一个变量,而不是新闻。比如$delete。但这个变量需要知道应该从哪个表中删除内容。有什么办法可以做到这一点吗?我愿意为此更改所有代码,因为我认为这是更好的做法。

也许可以使用此检查:

$id = (int)$_GET['id'];
if ($id)
    if ($table == 'news') {
        // do something
        mysql_query("DELETE FROM $table WHERE id = $id") or die(mysql_error());
        // or this:
        //mysql_query("DELETE FROM news WHERE id = $id") or die(mysql_error());
    } elseif ($table == 'posts') {
        // do something
        mysql_query("DELETE FROM $table WHERE id = $id") or die(mysql_error());
        // or this:
        //mysql_query("DELETE FROM posts WHERE id = $id") or die(mysql_error());
    } else {
        die("You can not delete records from $table table");
    }
}

Soooo…如果您编写了适用于id的代码,为什么不能为表名复制相同的机制?您知道可以发送多个GET变量,对吗?你知道PHP中的mysql查询是字符串,对吧?我要删除你的数据库。。。查看关于injectionStrawberry:嗯,它可能不安全,但您必须登录才能输入任何内容,所以这不是一个真正的问题。登录脚本非常安全。我正在学习PHP/SQL。塞吉乌:你会怎么做?再说一次,使用$\u GET['table']和mysql\u queryDELETE FROM有什么困难$_获取['table']。其中id='$\u GET[id]'?这不是问题所在。我希望表名news是一个变量。比如从$table中删除id=$id。但是我需要知道如何识别它是什么表。因为在这个页面上你可以删除的新闻不止这些。