【问题标题】:Delete mySQL table from php link not working (Blank page appears)从 php 链接中删除 mySQL 表不起作用(出现空白页)
【发布时间】:2015-11-28 05:28:11
【问题描述】:

我已经在管理页面上列出了我的 mySQL 数据库中的行列表。我现在只想在每一行旁边添加一个图标,让用户可以选择删除相关行。

这是我的 php 删除链接:

<a href="delete.php?action=delete&id='$id'"><i class="icon-circle-blank"></i></a>

我的 delete.php 文件看起来像:

<?php

require_once 'db.php';
global $con;


    if(($_GET['action'] == 'delete') && isset($_GET['id'])) {

    $id = $_GET['id'];
    $sql = "DELETE FROM quotes WHERE id = '$id'";
    $query = mysqli_query($con, $sql);

}

header("location: http://localhost:81/logintest/home.php");

    mysqli_close($con);

?>

由于某种原因,当我单击链接时,该页面仅返回一个空白页面,没有删除任何数据库行。我忽略了什么?

【问题讨论】:

  • 你试过$query = mysqli_query($con, $sql) or die(mysqli_error($con));,以及开启php报错,即。 ini_set('display_errors',1); error_reporting(E_ALL); 解决问题?
  • 白屏死机:错误检查\显示已关闭,打开它们以查看错误。在您的 php 页面顶部添加:ini_set('display_errors', 'On'); ini_set('html_errors', 0); error_reporting(-1);
  • 查看您的href 的 HTML 源代码,它向您展示了什么? var_dump() 也。检查 PHP/SQL 上的错误。
  • 真的很不错的注入顺便说一句。希望你不会忍受这个。别人会为你“让它繁荣起来”
  • 谷歌“如何防止 SQL 注入”。

标签: php


【解决方案1】:

除非您向我们展示伪代码,否则这不会解析 PHP id 变量:

delete.php?action=delete&id='$id'

你需要:

delete.php?action=delete&id=<?= $id ?>

delete.php?action=delete&id=<?php echo $id; ?>

【讨论】:

  • 你说得对,我没有正确解析 PHP id。我仍然有一个空白屏幕,但我的数据库正在被删除。我现在只是添加了标题功能以重定向回管理页面
  • 附注关于带有一些链接的 SQL 注入将是一个奖励 ;-)
  • 哈哈,@Fred-ii-,我实际上是不希望每个 MySQL 答案都充斥着注入警告或 mysql_* 函数折旧警告(带有漂亮的红框)的人之一:D
  • 但严肃地说,这是非常危险的,即使是网络爬虫也可能导致问题/丢失行。
  • @Shomz 是的,我知道你的意思。我被烤过几次,看到其他人被烤,因为他们没有。嘿...这里没有我的压力;-) 你可能已经注意到了。 干杯
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多