gpt4 book ai didi

php - 插入SQL注入(inject)准备语句后网站没有数据输出

转载 作者:行者123 更新时间:2023-11-29 16:41:28 25 4
gpt4 key购买 nike

这是之前的代码,它有效

<?php
include ("connect.php"); // $conn

$sql = "SELECT name, date, adress, number FROM event ORDER BY date ASC LIMIT 4";

foreach ($conn->query($sql) as $row){

$date = date('j.n.Y');
$actDate = strtotime($date);
//echo $date; Ausgabe aktuelles Datum im deutschen Format
//echo $actDate; Ausgabe des Datums als Zahl

$dbDate = $row['date'];
$eventDate = strtotime($dbDate);
//echo $dbDate; Ausgabe des Datums der Veranstaltung
//echo $eventDate; Veranstaltungsdatum als Zahl

if ($actDate <= $eventDate) {
// hide entries with lower date

$originalDate = $row['date'];
$formatDate = date('d.m.Y', strtotime($originalDate));
// hide entries with lower date

echo "

<tr>
<td>".$row['name']."</td>
<td>$formatDate</td>
<td class='w3-hide-small'>".$row['adress']." ".$row['number']."</td>
</tr>



";
}
}
?>

现在我添加了针对SQL注入(inject)的准备语句,现在新代码没有错误输出,也没有从DB输出数据,我不知道在哪里可以找到错误。您可以忽略日期格式,我不会更改任何内容,它只是准备编辑,我认为这是行不通的。

<?php
include ("connect.php"); // $conn

$sql = $conn->prepare("SELECT name, date, clock, adress, number, link, info FROM event WHERE (name, date, clock, adress, number, link, info) = (?, ?, ?, ?, ?, ?, ?) ORDER BY date ASC");
$sql->bind_param("sississ", $name, $date, $clock, $adress, $number, $link, $info);

$sql->execute();

$result = $sql->get_result();
while ($row = $result->fetch_assoc()) {

foreach ($conn->query($sql) as $row){

$date = date('d.m.Y');
$actDate = strtotime($date);
//echo $date; Ausgabe aktuelles Datum im deutschen Format
//echo $actDate; Ausgabe des Datums als Zahl

$dbDate = $row['date'];
$eventDate = strtotime($dbDate);
//echo $dbDate; Ausgabe des Datums der Veranstaltung
//echo $eventDate; Veranstaltungsdatum als Zahl

if ($actDate <= $eventDate) { // Einträge mit abgelaufenem Datum verbergen

$originalDate = $row['date'];
$formatDate = date('d.m.Y', strtotime($originalDate));

echo "

<div class='accordionEvent nav_bottom w3-container w3-center'><h4>".$row['name']." am $formatDate ab ".$row['clock']."</h4></div>
<div class='panel head'>
<p>Adresse: ".$row['adress']." ".$row['number']."</p>


<p>Link: <a href=".$row['link']." target='_blank'>".$row['link']."</a></p>


<p>".$row['info']."</p>
</div>
<br>

";
}
}
}
$sql->close();
$conn->close();
?>

最佳答案

您仍然有一行原始代码,它打破了循环:

 $result = $sql->get_result();
while ($row = $result->fetch_assoc()) {
foreach ($conn->query($sql) as $row){ // <---
// ...

关于php - 插入SQL注入(inject)准备语句后网站没有数据输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53317747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com