【问题标题】:Undefined Variable Warning in PHPPHP中的未定义变量警告
【发布时间】:2022-01-15 09:11:51
【问题描述】:

所以我一直在做这个学校项目并且需要完成它以便我可以编辑表格中的任何内容。每当我点击“编辑”时,它都会正确地重定向我,但它的形式是它说有一个未定义的变量,尽管该变量几乎无处不在。 这是表格的一些代码:

<table style='margin-left:auto ; margin-right:auto;'>
    <tr>
        <th>#</th>
        <th>Name</th>
        <th>Zeit</th>
        <th>Datum</th>
        <th>Titel</th>
        <th>Inhalt</th>
        <th>Ort</th>
        </tr>

<?php
if($stmt=$db->prepare("SELECT * FROM terminkalender")) {
    $stmt->execute();
    $stmt->store_result();
    $zeilen = $stmt->num_rows();
    $stmt->close();
}else {
    $zeilen = 0;
}
if($zeilen > 0) {
    //nur wenn Einträge, dann ausgeben
    if($stmt = $db->prepare("SELECT * FROM terminkalender ORDER BY zeit,datum DESC")) {
        $stmt->execute();
        $stmt->bind_result($id,$name,$zeit,$datum,$ort,$titel,$inhalt);
        $stmt->store_result();
        //Ausgabe starten
        while($stmt->fetch()){
            echo "<tr>";
?>
                <td><?php echo $id ;?></td>
                <td><?php echo htmlspecialchars($name) ;?></td>
                <td><?php echo htmlspecialchars($datum) ;?></td>
                <td><?php echo htmlspecialchars($zeit) ;?></td>
                <td><?php echo htmlspecialchars($ort) ;?></td>
                <td><?php echo htmlspecialchars($titel) ;?></td>
                <td><?php echo htmlspecialchars($inhalt); ?></td>
                <td><a href='edit.php?id=<?php echo $id;?>'>Edit</a></td>
                <td><a href='delete.php?id=<?php echo $id;?>'>Delete</a></td>
<?php 
            echo "</tr>" ;
        
        }
    }
}
?>

</table>

这里是edit.php文件:

<?php

include("./config/connect.inc.php");

$id = $_GET['id']; // get id through get string

$result=mysqli_query($db,"SELECT * FROM terminkalender WHERE id=$id");

if(isset($_POST['update'])) {

    $name=$_POST['name'];
    $datum=$_POST['datum'];
    $zeit=$_POST['zeit'];
    $ort=$_POST['ort'];
    $titel=$_POST['titel'];
    $inhalt=$_POST['inhalt'];
    $result = "UPDATE terminkalender 
                    SET name='$name',
                        datum='$datum',
                        zeit='$zeit',
                        ort='$ort',
                        titel='$titel',
                        inhalt='$inhalt' 
                        WHERE id=$id";
    header("location: ausgabe.php");
}
?>
<form name="form" method="POST" action="edit.php">
  <input type="text" name="name" value="<?php echo $name; ?>" Required>
  <input type="date" name="datum" value="<?php echo $datum; ?>" Required>
  <input type="time" name="zeit" value="<?php echo $zeit; ?>" Required>
  <input type="text" name="ort" value="<?php echo $ort; ?>" Required>
  <input type="text" name="titel" value="<?php echo $titel; ?>" Required>
  <input type="text" name="inhalt" value="<?php echo $inhalt; ?>" Required>
  <input type="hidden" name="id" value="<?php echo $_GET['id']; ?>">
  <input type="submit" name="update" value="Update">
</form>

如果有人能提供帮助,那真是太棒了。谢谢提前!

【问题讨论】:

  • 能否显示错误信息的实际文本。
  • 您能分享一下您收到的确切警告吗?
  • 你永远不会执行 UPDATE 查询。

  • 警告/opt/lampp/htdocs/8AI/termindatenbank/edit.php 中未定义变量 $ort 在线 46
    这会显示在除日期和时间之外的所有输入框中
  • 您的脚本对SQL Injection Attack 开放。即使是if you are escaping inputs, its not safe!,您也应该始终在MYSQLI_PDO API 中使用prepared parameterized statements,而不是将用户提供的值连接到查询中。永远不要相信任何用户输入!

标签: php forms warnings


【解决方案1】:

也许您可以尝试使用 php 的 isset 函数来检查该变量是否包含值以获取更多详细信息检查:-https://www.stechies.com/notice-undefined-variable-in-php/

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2012-07-29
  • 2019-01-14
  • 1970-01-01
  • 1970-01-01
  • 2023-01-11
  • 2023-04-11
  • 1970-01-01
  • 2018-03-16
  • 1970-01-01
相关资源
最近更新 更多