Hamada Ahmed نشر 2 فبراير 2021 أرسل تقرير نشر 2 فبراير 2021 السلام عليكم عندي فورم بسيط يرفع الصور الى مجلد وبعد تغيير مسار الصور يتم تخزين مسار الصور الجديد وعنوان الصورة في قاعدة البيانات اريد بعد ان يرفع المستخدم الصورة يتم تحويلة الى صفحة تجلب له الصورة وعنوانها من قاعدة البيانات باستخدام Sessions لتكن هذه الصفحة باسم show.php if($result) { header("location:show.php"); } وهذا هو الكود كاملا <form name="newad" method="post" enctype="multipart/form-data" action="index.php"> <table border="1"> <tr><td> <input type="file" name="image" id="" required> </td></tr> <tr><td> <input type="hidden" name="MAX_FILE_SIZE" value="90000" /> </td></tr> <tr><td><input name="img_name" type="text" size="25" maxlength="100" required > </td></tr> <tr><td> <input name="Submit" type="submit" value="Upload image"> </td></tr> </table> </form> <?php $con = mysqli_connect("localhost", "root", "") or die ("فشل في الإتصال بقاعدة البيانات"); $db=mysqli_select_db($con, 'tc'); define ("MAX_SIZE","1000"); // this function to get extension of files................. function getExtension($str) { $i = strrpos($str,"."); if (!$i) { return ""; } $l = strlen($str) - $i; $ext = substr($str,$i+1,$l); return $ext; } $errors=0; if(isset($_POST['Submit'])) { $image=$_FILES['image']['name']; if ($image) { $filename = stripslashes($_FILES['image']['name']); $extension = getExtension($filename); $extension = strtolower($extension); if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) { echo '<h1>Unknown extension!</h1>'; $errors=1; } else { //$size= filesize($_FILES['image']['name']); $size = $_FILES["image"]["size"]; if ($size > MAX_SIZE*1024) { echo '<h1>You have exceeded the size limit!</h1>'; $errors=1; } $image_name=time().'.'.$extension; $newname="upload/".$image_name; //$copied = copy($_FILES['image']['tmp_name'], $newname); $copied = move_uploaded_file($_FILES["image"]["tmp_name"], $newname); if (!$copied) { echo '<h1></h1>'; $errors=1; }}}} if(isset($_POST['Submit']) && !$errors) { echo "<h1></h1>"; // echo "<img src=$newname>"; // ------------------- To Save Path of Image in DataBase and show it on Browser... $img_name = $_POST['img_name']; $result = @mysqli_query($con, "INSERT INTO `news` VALUES ('$id','$newname','$img_name',NOW() )"); if($result) { header("location:session.php"); } else { echo "error"; } } ?> 1 اقتباس
0 بلال زيادة نشر 2 فبراير 2021 أرسل تقرير نشر 2 فبراير 2021 كل ما عليك هو إضافة جلسة session كالتالي session_start(); في أول الصفحة كي تسجل جلسات session. ومن ثم يمكنك عند رفع الصورة وتخزين اسمها في قاعدة البيانات أن تقوم بتخزين اسمها في جلسة ولتكن مثل $_SESSION['image_name'] = $imageName; بحيث أن $_SESSION['image_name' هي مفتاح الجلسة و قيمتها هي اسم الصورة وفي الصفحة الثانية هي تقوم بعرض محتوى الجلسة المحفوظة في جلسة session في وسم img ليعرض الصورة كالتالي <im src="uploads/<?php echo $_SESSION['image_name']; ?>" alt="" /> 1 اقتباس
0 Wael Aljamal نشر 2 فبراير 2021 أرسل تقرير نشر 2 فبراير 2021 مرحبا، مشكلة إعادة التوجيه، هو أن التعلية: header("location:session.php"); لا تعمل إلا في حال كانت هي أول شيئ يتم تنفيذه قبل أي عملية طباعة echo أو كتابة أي شيفرة HTML. عليك إعادة ترتيب الشيفرة لديك بشكل يضمن تنفيذها في البداية يمكنك الاستفادة من السؤال التالي : header location لا يعمل في php بالتوفيق 1 اقتباس
0 Hamada Ahmed نشر 2 فبراير 2021 الكاتب أرسل تقرير نشر 2 فبراير 2021 بتاريخ 3 ساعات قال بلال زيادة: كل ما عليك هو إضافة جلسة session كالتالي session_start(); في أول الصفحة كي تسجل جلسات session. ومن ثم يمكنك عند رفع الصورة وتخزين اسمها في قاعدة البيانات أن تقوم بتخزين اسمها في جلسة ولتكن مثل $_SESSION['image_name'] = $imageName; بحيث أن $_SESSION['image_name' هي مفتاح الجلسة و قيمتها هي اسم الصورة وفي الصفحة الثانية هي تقوم بعرض محتوى الجلسة المحفوظة في جلسة session في وسم img ليعرض الصورة كالتالي <im src="uploads/<?php echo $_SESSION['image_name']; ?>" alt="" /> اسف على الازعاج اخي @بلال زيادةسوف ارفق لك مجلد المشروع بدون السيشن لاني لم اتمكن من عرض الصورة لان امتداد الصورة يتغير فى قاعدة البيانات Project.rar اقتباس
0 بلال زيادة نشر 2 فبراير 2021 أرسل تقرير نشر 2 فبراير 2021 بتاريخ منذ ساعة مضت قال Hamada Ahmed: اسف على الازعاج اخي @بلال زيادةسوف ارفق لك مجلد المشروع بدون السيشن لاني لم اتمكن من عرض الصورة لان امتداد الصورة يتغير فى قاعدة البيانات Project.rar تم إضافة جلسة session إلى الكود و تم التأكد من عمله أيضا <?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <body> <form name="newad" method="post" enctype="multipart/form-data" action="index.php"> <table border="1"> <tr><td> <input type="file" name="image" id="" required> </td></tr> <tr><td> <input type="hidden" name="MAX_FILE_SIZE" value="90000" /> </td></tr> <tr><td><input name="describe" type="text" size="25" maxlength="100" required > </td></tr> <tr><td> <input name="Submit" type="submit" value="Upload image"> </td></tr> </table> </form> <?php $con = mysqli_connect("localhost", "root", "") or die ("فشل في الإتصال بقاعدة البيانات"); $db=mysqli_select_db($con, 'tc'); define ("MAX_SIZE","1000"); // this function to get extension of files................. function getExtension($str) { $i = strrpos($str,"."); if (!$i) { return ""; } $l = strlen($str) - $i; $ext = substr($str,$i+1,$l); return $ext; } $errors=0; if(isset($_POST['Submit'])) { $image=$_FILES['image']['name']; if ($image) { $filename = stripslashes($_FILES['image']['name']); $extension = getExtension($filename); $extension = strtolower($extension); if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) { echo '<h1>Unknown extension!</h1>'; $errors=1; } else { //$size= filesize($_FILES['image']['name']); $size = $_FILES["image"]["size"]; if ($size > MAX_SIZE*1024) { echo '<h1>You have exceeded the size limit!</h1>'; $errors=1; } $image_name=time().'.'.$extension; $newname="upload/".$image_name; //$copied = copy($_FILES['image']['tmp_name'], $newname); $copied = move_uploaded_file($_FILES["image"]["tmp_name"], $newname); if (!$copied) { echo '<h1></h1>'; $errors=1; }}}} if(isset($_POST['Submit']) && !$errors) { echo "<h1></h1>"; // echo "<img src=$newname>"; // ------------------- To Save Path of Image in DataBase and show it on Browser... $id = $_POST['id']; $describe = $_POST['describe']; $_SESSION['image_name'] = $newname; $result = @mysqli_query($con, "INSERT INTO `news` VALUES ('$id','$newname','$describe',NOW() )"); if($result) { header("location:session.php"); } else { echo "error"; } } ?> </body> </html> وملف session.php <?php session_start(); //عمل حالة شرطية للمقارنة if ($_SESSION['browser'] !== $_SERVER['HTTP_USER_AGENT']) { //sessionانهاء ال session_destroy(); echo "أنت غير معتمد"; exit(); } echo " "; ?> <img src="<?php echo $_SESSION['image_name']; ?>" /> 2 اقتباس
السؤال
Hamada Ahmed
السلام عليكم
عندي فورم بسيط يرفع الصور الى مجلد وبعد تغيير مسار الصور يتم تخزين مسار الصور الجديد وعنوان الصورة في قاعدة البيانات
اريد بعد ان يرفع المستخدم الصورة يتم تحويلة الى صفحة تجلب له الصورة وعنوانها من قاعدة البيانات باستخدام Sessions
لتكن هذه الصفحة باسم show.php
if($result) { header("location:show.php"); }
وهذا هو الكود كاملا
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.