الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

حفظ قيمة السيشن داخل قاعدة البيانات

بدأه alba6ah في 29 مايو 2011 · 8 رد · 673 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

اتمنى ان يكون الجميع على افضل حال

انا قمت بعمل صفحة لاضافة المنتجات قمت بعمل صفحة لعرض الفورم وهذا هو الكود

<?php 

//Start session
	ob_start(); 
	session_start();

		$username= $_SESSION['SESS_USER_NAME']	; 

	//Include database connection details
	require_once('includes/dbc.php');


	?>
<!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 name="author" content="Wink Hosting (www.winkhosting.com)" />
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	<link rel="stylesheet" href="images/style.css" type="text/css" />
	<title>Saudian Banks | Add New Product </title>

                                                       <!-- ------------ Validation ----------- -->



<!--
<script language="JavaScript" type="text/javascript"> 


function validateEmpty(fld) {
    var error = "";

    if (fld.value.length == 0) {
        fld.style.background = 'Yellow'; 
        error = "The required field has not been filled in.\n"
    } else {
        fld.style.background = 'White';
    }
    return error;   
}

function validate() 
{

     if(document.addForm.productname.value == ""  || document.addForm.producttype.value == "" || document.addForm.Description.value == "" || document.addForm.productname.value.length == 0 || document.addForm.producttype.value.length == 0 || document.addForm.Description.value.length == 0 )
     {
          alert(  "You must Fill all Fields");
          return false;
     }
</script> -->

    <script type = "text/javascript"> 

  function validate_required(field)

{
with (field)
  {

  if (value==null||value=="")
    {

    return false;

    }
  else

    {
    return true;
    }

  }

}

function validate_form(thisform)
{
with (thisform)
  {
   if (validate_required(productname)==false ||validate_required(producttype)==false ||validate_required(Description)==false )

      {alert("you must enter required field ! ");return false;}

else

return true;
  }
}
</script>

														<!-- -------- Form --------- -->
	                     	 <center>	
							 <h2>Add New Product </h2>
								  <table>
								<form name = "addForm" action="addproduct-exec.php?username=$username" method="post" onsubmit= "return validate_form(this)" >
								<tr><td>Product Name :  <input name="productname" type="text" size= "15" maxlength="30" /></td></tr>

                                 <tr><td>
								 Type of product :
								  <SELECT name="producttype"> 
		                          <option value="" selected>[choose yours]
		                          <option value="Account">Account
		                          <option value="Credit Card">Credit Card
		                          <option value="Loan">Loan
		                          <option value="Investment">Investment

	                               </SELECT> 

								 </td></tr>
								 <tr><td> Description :</br> <textarea cols=30 rows=10 name="Description" ></textarea></tr></td>
//aploud function 
								 <tr><td> Product picture  :<input name="picture" type ="text" /></tr></td>

								 <tr><td>
								<input name="submit" type="submit" value="ADD" ><input name="clear" type="reset" value="clear"/></td></tr></form>
                                 </table>
                               </center>

الفكره هنا اني اريد ان احفظ اسم الشخص الذي اضاف هذا المنتج في جدول المنتج وهو نفسه اليوزر نيم فقمت باخذه من السيشن والحاقة بالصفحة التي سيتم فيها اكمال الاضافة

<?php

		require_once('includes/dbc.php');

	//Start session

session_start();
$username = intval($_GET['username']);

$name      = addslashes($_POST['productname']);
$bank_username     = $_POST['$username'];
$description = addslashes($_POST['Description']);
$p_type       = $_POST['producttype'];
$picture = $_POST['picture'];


$query = @mysql_query ("INSERT INTO products (name,bank_username,description,p_type,picture) 
VALUES
('$name','$bank_username','$description','$p_type','$picture')") or die ("error query");
echo "<p align=center>successful insert  </p>";

		ob_end_flush();  

?>

المشكلة تظهر عند اسم المستخدم لايقبلها ابدا اتمنى ان اجد عندكم الحل

#2

مشكلتي مالها حل والا ايه ؟

#3

السلام عليكم

هل المشكلة في اسم البنك ؟

موقعي الشخصي:

http://developer-i.com

#4

شكرا على نفاعلك اخي الكريم

نعم

المشكلة في حفظ اليوزر نيم للبنك علما اني جربت واضفت بدون ما استخدم اليوزر نيم للبنك وانضافت جميع البيانات لكن لما ازيد اليوزر نيم للبنك يرفض وتخرج لي مسج

undefined index : $username

#5

ابشركم لقد تم حل المشكلة

فقط لاني لم اضع تشييك على السيشن

//Start session
		ob_start();
        session_start();
if(isset($_SESSION['SESS_USER_NAME'])){

$username= $_SESSION['SESS_USER_NAME'];

}else
{
echo "sorry ther is wrong ";
}
#6
<form name = "addForm" action="addproduct-exec.php?username=<?=$username?>" method="post" onsubmit= "return validate_form(this)" >

في السطر الأصلي الذي قمت بكتابته لم تقم بإخبار مترجم PHP أن يقوم بطبيعة قيمة username جرب تعديل السطر كما هو بالأعلى و إن شاء الله المشكلة تتحل

موقعي الشخصي:

http://developer-i.com

#7

أنا أرى ثغرة SQL injection في الكود لديك، فهل تراها؟ :)

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#8

أخ م.رجب

عفوا لقد نسيت ان اخبركم اني قمت بالتعديل ع الكود السابق واستغنيت عن حركة ارسال قيمة اليوزر نيم في URL

ابشركم لقد تجاوزت هذه المرحلة

لكن حينما اضفت كود validation خرب كل الي عملته وما عاد يشتغل حتى في صفحات أخر ساعدوني بارك الله فيكم

\

Xacker ماذا تقصد أخي الكريم

تم تعديل هذه المشاركة بواسطة alba6ah في 1 يونيو 2011 في 18:54

#9
alba6ah كتب:

لكن حينما اضفت كود validation خرب كل الي عملته وما عاد يشتغل حتى في صفحات أخر ساعدوني بارك الله فيكم

افتح موضوع جديد وضع المعلومات اللازمة لمساعدتك وشرح عن المشكلة، تكديس الأسئلة في موضوع واحد يضر بعملية الأرشفة والبحث.

اقتباس

Xacker ماذا تقصد أخي الكريم

أقصد أنك لو قمت بنشر التطبيق الذي تقوم بكتابته الآن ووقع بين يدي مخترق، فسيكون قادر على التلاعب بقاعدة البيانات في موقعك وربما أكثر بناء على الصلاحيات الممنوحة للمستخدم المتصل بالقاعدة.

موضوع مفيد: ما معنى SQL injection

نعم صحيح أنك تستخدم addslashes() لتنفذ escaping على ' و \ لكن هذا لا يكفي.

موضوع هام لتفسير السبب:

http://shiflett.org/blog/2006/jan/addslashes-versus-mysql-real-escape-string

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

مواضيع مشابهة