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

时间:2017-12-24 15:16:10

标签: php sql variables

所以我在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>";
    }
}

?>

1 个答案:

答案 0 :(得分:0)

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

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

其次,您尝试在同一逻辑路径中使用$_POST[]$_GET[]来提取数据。 http连接将是 post get 或其他类型的请求。它将从不两者兼而有之。当你输入一个数字时,这可能是有效的,但是当你尝试使用$_GET[]时却不行。