php变量在else函数中不起作用

问题描述 投票:1回答:1

所以我正在使用带有php的sql,但是一个变量不起作用。变量$ pagina在$ sql中工作,但不在else {}($ sql2和header)中。其他变量确实有效($ naam和$ bericht)。谁能发现错误? (对不起,我的英文可能出现任何错误。)

<?php
$bericht = $_POST ['bericht'];
$pagina = $_GET ['id'];
$naam = $_SESSION['login'];
$con = mysqli_connect("host","sql","pw","sql");

if (empty($bericht)) {
}
    else
    {
$sql2="INSERT INTO Comments (bericht_id, naam, bericht) VALUES ('$pagina', '$naam', '$bericht')";
mysqli_query($con,$sql2);
header("location:directbericht.php?id=$pagina");
    }

$sql="SELECT * FROM Berichten WHERE id = $pagina";

if ($result=mysqli_query($con,$sql))
  {
  while ($obj=mysqli_fetch_object($result))
    {
    echo $obj->naam;
    echo "<br><br>";
    echo $obj->bericht;
    echo "<br><br>";
    echo $obj->datum;
    echo "<br><br>";
    }
}

$sql="SELECT * FROM Comments WHERE bericht_id = $pagina ORDER BY id ASC";

if ($result=mysqli_query($con,$sql))
  {
  while ($obj=mysqli_fetch_object($result))
    {
        echo "<tr><td><font color='white'>";
    echo $obj->naam;
    echo "<br><br>";
    echo $obj->bericht;
    echo "<br><br>";
    echo $obj->datum;
    echo "<br><br>";
        echo "</font></tr></td>";
    }
}

?>
php sql variables
1个回答
0
投票

您的代码存在一些重大问题。

第一个也是最重要的处理是如何将数据插入数据库。正如目前所写,你很容易受到SQL injection攻击。请阅读如何使用mysqli的bind parameters,或者更好的是,升级到PDO

其次,你试图在同一逻辑路径中使用$_POST[]$_GET[]来提取数据。 http连接将是post,get或其他类型的请求。它永远不会两者兼而有之。这可能就是为什么当你输入一个数字时它可以工作,但是当你尝试使用$_GET[]时却没有。

© www.soinside.com 2019 - 2024. All rights reserved.