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

كيفية استخدام ال Sessions فى جلب بيانات المستخدم من قاعدة البيانات وعرضها

Hamada Ahmed

السؤال

السلام عليكم

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...