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

إرسال و إستقبال البيانات من نفس الصفحة

بدأه SIFE في 2 ديسمبر 2007 · 9 رد · 2,014 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

عندما كنا نرسل البيانات فإننا نقوم بتحديد الصفحة التي ستقوم بإستقبالها كالتالي :

<form action="get.php" method="POST">

و ستقوم الصفحة get.php بإستقبال البيانات لكن إن أردنا أن نسقبلها من نفس الصفحة فإننا سنتبع إسم صفحتنا ب :

? بعدها المتغير = قيمته و الصورة التالية ستوضح أكثر :

post-55473-1196807476_thumb.jpg

ستلاحظ أنه من الممل أن تكتب إسم الصفحة أو في حالة أنك لا تعرف المسار الذي أنت فيه هنا تظهر فائدة المتغير PHP_SELF$ الذي دوره تحديد إسم الصفحة التي نعمل عليها و إن أردت أن تجربه قم بطباعته أما طريقة إستخدامه فهي كالتالي :

<form action=$PHP_SELF?arabteam2000=sife-c method=POST>

الآن فهمنا طريقة كتابته لكن بقت طرق إستخدامه و أمثلة عليه حتى يتكامل النظري مع التطبيقي ، يمكن أن نتحكم بإظهار النتائج إما بالشرط switch حيث تظهر النتائج و كأنها في صفحة جديدة أو بالشرط if و ستظهر النتائج في نفس الصفحة مع الحفاظ على ما تحتويه الصفحة و في هذا المثال البسيط سنقوم بكتابة إسم المستخدم و كلمة السر ومن ثم سنطبعها ، سنستعمل كلا من الشرطين لتكون الصورة أقرب و الفائدة أعم :

post-55473-1196807504_thumb.jpg

لاحظ في السطر الأول ، لقد قمت بكتابة المتغير PHP_SELF$ داخل وسمي ال PHP حتى يتم تنفيذه بنجاح ثم وضعت المتغير arabteam2000 وأعطيته القيمة الأفتراضية sife-c أما الباقي فأنتم أدرى به .

نمر الى السطر 7 حيث نقوم بوضع أداة الشرط if أما المتغير GET_$ فهو يقوم بالتحقق إن كانت قيمة المتغير تحمل القيمة التي وضعناه من قبل في action أما الباقي فأنتم أدرى به أيضا .

post-55473-1196807526_thumb.jpg

كلنا نعرف switch و إن لم نكن نعرفها فقتل أنفسنا خير لنا هاهاهاهاها ، في السطر 2 قمت بوضع المتغير الذي كتبته في النموذج بعدها نستعمل الswitch حتى تقوم بمقارنته ووضعة الوضع الإفتراضي هو نموذج بسيط ندخل فيه البيانات ، الأن أنظروا إلى السطر 10 و لا تحدقوا به فتخيفوه هاهاها ، لقد وضعت إحتمال تكون فيه قيمة المتغير هي sife-c فيقوم بطبع ناتج المدخلات .

حتى الآن عرفنا كيف نرسل و نستقبل البيانات من نفس الصفحة لكن ماذا لو أردنا أن نرسل البيانات و نستقبلها في حقول ، سأعرض لكم الطريقة سريعا على أساس أنكم فهمتم و أي إستفسار أنا على الخط الساخن رقم الهاتف : 0000000

post-55473-1196807551_thumb.jpg

كما قلتم لكم سابقا أنظروا إلى السطر 11 و لا تحدقوا به فتخيفوه ، لقد قمت بوضع قيمة الحقل text هي قيمة المتغير name$ التي تحمل ما كتبه المستخدم حيث ينطبق نفس الكلام على السطر 12 .

الدرس

تم تعديل هذه المشاركة بواسطة B.M.AbdelAziZ في 5 ديسمبر 2007 في 01:33 — السبب: ارفاق الصور

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

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

www.it-scoop.com

#2
 عدد مرات الشكر :: 1 *

من قام بذلك

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

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

www.it-scoop.com

#3

تشكر اخي الكريم والله يعطيك العافية

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

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

