Omer Amad نشر 13 أغسطس أرسل تقرير نشر 13 أغسطس <?php session_start(); if (isset($_SESSION['id']) && isset($_SESSION['fname'])) { if(isset($_POST['fname']) && isset($_POST['uname'])){ include "../db_conn.php"; $fname = $_POST['fname']; $uname = $_POST['uname']; $old_pp = $_POST['old_pp']; $id = $_SESSION['id']; if (empty($fname)) { $em = "Full name is required"; header("Location: ../edit.php?error=$em"); exit; }else if(empty($uname)){ $em = "User name is required"; header("Location: ../edit.php?error=$em"); exit; }else { if (isset($_FILES['pp']['name']) AND !empty($_FILES['pp']['name'])) { $img_name = $_FILES['pp']['name']; $tmp_name = $_FILES['pp']['tmp_name']; $error = $_FILES['pp']['error']; if($error === 0){ $img_ex = pathinfo($img_name, PATHINFO_EXTENSION); $img_ex_to_lc = strtolower($img_ex); $allowed_exs = array('jpg', 'jpeg', 'png'); if(in_array($img_ex_to_lc, $allowed_exs)){ $new_img_name = uniqid($uname, true).'.'.$img_ex_to_lc; $img_upload_path = '../upload/'.$new_img_name; // Delete old profile pic $old_pp_des = "../upload/$old_pp"; if(unlink($old_pp_des)){ // just deleted move_uploaded_file($tmp_name, $img_upload_path); }else { // error or already deleted move_uploaded_file($tmp_name, $img_upload_path); } // update the Database $sql = "UPDATE users SET fname=?, username=?, pp=? WHERE id=?"; $stmt = $conn->prepare($sql); $stmt->execute([$fname, $uname, $new_img_name, $id]); $_SESSION['fname'] = $fname; header("Location: ../edit.php?success=Your account has been updated successfully"); exit; }else { $em = "You can't upload files of this type"; header("Location: ../edit.php?error=$em&$data"); exit; } }else { $em = "unknown error occurred!"; header("Location: ../edit.php?error=$em&$data"); exit; } }else { $sql = "UPDATE users SET fname=?, username=? WHERE id=?"; $stmt = $conn->prepare($sql); $stmt->execute([$fname, $uname, $id]); header("Location: ../edit.php?success=Your account has been updated successfully"); exit; } } }else { header("Location: ../edit.php?error=error"); exit; } }else { header("Location: login.php"); exit; } <?php session_start(); if (isset($_SESSION['id']) && isset($_SESSION['fname'])) { include "db_conn.php"; include 'php/User.php'; $user = getUserById($_SESSION['id'], $conn); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Edit Profile</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous"> <link rel="stylesheet" type="text/css" href="css/style.css"> </head> <body> <?php if ($user) { ?> <div class="d-flex justify-content-center align-items-center vh-100"> <form class="shadow w-450 p-3" action="php/edit.php" method="post" enctype="multipart/form-data"> <h4 class="display-4 fs-1">Edit Profile</h4><br> <!-- error --> <?php if(isset($_GET['error'])){ ?> <div class="alert alert-danger" role="alert"> <?php echo $_GET['error']; ?> </div> <?php } ?> <!-- success --> <?php if(isset($_GET['success'])){ ?> <div class="alert alert-success" role="alert"> <?php echo $_GET['success']; ?> </div> <?php } ?> <div class="mb-3"> <label class="form-label">Full Name</label> <input type="text" class="form-control" name="fname" value="<?php echo $user['fname']?>"> </div> <div class="mb-3"> <label class="form-label">User name</label> <input type="text" class="form-control" name="uname" value="<?php echo $user['username']?>"> </div> <div class="mb-3"> <label class="form-label">Profile Picture</label> <input type="file" class="form-control" name="pp"> <img src="upload/<?=$user['pp']?>" class="rounded-circle" style="width: 70px"> <input type="text" hidden="hidden" name="old_pp" value="<?=$user['pp']?>" > </div> <button type="submit" class="btn btn-primary">Update</button> <a href="home.php" class="link-secondary">Home</a> </form> </div> <?php }else{ header("Location: home.php"); exit; } ?> </body> </html> <?php }else { header("Location: login.php"); exit; } ?> كيفكم يا اصدقاء فيه عندي هذا الكود ممكن حدا يفهمنا ويقدر يفصل بين كود تسجيل الدخول وكود تعديل البيانات بدي استخرج كود تعديل البيانات من هون ومش عارف وبدي اعرف اين اسماء الاعمدة يلي بدي اضعها في الكود 1 اقتباس
0 ياسر مسكين نشر 13 أغسطس أرسل تقرير نشر 13 أغسطس حسنا، لنبدأ بكود تسجيل الدخول أولا وهو الذي حسب تصفحي له ففي البداية فهو يقوم بالتحقق من وجود جلسة نشطة للمستخدم: <?php session_start(); if (isset($_SESSION['id']) && isset($_SESSION['fname'])) { // باقي الكود هنا } else { header("Location: login.php"); exit; } أما الجزء الرئيسي لتعديل البيانات فيبدأ بعد التحقق من وجود البيانات المرسلة وهو كالتالي: if(isset($_POST['fname']) && isset($_POST['uname'])){ include "../db_conn.php"; $fname = $_POST['fname']; $uname = $_POST['uname']; $old_pp = $_POST['old_pp']; $id = $_SESSION['id']; // التحقق من البيانات وتحديثها // ... } أما بخصوص أسماء الأعمدة المستخدمة في قاعدة البيانات فهي على النحو التالي: id: معرف المستخدم fname: الاسم الكامل username: اسم المستخدم pp: صورة الملف الشخصي فالكود يقوم بتحديث هذه البيانات في جدول users في قاعدة البيانات أما بخصوص تحديث البيانات بدون تغيير الصورة فهذا الجزء هو الذي يقوم بهذا الأمر: $sql = "UPDATE users SET fname=?, username=? WHERE id=?"; $stmt = $conn->prepare($sql); $stmt->execute([$fname, $uname, $id]); أما الجزء الذي يقوم بتحديث البيانات مع تغيير الصورة: $sql = "UPDATE users SET fname=?, username=?, pp=? WHERE id=?"; $stmt = $conn->prepare($sql); $stmt->execute([$fname, $uname, $new_img_name, $id]); فالكود يتحقق من وجود ملف صورة جديد، ويقوم بتحميله وحذف الصورة القديمة إذا وجدت. أما لاستخراج كود تعديل البيانات، يمكنك استخدام الجزء الذي يبدأ من: if(isset($_POST['fname']) && isset($_POST['uname'])){ وينتهي قبل القوس } الأخير في الملف. 1 اقتباس
0 Omer Amad نشر 13 أغسطس الكاتب أرسل تقرير نشر 13 أغسطس (معدل) بتاريخ 10 دقائق مضت قال ياسر مسكين: حسنا، لنبدأ بكود تسجيل الدخول أولا وهو الذي حسب تصفحي له ففي البداية فهو يقوم بالتحقق من وجود جلسة نشطة للمستخدم: <?php session_start(); if (isset($_SESSION['id']) && isset($_SESSION['fname'])) { // باقي الكود هنا } else { header("Location: login.php"); exit; } أما الجزء الرئيسي لتعديل البيانات فيبدأ بعد التحقق من وجود البيانات المرسلة وهو كالتالي: if(isset($_POST['fname']) && isset($_POST['uname'])){ include "../db_conn.php"; $fname = $_POST['fname']; $uname = $_POST['uname']; $old_pp = $_POST['old_pp']; $id = $_SESSION['id']; // التحقق من البيانات وتحديثها // ... } أما بخصوص أسماء الأعمدة المستخدمة في قاعدة البيانات فهي على النحو التالي: id: معرف المستخدم fname: الاسم الكامل username: اسم المستخدم pp: صورة الملف الشخصي فالكود يقوم بتحديث هذه البيانات في جدول users في قاعدة البيانات أما بخصوص تحديث البيانات بدون تغيير الصورة فهذا الجزء هو الذي يقوم بهذا الأمر: $sql = "UPDATE users SET fname=?, username=? WHERE id=?"; $stmt = $conn->prepare($sql); $stmt->execute([$fname, $uname, $id]); أما الجزء الذي يقوم بتحديث البيانات مع تغيير الصورة: $sql = "UPDATE users SET fname=?, username=?, pp=? WHERE id=?"; $stmt = $conn->prepare($sql); $stmt->execute([$fname, $uname, $new_img_name, $id]); فالكود يتحقق من وجود ملف صورة جديد، ويقوم بتحميله وحذف الصورة القديمة إذا وجدت. أما لاستخراج كود تعديل البيانات، يمكنك استخدام الجزء الذي يبدأ من: if(isset($_POST['fname']) && isset($_POST['uname'])){ وينتهي قبل القوس } الأخير في الملف. طيب لوفرضنا الصور موجودة في مجلد اسمه k4... كيف نقدر يجلب الصوره من الملف... و يجلب امتداد الصوره من قاعدة بيانات لغرض التعديل تم التعديل في 13 أغسطس بواسطة Omer Amad 1 اقتباس
0 ياسر مسكين نشر 13 أغسطس أرسل تقرير نشر 13 أغسطس بتاريخ 1 دقيقة مضت قال Omer Amad: طيب لوفرضنا الصور موجودة في مجلد اسمه k4... كيف راح نقدر يجلب الصوره من الملف... و يجلب امتداد الصوره من قاعدة بيانات لغرض التعديل بما أن الصور محفوظة في ذلك المجلد، فأكيد أنه يوجد عمود يحتوي على امتداد الصورة لذا لجلب الصورة من المجلد k4 يجب استخدام معرف المستخدم كاسم للملف ثم نقوم بجلب امتداد الصورة من قاعدة البيانات مع بناء مسار الصورة كالتالي: "k4/[user_id].[image_extension]" ثم لعرض الصورة في نموذج التعديل، استخدم المسار الذي بنيته وعند التعديل، يمكنك استخدام هذه المعلومات للوصول إلى الصورة الحالية وتحديثها إذا لزم الأمر. 1 اقتباس
0 Omer Amad نشر 13 أغسطس الكاتب أرسل تقرير نشر 13 أغسطس بتاريخ 4 دقائق مضت قال ياسر مسكين: بما أن الصور محفوظة في ذلك المجلد، فأكيد أنه يوجد عمود يحتوي على امتداد الصورة لذا لجلب الصورة من المجلد k4 يجب استخدام معرف المستخدم كاسم للملف ثم نقوم بجلب امتداد الصورة من قاعدة البيانات مع بناء مسار الصورة كالتالي: "k4/[user_id].[image_extension]" ثم لعرض الصورة في نموذج التعديل، استخدم المسار الذي بنيته وعند التعديل، يمكنك استخدام هذه المعلومات للوصول إلى الصورة الحالية وتحديثها إذا لزم الأمر. لو سمحت تكتبلي الكود ك مثال لهذه الفقرة 1 اقتباس
0 ياسر مسكين نشر 13 أغسطس أرسل تقرير نشر 13 أغسطس بتاريخ 1 دقيقة مضت قال Omer Amad: لو سمحت تكتبلي الكود ك مثال لهذه الفقرة بالطبع لا مشكلة، سأقدم نموذجا لكل جزئية بما يقابلها من شيفرة لتفهم أفضل ثم يمكنك ربط الأفكار بناء على مشروعك الخاص، أولا بالنسبة لاسترجاع معلومات المستخدم فهذه الدالة تسترجع معلومات المستخدم، بما في ذلك امتداد الصورة من قاعدة البيانات الذي يجب أن يكون مخزنا في إحدى الأعمدة في قاعدة البيانات فقد استخدمت image_extension هنا في المثال وهو عمود مفترض في جدول users في قاعدة البيانات أين يخزن امتداد ملف الصورة الخاص بكل مستخدم. function getUserInfo($userId, $conn) { $sql = "SELECT id, username, image_extension FROM users WHERE id = ?"; $stmt = $conn->prepare($sql); $stmt->execute([$userId]); return $stmt->fetch(PDO::FETCH_ASSOC); } بالنسبة لبناء مسار الصورة هنا نبني المسار باستخدام معرف المستخدم والامتداد المخزن في قاعدة البيانات كما قلنا سابقا كالتالي: $imagePath = "k4/" . $userInfo['id'] . "." . $userInfo['image_extension']; أما هذا النموذج فيعرض الصورة الحالية ويسمح بتحميل صورة جديدة بحيث يتحقق من وجود صورة جديدة مُحمّلة ويعالجها. if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['new_image'])) { $userId = $_SESSION['user_id']; $currentExtension = $_POST['current_extension']; $newImage = $_FILES['new_image']; if ($newImage['error'] == 0) { $newExtension = pathinfo($newImage['name'], PATHINFO_EXTENSION); $newPath = "k4/" . $userId . "." . $newExtension; // حذف الصورة القديمة إذا كانت موجودة $oldPath = "k4/" . $userId . "." . $currentExtension; if (file_exists($oldPath)) { unlink($oldPath); } // حفظ الصورة الجديدة move_uploaded_file($newImage['tmp_name'], $newPath); // تحديث الامتداد في قاعدة البيانات $sql = "UPDATE users SET image_extension = ? WHERE id = ?"; $stmt = $conn->prepare($sql); $stmt->execute([$newExtension, $userId]); echo "Profile picture updated successfully."; } else { echo "Error uploading new image."; } } ثم هنا نقوم بتحديث الصورة وقاعدة البيانات: move_uploaded_file($newImage['tmp_name'], $newPath); $sql = "UPDATE users SET image_extension = ? WHERE id = ?"; $stmt = $conn->prepare($sql); $stmt->execute([$newExtension, $userId]); 1 اقتباس
0 Omer Amad نشر 13 أغسطس الكاتب أرسل تقرير نشر 13 أغسطس بتاريخ 9 دقائق مضت قال ياسر مسكين: بالطبع لا مشكلة، سأقدم نموذجا لكل جزئية بما يقابلها من شيفرة لتفهم أفضل ثم يمكنك ربط الأفكار بناء على مشروعك الخاص، أولا بالنسبة لاسترجاع معلومات المستخدم فهذه الدالة تسترجع معلومات المستخدم، بما في ذلك امتداد الصورة من قاعدة البيانات الذي يجب أن يكون مخزنا في إحدى الأعمدة في قاعدة البيانات فقد استخدمت image_extension هنا في المثال وهو عمود مفترض في جدول users في قاعدة البيانات أين يخزن امتداد ملف الصورة الخاص بكل مستخدم. function getUserInfo($userId, $conn) { $sql = "SELECT id, username, image_extension FROM users WHERE id = ?"; $stmt = $conn->prepare($sql); $stmt->execute([$userId]); return $stmt->fetch(PDO::FETCH_ASSOC); } بالنسبة لبناء مسار الصورة هنا نبني المسار باستخدام معرف المستخدم والامتداد المخزن في قاعدة البيانات كما قلنا سابقا كالتالي: $imagePath = "k4/" . $userInfo['id'] . "." . $userInfo['image_extension']; أما هذا النموذج فيعرض الصورة الحالية ويسمح بتحميل صورة جديدة بحيث يتحقق من وجود صورة جديدة مُحمّلة ويعالجها. if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['new_image'])) { $userId = $_SESSION['user_id']; $currentExtension = $_POST['current_extension']; $newImage = $_FILES['new_image']; if ($newImage['error'] == 0) { $newExtension = pathinfo($newImage['name'], PATHINFO_EXTENSION); $newPath = "k4/" . $userId . "." . $newExtension; // حذف الصورة القديمة إذا كانت موجودة $oldPath = "k4/" . $userId . "." . $currentExtension; if (file_exists($oldPath)) { unlink($oldPath); } // حفظ الصورة الجديدة move_uploaded_file($newImage['tmp_name'], $newPath); // تحديث الامتداد في قاعدة البيانات $sql = "UPDATE users SET image_extension = ? WHERE id = ?"; $stmt = $conn->prepare($sql); $stmt->execute([$newExtension, $userId]); echo "Profile picture updated successfully."; } else { echo "Error uploading new image."; } } ثم هنا نقوم بتحديث الصورة وقاعدة البيانات: move_uploaded_file($newImage['tmp_name'], $newPath); $sql = "UPDATE users SET image_extension = ? WHERE id = ?"; $stmt = $conn->prepare($sql); $stmt->execute([$newExtension, $userId]); سيكون لديه صفحتين php.... صفحة updata.php وصفحة edit.php.... صح؟ بتاريخ 2 دقائق مضت قال Omer Amad: سيكون لديه صفحتين php.... صفحة updata.php وصفحة edit.php.... صح؟ بتاريخ 10 دقائق مضت قال ياسر مسكين: بالطبع لا مشكلة، سأقدم نموذجا لكل جزئية بما يقابلها من شيفرة لتفهم أفضل ثم يمكنك ربط الأفكار بناء على مشروعك الخاص، أولا بالنسبة لاسترجاع معلومات المستخدم فهذه الدالة تسترجع معلومات المستخدم، بما في ذلك امتداد الصورة من قاعدة البيانات الذي يجب أن يكون مخزنا في إحدى الأعمدة في قاعدة البيانات فقد استخدمت image_extension هنا في المثال وهو عمود مفترض في جدول users في قاعدة البيانات أين يخزن امتداد ملف الصورة الخاص بكل مستخدم. function getUserInfo($userId, $conn) { $sql = "SELECT id, username, image_extension FROM users WHERE id = ?"; $stmt = $conn->prepare($sql); $stmt->execute([$userId]); return $stmt->fetch(PDO::FETCH_ASSOC); } بالنسبة لبناء مسار الصورة هنا نبني المسار باستخدام معرف المستخدم والامتداد المخزن في قاعدة البيانات كما قلنا سابقا كالتالي: $imagePath = "k4/" . $userInfo['id'] . "." . $userInfo['image_extension']; أما هذا النموذج فيعرض الصورة الحالية ويسمح بتحميل صورة جديدة بحيث يتحقق من وجود صورة جديدة مُحمّلة ويعالجها. if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['new_image'])) { $userId = $_SESSION['user_id']; $currentExtension = $_POST['current_extension']; $newImage = $_FILES['new_image']; if ($newImage['error'] == 0) { $newExtension = pathinfo($newImage['name'], PATHINFO_EXTENSION); $newPath = "k4/" . $userId . "." . $newExtension; // حذف الصورة القديمة إذا كانت موجودة $oldPath = "k4/" . $userId . "." . $currentExtension; if (file_exists($oldPath)) { unlink($oldPath); } // حفظ الصورة الجديدة move_uploaded_file($newImage['tmp_name'], $newPath); // تحديث الامتداد في قاعدة البيانات $sql = "UPDATE users SET image_extension = ? WHERE id = ?"; $stmt = $conn->prepare($sql); $stmt->execute([$newExtension, $userId]); echo "Profile picture updated successfully."; } else { echo "Error uploading new image."; } } ثم هنا نقوم بتحديث الصورة وقاعدة البيانات: move_uploaded_file($newImage['tmp_name'], $newPath); $sql = "UPDATE users SET image_extension = ? WHERE id = ?"; $stmt = $conn->prepare($sql); $stmt->execute([$newExtension, $userId]); لو كان لديه 3 اعمده فيها صور كيف سيكون اين اضع اسماء الاعمده 1 اقتباس
0 ياسر مسكين نشر 13 أغسطس أرسل تقرير نشر 13 أغسطس بتاريخ 1 دقيقة مضت قال Omer Amad: سيكون لديه صفحتين php.... صفحة updata.php وصفحة edit.php.... صح؟ صحيح جزء ملف التعديل مثلا يبدأ من هنا: <?php // في ملف update_profile.php if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['new_image'])) { 1 اقتباس
0 Omer Amad نشر 13 أغسطس الكاتب أرسل تقرير نشر 13 أغسطس بتاريخ الآن قال ياسر مسكين: صحيح جزء ملف التعديل مثلا يبدأ من هنا: <?php // في ملف update_profile.php if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['new_image'])) { واين ينتهي لو سمحت اين اضع ال form وال input كيف ستكون اسماء الاعمده هي d1 / d2 / d3 بتاريخ 3 دقائق مضت قال ياسر مسكين: صحيح جزء ملف التعديل مثلا يبدأ من هنا: <?php // في ملف update_profile.php if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['new_image'])) { صفحة updet ماهو الكود الذي سيكون فيها صفحة ال edit ماهو الكود الذي سيكون فيها انا لديه بيانات نصية ايضا ليس فقط صور ارجو الشرح 1 اقتباس
0 ياسر مسكين نشر 13 أغسطس أرسل تقرير نشر 13 أغسطس بتاريخ الآن قال Omer Amad: واين ينتهي لو سمحت اين اضع ال form وال input كيف ستكون اسماء الاعمده هي d1 / d2 / d3 سأجمع لك الشيفرات لكن هذا مثال فقط وأرجو فهم الفكرة، لأن كل شخص يمكنه التعديل على هذا المفهوم بناء على احتياجاته الخاصة في مشروعه: هنا ملف Edit Profile: <?php session_start(); function getUserInfo($userId, $conn) { $sql = "SELECT id, username, image_extension FROM users WHERE id = ?"; $stmt = $conn->prepare($sql); $stmt->execute([$userId]); return $stmt->fetch(PDO::FETCH_ASSOC); } $userId = $_SESSION['user_id']; $userInfo = getUserInfo($userId, $conn); $imagePath = "k4/" . $userInfo['id'] . "." . $userInfo['image_extension']; // عرض نموذج التعديل ?> <!DOCTYPE html> <html> <head> <title>Edit Profile</title> </head> <body> <h2>Edit Profile</h2> <form action="update_profile.php" method="post" enctype="multipart/form-data"> <img src="<?php echo $imagePath; ?>" alt="Profile Picture" style="width: 100px;"><br> <input type="file" name="new_image" accept="image/*"><br> <input type="hidden" name="current_extension" value="<?php echo $userInfo['image_extension']; ?>"> <button type="submit">Update Profile</button> </form> </body> </html> أما الملف الآخر فهو لتحديث البروفايل وهو كالآتي: <?php if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['new_image'])) { $userId = $_SESSION['user_id']; $currentExtension = $_POST['current_extension']; $newImage = $_FILES['new_image']; if ($newImage['error'] == 0) { $newExtension = pathinfo($newImage['name'], PATHINFO_EXTENSION); $newPath = "k4/" . $userId . "." . $newExtension; // حذف الصورة القديمة إذا كانت موجودة $oldPath = "k4/" . $userId . "." . $currentExtension; if (file_exists($oldPath)) { unlink($oldPath); } // حفظ الصورة الجديدة move_uploaded_file($newImage['tmp_name'], $newPath); // تحديث الامتداد في قاعدة البيانات $sql = "UPDATE users SET image_extension = ? WHERE id = ?"; $stmt = $conn->prepare($sql); $stmt->execute([$newExtension, $userId]); echo "Profile picture updated successfully."; } else { echo "Error uploading new image."; } } ?> اقتباس
0 Omer Amad نشر 13 أغسطس الكاتب أرسل تقرير نشر 13 أغسطس بتاريخ 3 دقائق مضت قال ياسر مسكين: سأجمع لك الشيفرات لكن هذا مثال فقط وأرجو فهم الفكرة، لأن كل شخص يمكنه التعديل على هذا المفهوم بناء على احتياجاته الخاصة في مشروعه: هنا ملف Edit Profile: <?php session_start(); function getUserInfo($userId, $conn) { $sql = "SELECT id, username, image_extension FROM users WHERE id = ?"; $stmt = $conn->prepare($sql); $stmt->execute([$userId]); return $stmt->fetch(PDO::FETCH_ASSOC); } $userId = $_SESSION['user_id']; $userInfo = getUserInfo($userId, $conn); $imagePath = "k4/" . $userInfo['id'] . "." . $userInfo['image_extension']; // عرض نموذج التعديل ?> <!DOCTYPE html> <html> <head> <title>Edit Profile</title> </head> <body> <h2>Edit Profile</h2> <form action="update_profile.php" method="post" enctype="multipart/form-data"> <img src="<?php echo $imagePath; ?>" alt="Profile Picture" style="width: 100px;"><br> <input type="file" name="new_image" accept="image/*"><br> <input type="hidden" name="current_extension" value="<?php echo $userInfo['image_extension']; ?>"> <button type="submit">Update Profile</button> </form> </body> </html> أما الملف الآخر فهو لتحديث البروفايل وهو كالآتي: <?php if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['new_image'])) { $userId = $_SESSION['user_id']; $currentExtension = $_POST['current_extension']; $newImage = $_FILES['new_image']; if ($newImage['error'] == 0) { $newExtension = pathinfo($newImage['name'], PATHINFO_EXTENSION); $newPath = "k4/" . $userId . "." . $newExtension; // حذف الصورة القديمة إذا كانت موجودة $oldPath = "k4/" . $userId . "." . $currentExtension; if (file_exists($oldPath)) { unlink($oldPath); } // حفظ الصورة الجديدة move_uploaded_file($newImage['tmp_name'], $newPath); // تحديث الامتداد في قاعدة البيانات $sql = "UPDATE users SET image_extension = ? WHERE id = ?"; $stmt = $conn->prepare($sql); $stmt->execute([$newExtension, $userId]); echo "Profile picture updated successfully."; } else { echo "Error uploading new image."; } } ?> فهمت طيب في مايخص الاعمدة الخاصة بالبيانات النصية ايضا اين يتم اضافتها في الكود اسماء الاعمده هي e1 /e2 /e3 /e4/ e5 /e6 اسم الجدول هو U7 الذي يحتوي على جميع البيانات النصية والصوريه اقتباس
السؤال
Omer Amad
كيفكم يا اصدقاء فيه عندي هذا الكود ممكن حدا يفهمنا ويقدر يفصل بين كود تسجيل الدخول وكود تعديل البيانات بدي استخرج كود تعديل البيانات من هون ومش عارف وبدي اعرف اين اسماء الاعمدة يلي بدي اضعها في الكود
10 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.