اذهب إلى المحتوى

السؤال

نشر

السلام عليكم

عندي فورم بسيط يرفع الصور الى مجلد وبعد تغيير مسار الصور يتم تخزين مسار الصور الجديد وعنوان الصورة في قاعدة البيانات

اريد بعد ان يرفع المستخدم الصورة يتم تحويلة الى صفحة تجلب له الصورة وعنوانها من قاعدة البيانات باستخدام    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";
}
}
?>

 

Recommended Posts

  • 0
نشر
بتاريخ منذ ساعة مضت قال 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']; ?>" />

 

2021-02-02_20-48-04.png

  • 0
نشر

كل ما عليك هو إضافة جلسة session كالتالي

session_start();

في أول الصفحة كي تسجل جلسات session. 

ومن ثم يمكنك عند رفع الصورة وتخزين اسمها في قاعدة البيانات أن تقوم بتخزين اسمها في جلسة ولتكن مثل 

$_SESSION['image_name'] = $imageName;

بحيث أن 

$_SESSION['image_name'

هي مفتاح الجلسة و قيمتها هي اسم الصورة وفي الصفحة الثانية هي تقوم بعرض محتوى الجلسة المحفوظة في جلسة session في وسم img ليعرض الصورة كالتالي

<im src="uploads/<?php echo $_SESSION['image_name']; ?>" alt="" />

 

  • 0
نشر

مرحبا،

مشكلة إعادة التوجيه، هو أن التعلية:

header("location:session.php");

لا تعمل إلا في حال كانت هي أول شيئ يتم تنفيذه قبل أي عملية طباعة echo أو كتابة أي شيفرة HTML.

عليك إعادة ترتيب الشيفرة لديك بشكل يضمن تنفيذها في البداية

يمكنك الاستفادة من السؤال التالي : header location لا يعمل في php

بالتوفيق

  • 0
نشر
بتاريخ 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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...