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

النموذج (ال Form) لا يرسل البيانات المدخلة بسبب تعطيل Register_globals

بدأه Philosophy في 8 مارس 2008 · 11 رد · 1,270 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

من المعروف أنّه إذا كان لديك نموذج (Form) بسيط جداً مثل التالي :

<html>
<head>
<title>ما اسمك</title>
</head>
<body>

<form method = "get"  action = "hiUser.php">
من فضلك اكتب اسمك :
<input type = "text"
	   name = "userName"
	   value = "اكتب اسمك هنا">
<br>
<input type = "submit" value="إرســــــال">

</form>
</body>
</html

و الملف hiUser.php يحتوي على ما يلي :

<html>
<head>
<title>Hi User</title>
</head>
<body>

<?
  print "<h3>أهلا بك يا , $userName!</h3>";
?>

</body>
</html>

فإنّ بعض ملقّمات الويب تقوم تلقائياً بإنشاء متغير (Variable) يحمل نفس اسم عنصر النموذج ( الـ Form)

و لكن البعض الآخر من ملقمات الويب يقوم بتعطيل ملف register_globals

مما يتسبب بعدم الإنشاء التلقائي للمتغير !!

فيضطر المبرمج أن ينشيء متغيراً ليتجاوز هذا التعطيل ..

و هذا ما حدث معي !!

حيث أن المستضيف يضع register_globals = off

و حتى لو قمت بتغييره إلى on فهذا يتسبب بمشاكل أمنية كما هو معروف ..

حاولت أن أطبق الحلول الموجودة على هذا الرابط لاستعمال $_POST و $_GET و لكن لم أنجح !!

هل من مساعدة بارك الله فيكم ..

post-151844-1204953388_thumb.jpg

post-151844-1204953655_thumb.jpg

تم تعديل هذه المشاركة بواسطة Philosophy في 8 مارس 2008 في 09:05

#2
<html>
<head>
<title>Hi User</title>
</head>
<body>

<?
$user=$_GET['user'];
  print "<h3>أهلا بك يا , $user!</h3>";
?>

</body>
</html>

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

#3

شكراً لمداخلتك أخي العزيز

و لكن ظهر لي :

اقتباس
أهلا بك يا , $user!

أين الخطأ ؟

تم تعديل هذه المشاركة بواسطة Philosophy في 8 مارس 2008 في 09:37

#4

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

اخي الكريم جرب هذا :

<html>
<head>
<title>Hi User</title>
</head>
<body>
<?php
$user = $_GET['userName'];
print "<h3>أهلا بك يا ,".$user."!</h3>";
?>
</body>
</html>

تم تعديل هذه المشاركة بواسطة عدوووون في 8 مارس 2008 في 11:45

سبحان الله والحمد لله ولا اله الا الله و الله اكبر

اللهم صلي وسلم وبارك على سيدنا محمد وعلى اله وصحبه وسلم

#5
<html>
<head>
<title>Hi User</title>
</head>
<body>
<?
$user=$_GET['user'];
print "<h3>أهلا بك يا ,". $user!."</h3>";
?>
</body>
</html>

جرب هذا أيضا .

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

#6

أخي عدوووون طريقتك نجحت معي !!

و لكني لاحظت أنك وضعت نقطة قبل و بعد .$user.

فما فائدتها ؟ و متى نلجأ إليها ؟ و ما عملها بالضبط ؟ أرجو التوضيح للفائدة ..

و شكراً أخي الكريم ...

#7

أخي SIFE-C (اسم حقل النموذج) هو userName

و بالتالي يجب أن نكتب ما يلي :

$_GET['userName']

كما تفضل الأخ عدوووون جزاه الله خيراً .

بارك الله فيكما جميعاً..

#8
Philosophy كتب:
أخي عدوووون طريقتك نجحت معي !!

و لكني لاحظت أنك وضعت نقطة قبل و بعد .$user.

فما فائدتها ؟ و متى نلجأ إليها ؟ و ما عملها بالضبط ؟ أرجو التوضيح للفائدة ..

و شكراً أخي الكريم ...

تم تعديل هذه المشاركة بواسطة Philosophy في 10 مارس 2008 في 00:45

#9
Philosophy كتب:
أخي SIFE-C (اسم حقل النموذج) هو userName

و بالتالي يجب أن نكتب ما يلي :

$_GET['userName']

كما تفضل الأخ عدوووون جزاه الله خيراً .

بارك الله فيكما جميعاً..

لم أنتبه إلى إسم الحقل .

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

#10
Philosophy كتب:
أخي عدوووون طريقتك نجحت معي !!

و لكني لاحظت أنك وضعت نقطة قبل و بعد .$user.

فما فائدتها ؟ و متى نلجأ إليها ؟ و ما عملها بالضبط ؟ أرجو التوضيح للفائدة ..

و شكراً أخي الكريم ...

عزيزي النقطه تستخدم لضم نص الى نص معين ..

بمعنى انت لديك المتغير $user يحتوي على الاسم الذي كتبته في مربع النص ..

وانت تريد اضافة نص يسبق الاسم مثلاً مرحبا بك يا ......!

اتمنى ان تكون الصورة قد وضحت :) ...

موفق عزيزي ...

#11
ماجددج كتب:

عزيزي النقطه تستخدم لضم نص الى نص معين ..

بمعنى انت لديك المتغير $user يحتوي على الاسم الذي كتبته في مربع النص ..

وانت تريد اضافة نص يسبق الاسم مثلاً مرحبا بك يا ......!

اتمنى ان تكون الصورة قد وضحت :) ...

موفق عزيزي ...

طيب ما رأيك أن الكود يعمل بنجاح إذا كتبته بالشكل التالي ( و بدون النقطتين ) :

print "Hi there , $user";

مع أننا هنا نضم نص الى نص معين كما تقول يا أخي ماجددج و ( لم نستعمل فيه النقطتين ) و مع ذلك فهو سليم و يعمل بشكل صحيح !!

إذن : الخلاصة التي يمكن فهمها مما سبق هي : أنه إذا وضعنا علامتي الاقتباس حول المتغير "$user" و كان هذا المتغير نفسه داخل علامتي اقتباس أخريتين ، ففي هذه الحالة فقط يجب استعمال النقطتين حول هذا المتغير .

أما لو أزلنا علامتي الاقتباس اللتان تحيطان بالمتغير فإنه يجب الاستغناء عن النقطتين .

هذا ما فهمته بالتجربة :) و لست متأكداً من هذا الاستنتاج !!

أعتقد أن الموضوع سهل للغاية و لا يحتاج كل هذا الوقت للإجابة عليه ...

أين خبراء الـ PHP ؟ :S

تم تعديل هذه المشاركة بواسطة Philosophy في 11 مارس 2008 في 03:59

#12

الحمد لله وجدت الجواب بعد بحث طويل :wacko:

الجواب : لا فرق بين هذه و هذه

يمكن كتابة الكود بهذه الطريقة أو تلك و لك حرية الاختيار

الطريقة الأولى :



$var1="My name is ";

echo $var1 . "ahmad";

?>
<?php

الطريقة الثانية :



$var1="My name is ";

echo "$var1 ahmad";

?>
<?php

الطريقة الثالثة :



$var1="My name is ";

echo "".$var1." ahmad";

?>
<?php

تم تعديل هذه المشاركة بواسطة Philosophy في 15 مارس 2008 في 00:39

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…