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

شباب ما الخطاء في هذه الكود

مغلق
بدأه Almorshid في 16 مايو 2007 · 8 رد · 956 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

شباب اريد ان اعرف ما هو الخطاء في هذه الكود

<!doctype html public "-//W3C//DTD HTML 4.0 //EN"> 
<html>
<head>
	   <title>لغتك المفضلة</title>
</head>
<body>
  <?
$tr= date ('d-m-Y');
echo '
<form action="fib.php" method="get">
اسمك
<br>
<input type="text" name="your_name">
<br>
ماهي لغة البرمجة المفضلة لديك
<br>
بي اتش بي<input type="radio" name="lan" value="PHP"><br>
سي شارب<input type="radio" name="lan" value="C#"><br>
فيجول بيزك<input type="radio" name="lan" value="VB"><br>
<input type="hidden" name="today" value="$tr">
<input type="submit" value="صوت">
<input type="reset" value="اعادة تعيين">
</form>'
;?>
</body>
</html>

<!doctype html public "-//W3C//DTD HTML 4.0 //EN"> 
<html>
<head>
	   <title>اختيارك هو</title>
</head>
<body>
  <?
  $sp="*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-";
echo'
<p dir="rtl"><font face="tahoma" size="2">
الاسم:
<br>$your_name
<br>$sp<br>
الاختيار:
<br>$lan
<br>$sp<br>
التاريخ:
<br>$today
</font></p>'
;
?>
</body>
</html>

وعند تنفيذ الكود يظهر

الاسم: 
$your_name 
$sp
الاختيار: 
$lan 
$sp
التاريخ: 
$today

ولكم شكري مقدماً

#2

أعتذر عن تأخري ولكني تابعت المنتدى منذ فترة أنقطعت فيها عن المشاركات نتيجة عدم تجاوب الأعضاء

المهم : أخي يمكنك كتابة المتغيرات بين علامة تنصيص مفردة بينها نقطة مثال '.$your_name.'

أو وضع النص كاملا بين "بيانات الجلب "

وأي أستفسار أنا بالخدمة

دعوة لرسم المستقبل

ASOFT php Programmer

#3

الف شكر اخي amisoft ساقوم بتجربتها واخبرك بالنتيجة.

#4

عند استخدام أمر echo أو print مع علامة تنصيص مفردة ' فلن تتمكن من استرجاع قيم المتغيرات إلا في حالتين، الأولى ما ذكره الأخ amisoft والحالة الأخرى هي استخدام علامة تنصيص مزدوجة ".

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

echo "<input type=\"text\" />";
echo "<input type='text' />";

دائما هناك صورة غير واضحة بشكل كبير عن كيفية استخدام علامة التنصيص المفردة وعلامة التنصيص المزدوجة. من الأفضل دائما أن تستخدم علامة تنصيص مفردة إلا إذا أردت استخدام متغيرات فمن الأفضل استخدام علامة تنصيص مزدوجة.

الفرق بينهما من ناحية علمية أن محرك االغة الأساسي عندما يقرأ الكود اللذي كتبته فهو ينظر لما بعد الأمر echo أو print فإذا وجد علامة تنصيص واحدة فسيعرف أن لا حاجة للبحث عن متغيرات بداخله وينتظر فقط وصوله لعلامة التنصيص المفرة الأخرى ليتم الأمر وهذه الطريقة تسرع بشكل كبير تنفيذ الكود. ولكن عندما يجد علامة تنصيص مزدوجة فهو يمر على كل شيء بين علامتي التنصيص بحثا عن متغيرات لينفذها. وهذه الطريقة تأخذ وقت أكثر قليلا من ذي قبل.

أتمنى أن الصورة واضحة

sign3.jpg
#5

الاخ بالاضافه الى الى شرح الاخوه سابقه انا كان عندي مشكله عندما قمت بااستخدم echo بعلامة التنصيص المزدوجة فحدث خطاء وعندما قمت بحذف جميع علامة التنصيص المزدوجة داخل الفورم احتلت المشكله مع العلم اني استخدم المحرر dreamweaver2004لا اعرف ان هذ ا يعتمد على المحرر الذي تستخدمه ام لا ولكن جرب وان شاء الله تحتل المشكله وسيكون الكود حقك با الشكل التالي

<!doctype html public -//W3C//DTD HTML 4.0 //EN> 
<html>
<head>
	   <title>لغتك المفضلة</title>
</head>
<body>
  <?
$tr= date ('d-m-Y');

echo ("<form action=fib.php method=get>
اسمك
<br>
<input type=text name=your_name>
<br>
ماهي لغة البرمجة المفضلة لديك
<br>
بي اتش بي<input type=radio name=lan value=PHP><br>
سي شارب<input type=radio name=lan value=C#><br>
فيجول بيزك<input type=radio name=lan value=VB><br>
<input type=hidden name=today value=$tr>
<input type=submit value=صوت>
<input type=reset value=اعادة تعيين>
</form>");
;?>
</body>
</html>

بقدر الكد تكتسب المعالي ... ومن طلب العلا سهر الليالي

ومن رام العلى من غير كد ... أضاع العمر في طلب المحالِ

#6

الف شكر اخي عبدالله عياش على الشرح الوافي

هكذا الصورة وضحت

اخي النورس مشكور يا عزيزي طريقتك 100% انا ايضا استخدم دريم ولا اعتقد انه يعتمد على المحرر انما على السيرفر.

اخي عبدالله عياش انت قلت "من الأفضل دائما أن تستخدم علامة تنصيص مفردة إلا إذا أردت استخدام متغيرات فمن الأفضل استخدام علامة تنصيص مزدوجة". فلنفرض ان استخدم علامة تنصيص مفردة بعد echo واستخدمت علامة التنصيص المفردة ايضاً مع المتغيرات بهذه الصورة '.$your_name.' كما اشار اخي amisoft. علي ما اعتقد ان هذا يسرع عمل الكود على حسب ما فهمت. اذاً لماذا تنصح باستخدام علامات التنصيص المزدوجة في حالة وجود المتغيرات اذا كانت تبطئ تنفيذ الكود.

#7

طريقة amisoft جيدة وأنا أستخدمها أحيانا.

هناك فروقات أخرى طفيفة تجعلك تحتار قليلا بين متى تستخدم إحدى الطريقين، مثلا أوامر السطر الجديد في اتش تي ام ال r\ و n\ يتم تجاهلها عند استخدام علامة التنصيص المفردة. وأيضا علامة $ بدون متغير ستسبب مشكلة في علامة التنصيص المزدوجة مالم تعطيها علامة التجاوز \.

في النهاية يكون الاختيار لك وما يناسبك وما يجعل الكود اللذي تكتبه يعمل بشكل ممتاز. ولكن حاول بقدر الإمكان تدارك الأشياء اللتي ذكرتها لك سابقا وستجد في النهاية أن البرنامج اللذي كتبته سيعمل بشكل جيد. الفروقات في السرعة ستظهر بشكل كبير عند استخدام كمية هائلة جدا جدا من المخرجات في وقت واحد وبداخلها متغيرات كثيرة جدا جدا. أما في الاستخدامات العادية فستكون النتائج متقاربة بشكل كبير جدا ولن تلاحظ الفرق أبدا.

أتمنى لك التوفيق

sign3.jpg
#8

مشكورك عزيزي عبدالله ومعليش تعبتك معاي شوية بس اخوك لسة مبتدئ.

#9

لا شكر على واجب

sign3.jpg

هذا الموضوع مغلق.

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