PDA

View Full Version : دریافت خطا در بخش آپدیت فرم(php)



ikooshk
پنج شنبه 20 شهریور 1399, 23:46 عصر
سلام
وقت بخیر
وقتی وارد بخش آپدیت فرم خودم میشم و کنترل یو میگیرم و سورس کدرارو نگاه میکنم با این نوع خطا روبرو میشم:

Trying to access array offset on value of type null in
البته آپدیت انجام میشه ولی ممنون میشم کمک کنید مشکلشو برطرف کنم..
تصاویر پایینو ببنید ممنون میشم کد هایی که باید اصلاح بشنو بهم بگید

plague
جمعه 21 شهریور 1399, 21:05 عصر
وقتی از دیتابیس میخونی چیزی رو اول چک کن که موفق بوده یا نه اگه موفق نبود یا چیزی رو برنگردوند طبیعتا دیگه نمیتونی نمایشی بدی ولی شما چشم بسته داری فرض میکنی درسته و از دیتبایس در اومده بعد داری نمایش میدی

$item['email']

بجای عکس هم کد بزار که من بتونم کپی کنم بهت بگم منظورم اینجاست

همون عکس اول $item رو میگم

ikooshk
شنبه 22 شهریور 1399, 17:40 عصر
وقتی از دیتابیس میخونی چیزی رو اول چک کن که موفق بوده یا نه اگه موفق نبود یا چیزی رو برنگردوند طبیعتا دیگه نمیتونی نمایشی بدی ولی شما چشم بسته داری فرض میکنی درسته و از دیتبایس در اومده بعد داری نمایش میدی

$item['email']

بجای عکس هم کد بزار که من بتونم کپی کنم بهت بگم منظورم اینجاست

همون عکس اول $item رو میگم


سلام ممنون
خدمت شما


in editform.php

<?php
include_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>

in updatedata.php

<?php
include_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");
}
}
}
in InsertDataDatabases.php


public static function SelectDateId($id)
{
self::ConnectDataBase();
return mysqli_query(self::$con, "SELECT * FROM user WHERE id = '{$id}'");

}

public static function UpdateData($id, $name, $email, $image)
{
self::ConnectDataBase();
$path = "images/slider";
$image_new = self::ImageUpload($image, $path);
if (empty($image_new)) {
$query = self::EditDataId($id);
$item = [];
$item = mysqli_fetch_assoc($query);
$image_new = $item['image'];
}
mysqli_query(self::$con, "update user set name = '$name', email = '$email', image = '$image_new' where id = '$id'");
}

plague
شنبه 22 شهریور 1399, 22:39 عصر
این رو var_dump کن ببین چی داخلشه



$item = mysqli_fetch_assoc($query);
var_dump($item);

ikooshk
یک شنبه 23 شهریور 1399, 09:29 صبح
این رو var_dump کن ببین چی داخلشه



$item = mysqli_fetch_assoc($query);
var_dump($item);


یه آرایه نشون میده که پره:


array(4) {
["id"]=>
string(2) "33"
["name"]=>
string(17) "My Name"
["email"]=>
string(18) "inn.arco@gmail.com"
["image"]=>
string(17) "Wallpaper (1).jpg"
}

plague
دوشنبه 24 شهریور 1399, 03:17 صبح
آیا در همین صفحه editform.php اررور ها رو میبینید ؟
آیا وردامپ کردین توش آرایه بود بازم همون اررور ها توی فرم بودن یا نه ؟

ikooshk
سه شنبه 25 شهریور 1399, 12:28 عصر
آیا در همین صفحه editform.php اررور ها رو میبینید ؟
آیا وردامپ کردین توش آرایه بود بازم همون اررور ها توی فرم بودن یا نه ؟
ارور ها فقط داخل بخش سورس کد ها قابل مشاهده هست و تمام فیلدها ارور دارن البته اگه از htmlentities استفاده نکنم داخل فیلد ها با همون خطا پر میشه

plague
سه شنبه 25 شهریور 1399, 20:48 عصر
میدونم ... میگم آیا وقتی که var_dump کردی و دیدی توش آرایه بود توی سورس هم این اررور ها رو میگیری ؟
من فکر میکنم که وقتی چیزی از دیتابیس نمیخونه و null برمیگردونه این اررور رو میگری برای همین گفتم var_dump کن که وقتی اررور هست نگاه کنی توی آرایه چی بوده

ورژن php روهم دستکاری کن بعضی جاها دیدم با 7.4 این مشکل رو داشتن

ikooshk
پنج شنبه 27 شهریور 1399, 12:12 عصر
میدونم ... میگم آیا وقتی که var_dump کردی و دیدی توش آرایه بود توی سورس هم این اررور ها رو میگیری ؟
من فکر میکنم که وقتی چیزی از دیتابیس نمیخونه و null برمیگردونه این اررور رو میگری برای همین گفتم var_dump کن که وقتی اررور هست نگاه کنی توی آرایه چی بوده

ورژن php روهم دستکاری کن بعضی جاها دیدم با 7.4 این مشکل رو داشتن

بله متوجه شدم من حتی ورژن php رو به 5.6 تغییر دادم بازم همین شکل بود
یعنی با اینکه ارایه پر بهم برمیگردونه ولی توی سورس کد داخل فیلد ها همون خطارو نشون میده و این از عجایبی هست که کلافم کرده :)