-
إلى الإخوه مبرمجي البيرل وعلى رأسهم الاخ المبرمج و الاخ
dbman ..
أقوم بإنشاء برنامج يقدم خدمة عداد زوار مجاني .. وقد إنتهيت منه تقريباً لكن واجهتني مشكله لم أفهم أين الخلل بها .. وهي كالتالي :
يقوم المستخدم بتعبيئة فورم معين به خانة تسمى ( بدء العد من ) يجب أن تكون تحتوي على رقم بين 0 إلى 9 فقط هل يمكن أن تمدوني بالكود المناسب لهذه الحاله انا إستخدمت هذا الكود لكنه لايقبل الصفر :
<BLOCKQUOTE> <font> كود: </font> <div align="ltr"> <center> <table border="0" width="80%" dir="ltr" bgcolor=="#000000"> <tr> <td width="100%"> <pre> <font color="#ffffff">
if (($StartCount eq "") | | ($StartCount =~ /[;<>\'|:!@#$%^&*()]/)) {
&ErrorHTML(" <CENTER><B> خــطــأ فــي خــانــة ( بدء العداد ) </B></CENTER><BR><CENTER>قـم بتصحيح الخطأ ثم أعد المحاولة </CENTER>");
exit(0);
</font> </pre> </td> </tr> </table> </center> </div> </BLOCKQUOTE>
تلخيص المشكلة : الكود الموجود في الأعلى لايقبل الصفر ؟!
مازن مليباري
-
السلام عليكم ..
الأخ NasaBaby ،
في البداية ، أريد أن أسألك سؤال ؟ هل هذا النص الموجود هنا هو نفسه من الشفرة الأصلية ؟ حيث أن التعامل معها دقيق ...
على العموم ، إليك طريقة دقيقة لحل هذه المشكلة :
<BLOCKQUOTE> <font> كود: </font> <div align="ltr"> <center> <table border="0" width="80%" dir="ltr" bgcolor=="#000000"> <tr> <td width="100%"> <pre> <font color="#ffffff">
if ( ($StartCount =~ /^\s+$/) | | ($StartCount !~ /^[0-9]{1}$/) )
{
print "<center><b>خطأ في خانة بدء العد</b><center> ..... ";
}
</font> </pre> </td> </tr> </table> </center> </div> </BLOCKQUOTE>
-
كيف يعني أخوي مافهمت عليك ..
نعم هذا جزء من الشيفره ؟!
على فكرة ممكن تشرح لي وش سويت ؟!
-
كما قال الآخ dbman .. وهذه أيضا كافية :
<BLOCKQUOTE> <font> كود: </font> <div align="ltr"> <center> <table border="0" width="80%" dir="ltr" bgcolor=="#000000"> <tr> <td width="100%"> <pre> <font color="#ffffff">
if ($StartCounter !~ m/^[0-9]$/) {
print "Error";
}
</font> </pre> </td> </tr> </table> </center> </div> </BLOCKQUOTE>
كل ما عليك فعله هو التأكد من أن محتوى المتغيرة يحتوي على عدد واحد فقط، تفسير القالب أو الـ Patern الذي بالأعلى هو :
^ = بداية النص
[0-9] = عدد بين صفر و 9
$ = نهاية النص
أي أنك تريد عددا بين 0 و 9 يكون واقعا بين بداية النص ونهايته، أي أن يكون النص كله عبارة عن عدد بين صفر و 9 .. لذلك القالب السابق يكفي.
على فكرة لقد انتهيت من كتابة مقالتين أحدهما عن الـ Regular Expressions ولكنني مشغول جدا ولا أجد الوقت الكافي لإدخالها وهي تشحل كل شيء عن هذه القوالب في لغة perl.
------------------
http://www.ArabBuilder.com
-
شكراً أخي المبرمج ..
لكن فهمتم قصدي خطأ ..
أقصد أن يكون العدد المدخل لا يحتوي سوى على الأعداد من 0 - 9 يعني
100
239
4678
1
4657
إلى آخره
أي أنه لايقبل الاحرف ..
الكود الذي قمت بوضعه في الاعلى لايقبل الرقم صفر أي أنه لو كتبت له
100
أو
1900
لن يقبله وسوف يقول لك أن هذا خطا !!
-
الأاخ المبرمج هل يمكن أن ترسل الدرس لي على العنوان
maz7@dr.com
-
الأخ مازن مليباري ..
المشكلة ليست في وضع الدرس على الويب .. المشكلة في إدخال الدرس إلى الكمبيوتر، الدرس الموجود لدي عبارة عن حبر على ورق .. على أي حال لقد قمت بإدخال عدة صفحات منه اليوم سأحاول أن أنتهي وأنشره اليوم أو غدا إن شاء الله.
------------------
http://www.ArabBuilder.com
-
عفوا الأخ مازن .. لقد فهمت المطلوب الآن هذا هو الحل :
<BLOCKQUOTE> <font> كود: </font> <div align="ltr"> <center> <table border="0" width="80%" dir="ltr" bgcolor=="#000000"> <tr> <td width="100%"> <pre> <font color="#ffffff">
if (($StartCounter eq "") | | ($StartCounter =~ m/[^0-9]/)) {
print "Error";
exit;
}
</font> </pre> </td> </tr> </table> </center> </div> </BLOCKQUOTE>
------------------
http://www.ArabBuilder.com
ضوابط المشاركة
- لا تستطيع إضافة مواضيع جديدة
- لا تستطيع الرد على المواضيع
- لا تستطيع إرفاق ملفات
- لا تستطيع تعديل مشاركاتك
-
قوانين المنتدى
أضف موقعك هنا|
اخبار السيارات |
حراج |
شقق للايجار في الكويت |
بيوت للبيع في الكويت |
شركة كشف تسربات المياه |
شركة عزل اسطح بالرياض |
عزل فوم بالرياض|
عزل اسطح بالرياض |
كشف تسربات المياة بالرياض |
شركة عزل اسطح بالرياض