为了账号安全,请及时绑定邮箱和手机立即绑定

注意:尝试访问行中 null 类型值的数组偏移量(静态)

注意:尝试访问行中 null 类型值的数组偏移量(静态)

PHP
慕侠2389804 2024-01-19 15:30:28
我收到这个错误:注意:尝试访问 null 类型值的数组偏移量当我想更新的时候。我把代码放在下面,请帮助我如何解决这个问题以及故障和问题在哪里?(正常情况下没有错误,但是当我使用ctrl+U并查看源代码时,所有字段都显示该错误。)我在网站上搜索了很多,但没有找到正确的答案或结果。在editform.php中<?phpinclude_once "InsertDataDatabases.php";$id = (isset($_POST['id']) ? $_POST['id'] : '');$query = InsertDataDatabases::SelectDateId($id);$item = [];$item = mysqli_fetch_assoc($query);?><form action="updatedata.php" method="post" enctype="multipart/form-data">    <?php CSRF::CreateToken(); ?>    <input type="text" name="id" value="<?php echo $item['id']; ?>"><br>    <label for="name">Name:</label>    <input type="text" name="name" value="<?php echo $item['name']; ?>"><br><br>    <label for="email">Email:</label>    <input type="email" name="email" value="<?php echo $item['email']; ?>"><br><br>    <input type="file" name="image" value="images/slider/<?php echo $item['image']; ?>"><br>    <img src="images/slider/<?php echo $item['image']; ?> " width="50px" height="50px" alt=''><br>    <input type="submit" name="updatebtn" value="UPDATE"></form>在 updatedata.php 中<?phpinclude_once "InsertDataDatabases.php";include_once "DataBase.php";include_once "CSRF.php";$con = DataBase::ConnectOpen();if ($_SERVER['REQUEST_METHOD'] == 'POST') {    if (isset($_POST['updatebtn'])) {        if (CSRF::ValidateToken($_POST["token"])) {            $id = htmlentities(mysqli_real_escape_string($con, $_POST['id']));            $name = htmlentities(mysqli_real_escape_string($con, $_POST['name']));            $email = htmlspecialchars(mysqli_real_escape_string($con, filter_var(trim($_POST['email']), FILTER_SANITIZE_EMAIL)));            $image = $_FILES['image'];            InsertDataDatabases::UpdateData($id, $name, $email, $image);            mysqli_close($con);            header("Location: index.php");        }    }}并在 InsertDataDatabases.php 中public static function SelectDateId($id)    {        self::ConnectDataBase();        return mysqli_query(self::$con, "SELECT * FROM user WHERE id = '{$id}'");            }
查看完整描述

1 回答

?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

当您查看源代码时,您没有发布表单,因此$_POST未设置该变量。$_POST在尝试使用该变量之前,您应该检查该变量是否已设置。


<?php

include_once "InsertDataDatabases.php";

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

    $id = $_POST['id'];

    $query = InsertDataDatabases::SelectDateId($id);

    $item = [];

    $item = mysqli_fetch_assoc($query);

    ?>

    <form action="updatedata.php" method="post" enctype="multipart/form-data">

        <?php CSRF::CreateToken(); ?>

        <input type="text" name="id" value="<?php echo $item['id']; ?>"><br>

        <label for="name">Name:</label>

        <input type="text" name="name" value="<?php echo $item['name']; ?>"><br><br>

        <label for="email">Email:</label>

        <input type="email" name="email" value="<?php echo $item['email']; ?>"><br><br>

        <input type="file" name="image" value="images/slider/<?php echo $item['image']; ?>"><br>

        <img src="images/slider/<?php echo $item['image']; ?> " width="50px" height="50px" alt=''><br>

        <input type="submit" name="updatebtn" value="UPDATE">

    

    </form>

<?php }


查看完整回答
反对 回复 2024-01-19
  • 1 回答
  • 0 关注
  • 88 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信