#4

أخي هل ممكن أن تريني طريقة معرفة من شكرني

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

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

www.it-scoop.com

#5

بارك الله فيك وجزاك خير الجزاء

تقبل خالص شكري وتقديري

#6

شكرا أخي عبدالعزيز لأني حاولت رفع الصور لكن بدون فائدة

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

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

www.it-scoop.com

#7

بارك الله فيك

شبكة الأخوة الإسلامية

http://alokhowa.net

admin@alokhowa.net

#8

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

أنا عملت فورم و كل شي تمام بس عند اعادة التحميا يعاد ارسال البارمتر و تدخل البيانات مرة اخرة

<iframe id="messages_show" name="messages_show" src='massegphp.php'?cid=96672&offset=0" border="0" scrolling="auto" width="100%" height="40%"></iframe>

<div><form action="send_masseg.php" method="post"> 
<p>
  <textarea name="masseg" cols="130" rows="5"></textarea>
</p>
  <p>
    <input  type="submit" name="submit" value="send"/>
  </p>
</form>
</div>
<?php


    $active = 1111;
    $con = mysql_connect("localhost","root","");
    $db = mysql_select_db("samirphp",$con);
     $dates=date("d-m-Y  |  H:i"); 
    $postt =$_POST[masseg]  ;
    if(strlen($postt) > 0){
    if($_POST[masseg]!= ""){

             $query2 = "insert into users(masseg,user,date) values('$postt','$active','$dates')" ;
            $resul = mysql_query($query2,$con);

        }
    }

      echo '<br/>' ;

?>

شكراً لك اخي الكريم

#9

عليك أولا أن تفحص إذا النموذج تم إرساله أم لا لهذا سوف تستخد الدالة isset :

تعديل بسيط على شيفرتك:

if(isset($_POST['submit']))
{
$active = 1111;
$con = mysql_connect("localhost","root","");
$db = mysql_select_db("samirphp",$con);
$dates=date("d-m-Y | H:i");
$postt =$_POST[masseg];
if(strlen($postt) > 0){
if($_POST[masseg]!= ""){

$query2 = "insert into users(masseg,user,date) values('$postt','$active','$dates')";
$resul = mysql_query($query2,$con);

}
}

echo '<br/>';

}

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

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

www.it-scoop.com

#10

هناك ملحوظه كنت أود إضاحها و هى بخصوص زر submit فهناك مشكله معه و هى مع IE فإذا ضغط الزائر على زر Enter دون الضغط على زر submit و المؤشر فى أى حقل من الحقول فلن يتم تضمين submit مع النموذج و بهذا إختبار submit بداله isset لا يتم لأنه ليس موجود و لتفادى هذه المشكله قم بإضافه حقل مخفى و إعطيه قيمة و إسم مختصريين و فائدته هو التحقق من أن النموذج تم إرساله و ذلك بدل التحقق من زر submit.

هذه المشكله كنت أواجها مع IE6 و لا أعرف هل هى مازالت موجوده فى IE7 و IE8 أم لا لأننى أعتمد على الطريقه التى ذكرتها دائماً و لذلك تناسيت إختبار الإصدارت الجديده.

س: لماذا أضيف حقل مخفى فى حين أننى من الممكن أن أتحقق من أى حقل موجود بالنافذه؟

ج: ببساطه هو تحديد إسم للنموذج كأنه عنوان له لأن الحقول تتغير أسمائها من نموذج لأخر.

س: إذا لماذا لا نستخدم إسم للنوذج نفسه أى نضع إسم داخل وسم <form> ؟

ج: هذه الطريقه أيضاً تصلح و لكنها تواجه مشاكل مع IE أيضاً :lol:

أعرف أننى مقصر فى حق المنتدى فى إضافه مواضيع جديده و لكن الوقت ضيق و إعداد الموضوع يتطلب وقت كبير حتى يتم إلمام جميع الجوانب له.

تم تعديل هذه المشاركة بواسطة asm-soft في 23 يونيو 2009 في 11:00

forum-signature-01.gif

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