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

مشكلة عندي بالـ session

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

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

أشتغل على أكواد تعديل بيانات اليوزر ..

أبغاه يدخل رقمه السري للتأكد إنه هو اللي يقوم بتعديل بياناته ..

سويت الفورم عادي ..

بس لما جيت في كود الجافا سكريبت للتشييك على باسوورده

أبي أقارن الباسوورد اللي دخله مع الباسوورد اللي عندي في السيشن .. ما عرفت أكتبها

اللي سويته ماضبط وحاولت فيه إلين تعبت والله

أعرف خطئي إني ما أرسل قيمة السيشن وأنا مافتحته ..

بس ما أأعرف أصححه:

 <script type = "text/javascript"> 



function validate_form()
{

if (notEmpty(document.getElementById("cpass"), " must enter complete information!"))
    {
		if (notEmpty(document.getElementById("npass"), " must enter complete information!"))
		{

			if(isIdentical(document.getElementById("cpass").value, ".$_SESSION['SESS_PASS']." ,"your password not matching")) 
			{

				return true;
			}
		}
	return false; 
}


function notEmpty(elem, helperMsg)
{
	if(elem.value.length == 0)
	{
		alert(helperMsg);
		elem.focus();
		return false;
	}
	return true;
}


function isIdentical(elem1,elem2,helperMsg)
{

	if(elem1 == elem2)
	{
		return true;
	}
	else{
		alert(helperMsg);
		return false;
		}






}
         </script>








-----------




</head>
<body>
	<div id="page" align="center">
		<div id="content" style="width:800px">

			<div id="topheader">

				<div id="toplinks" class="smallgraytext">
 	 <?php 
								ob_start();  
                             					session_start();
								if(!isset ($_SESSION['SESS_USER_NAME']) and (!isset($_SESSION['SESS_PASS'])))
								{

								echo "<a href='login.php'>login</a><br>";
								echo "<a href='signupdirect.php'>sign Up</a>";
								}
								else
								{
								echo "welcome   ".$_SESSION['SESS_USER_NAME']."<br>";
								echo"<a href='logout.php'>logout</a>";
								}

								ob_end_flush();  
            ?>
				</div>
			</div>



		<div id="contenttext">
				<div style="padding:10px"></div>
				<div class="bodytext" style="padding:12px;" align="justify">
			    <form id="editing" name="editing" action="testpass.php" method="post"  onsubmit= "return validate_form(this)">
					  <table cellspacing="15">
							<tr>
								<td><label for="cpass">Your password</label></td>
								<td><input type="password" name="cpass" id="cpass"  /></td>
							</tr>
							<tr>
								<td><label for="npass">new password</label></td>
								<td><input type="password" name="npass" id="npass" /></td>
							</tr>
							<tr>

							<tr>
								<td></td>
								<td><input type="submit" name="submit" id="submit" value="Send" /></td>
							</tr>
					  </table>
					</form>
				</div>
		  </div>


</body>
1
#2

ليس لدي خبرة في php ، ولكن من الخطأ أن تتأكد من صحة المدخلات الحساسة عن طريق Javascript فقط ؟ يمكن استخدام Javascript في أمور مثل : التأكد من صحة الايميل أو التأكد من طول اسم معيّن . لكن لا تستخدم Javascript للتأكد أن " كلمة المرور القديمة == الكلمة التي أدخلها المستخدمة " ، لأنه يمكن لأي مستخدم أن يعدل على كود Javacript ويتجاوز كل ما كتبته ( تذكر أن كود JS يتم تنفيذه على متصفحك وليس على السيرفر ) .

الحل ؟

أفضل حل هو أن تستخدم AJAX ، كالتالي :

1- عند الضغط على زر submit ، أرسل كلمة المستخدم الجديدة و القديمة إلى صفحة php التي تقوم بالتأكد .

2- الطلب السابق يجب أن يكون من نوع ajax request ، و من الأفضل أن يكون POST ، ويتم إرسال معاملين اثنين وهما كلمة المرور القديمة و الجديدة .

3- في السيرفر ( في صفحة php ) ، تقوم بالمقارنة و التأكد .. إن تم كل شيء على ما يرام ، تقوم بالتغيير .

4- تعيد صفحة php النتيجة إلى الصفحة التي تحتوي على form السابق .. ويمكن أن تعيد النتائج بصيغة JSON والتي ستحتوي على نص الرسالة - خطأ ، صح تم التعديل .. الخ .

5- تقرأ بيانات JSON ، و تطبعها للمستخدم .

اقرأ عن AJAX و JSON ، ويمكن أن تستخدم JQuery للاختصار ،

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#3

صدقت ..

جزاك الله خير ..

طيب هل هناك في أكواد php ما يدعم ظهور نافذة تنبيه ؟؟

مثل الـ alert في الجافا سكريبت ؟؟

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