4 ضمیمه
دریافت خطا در بخش آپدیت فرم(php)
سلام
وقت بخیر
وقتی وارد بخش آپدیت فرم خودم میشم و کنترل یو میگیرم و سورس کدرارو نگاه میکنم با این نوع خطا روبرو میشم:
Trying to access array offset on value of type null in
البته آپدیت انجام میشه ولی ممنون میشم کمک کنید مشکلشو برطرف کنم..
تصاویر پایینو ببنید ممنون میشم کد هایی که باید اصلاح بشنو بهم بگید
نقل قول: دریافت خطا در بخش آپدیت فرم(php)
وقتی از دیتابیس میخونی چیزی رو اول چک کن که موفق بوده یا نه اگه موفق نبود یا چیزی رو برنگردوند طبیعتا دیگه نمیتونی نمایشی بدی ولی شما چشم بسته داری فرض میکنی درسته و از دیتبایس در اومده بعد داری نمایش میدی
$item['email']
بجای عکس هم کد بزار که من بتونم کپی کنم بهت بگم منظورم اینجاست
همون عکس اول $item رو میگم
نقل قول: دریافت خطا در بخش آپدیت فرم(php)
نقل قول:
نوشته شده توسط
plague
وقتی از دیتابیس میخونی چیزی رو اول چک کن که موفق بوده یا نه اگه موفق نبود یا چیزی رو برنگردوند طبیعتا دیگه نمیتونی نمایشی بدی ولی شما چشم بسته داری فرض میکنی درسته و از دیتبایس در اومده بعد داری نمایش میدی
$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'");
}
نقل قول: دریافت خطا در بخش آپدیت فرم(php)
این رو var_dump کن ببین چی داخلشه
$item = mysqli_fetch_assoc($query);
var_dump($item);
نقل قول: دریافت خطا در بخش آپدیت فرم(php)
نقل قول:
نوشته شده توسط
plague
این رو var_dump کن ببین چی داخلشه
$item = mysqli_fetch_assoc($query);
var_dump($item);
یه آرایه نشون میده که پره:
کد HTML:
array(4) {
["id"]=>
string(2) "33"
["name"]=>
string(17) "My Name"
["email"]=>
string(18) "inn.arco@gmail.com"
["image"]=>
string(17) "Wallpaper (1).jpg"
}
نقل قول: دریافت خطا در بخش آپدیت فرم(php)
آیا در همین صفحه editform.php اررور ها رو میبینید ؟
آیا وردامپ کردین توش آرایه بود بازم همون اررور ها توی فرم بودن یا نه ؟
نقل قول: دریافت خطا در بخش آپدیت فرم(php)
نقل قول:
نوشته شده توسط
plague
آیا در همین صفحه editform.php اررور ها رو میبینید ؟
آیا وردامپ کردین توش آرایه بود بازم همون اررور ها توی فرم بودن یا نه ؟
ارور ها فقط داخل بخش سورس کد ها قابل مشاهده هست و تمام فیلدها ارور دارن البته اگه از htmlentities استفاده نکنم داخل فیلد ها با همون خطا پر میشه
نقل قول: دریافت خطا در بخش آپدیت فرم(php)
میدونم ... میگم آیا وقتی که var_dump کردی و دیدی توش آرایه بود توی سورس هم این اررور ها رو میگیری ؟
من فکر میکنم که وقتی چیزی از دیتابیس نمیخونه و null برمیگردونه این اررور رو میگری برای همین گفتم var_dump کن که وقتی اررور هست نگاه کنی توی آرایه چی بوده
ورژن php روهم دستکاری کن بعضی جاها دیدم با 7.4 این مشکل رو داشتن
نقل قول: دریافت خطا در بخش آپدیت فرم(php)
نقل قول:
نوشته شده توسط
plague
میدونم ... میگم آیا وقتی که var_dump کردی و دیدی توش آرایه بود توی سورس هم این اررور ها رو میگیری ؟
من فکر میکنم که وقتی چیزی از دیتابیس نمیخونه و null برمیگردونه این اررور رو میگری برای همین گفتم var_dump کن که وقتی اررور هست نگاه کنی توی آرایه چی بوده
ورژن php روهم دستکاری کن بعضی جاها دیدم با 7.4 این مشکل رو داشتن
بله متوجه شدم من حتی ورژن php رو به 5.6 تغییر دادم بازم همین شکل بود
یعنی با اینکه ارایه پر بهم برمیگردونه ولی توی سورس کد داخل فیلد ها همون خطارو نشون میده و این از عجایبی هست که کلافم کرده :)