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


منتديات الامن والحماية تعليم الحماية كشف تلغيم حل مشاكل الويندوز تسريع الويندوز برامج حماية برامج مجانية كراك اقوى البرامج تعليم نظام لينكس تحميل نظام لينكس احتراف نظام لينكس اخر اخبار الاكترونيات
 
الرئيسيةالتسجيلدخول

شاطر | 
 

 تتبع وتصيد ومنع الاخطاء_PhP

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل 
كاتب الموضوعرسالة
5Lo0oDy HaCkEr
Admin
Admin
avatar

عدد المساهمات : 379
تاريخ التسجيل : 15/05/2014
الموقع : http://anonymous32.allgoo.net

مُساهمةموضوع: تتبع وتصيد ومنع الاخطاء_PhP   الخميس أكتوبر 30, 2014 6:43 pm

تتبع وتصيد ومنع الاخطاء
(avoiding and handling errors)
ھو من المصطلحات الشائعة والشيقة في عالم البرمجة ، ھذا المصطلح يشير إلى debbug إن مصطلح ال
كيفية إصلاح أخطاء البرنامج وتوقعھا قبل حدوثھا ، ھناك أنواع من الأخطاء تحدث بسبب المبرمج وھناك
أنواع من الأخطاء تحصل بسبب المستخدم ، في العادة يجب أن يكون المبرمج متآلفاً مع مصطلح تتبع
الأخطاء وإصلاحھا .
قد يكون من أھداف تتبع الأخطاء الحماية بقدر أھميه البرنامج الجاري العمل عليه أو الموقع فكلما كان
الموقع مھماً كان وجوب حمايته أكبر .
قد يكون من الأسباب التي تسب ب تدميراً للمواقع ھو أن صاحب الموقع يغطي كل صغيرة وكبيرة عن
برنامجه الذي يركبه في موقعه وقد يكون برنامجه ھذا غير محمي بسبب كاف أو يكون مسير بعدة ملفات
فيقوم شخص بحذف ملف من الملفات الأساسية بسبب عدم دقة في التراخيص المعطاة مما يؤدي إلى
دمار الموقع نھائياً .
وقد يكون صاحب الموقع مھملاً في الحد ذاته فلا يحتفظ بالمعلومات السرية لموقعه مما يسبب مشاكل
أكبر من التدمير مثل احتلال الموقع بشكل كامل .
لھا طريقتھا وتقنيتھا الخاصة التي تسير عليھا فھي ليست مثل الجافا وليست PHP رسائل الخطا في ال
cgi مثل
لا تقوم بإرسال الخطأ إلى السيرفر بل تقوم بكتابة رسالة خطأ في مكان الخطأ . PHP فال
PHP قد يكون ھناك أخطاء يصعب تتبعھا أو معرفة مكانھا في الأصل ، وقد يكون ھذا بسبب أنك تستخدم ال
في صناعة موقع ديناميكي وتشرك معھا الجافا سكربت وتضع علامات التعليق الخاصة التي تقوم بإخفاء
الأخطاء في الجافا مما قد يجعلك تشعر بالحيره وتجن أين مكان الخطأ
<!- -
رساله الخطا
- - >
أنواع الأخطاء
ومنھا المنطقية ومنھا أخطاء تحدث في وقت التنفيذ (Syntax Error) ھناك أنواع من الأخطاء منھا الإملائية
ومثال الأخطاء الإملائية :
<?
Eco “1”;
من المفترض أن تكت التالي : //
Echo “1”;
?>
Parse error ھذا سيعطيك رسالة خطأ
في نھاية الدالة : (semi-colon) ومن الأخطاء الإملائية نسيان الفاصلة المنقوطة
<?
Echo “hello”
من المفترض أن تكت التالي : //
Echo “hello”;
?>
رسا لة خط أ لكن العج يب أنه لن يعطيك إياھا بشكل صحيح فرسا لة الخط أ تشير PHP ھنا سوف يعطيك ا ل
إلى أن السطر الرابع يحتوي على الخطأ بينما الخطأ ھو في السطر الثاني .
وھي الاقواس ) : ) brace وھناك خطأ آخر يحصل بسبب نسيان ال
<? Php
for ($loop = 0 ; $loop < 5 ; $loop ++ )
{
Echo “”;
?>
اذا كنت قد نس يت إغلاق القوس فھذا من الأ خطاء الشائع ة ، والأخطاء الإملائية لايمكن حصرھا ، إنھا أشبه
PHP بقواعد اللغة ، لكن أكثر الأخطاء الإملائية الشائعة في برامج ال
1 – نسيان الأقواس . مثال :
<?
for ($loop = 0 ; $loop < 5 ; $loop ++ )
{
for ($loop1 = 0 ; $loop1 < 10 ; $loop1 ++ )
{
for ($loop = 0 ; $loop < 5 ; $loop ++ )
{
code ….
}
}
في المثال السابق ينقصنا قوس إغلاق التكرار الأخير ( { )
2 - نسيان الفاصلة المنقوطة . مثال :
<?
Echo 10
<?
مثال : . function 3 - خطأ إملائي في اسم
<?
Htmlspecialchar($I);
?>
سيعطيك رسالة خطأ :
Fatal error : call to Undefined function : htmlspecialchar().
وتصحيحھا أن تكون :
<?
Htmlspecialchars($I);
?>
4 - نسيان إغلاق النص . مثال :
<?
Echo “arabbuilder;
?>
Parse error نسي ال(")في نھاية الكلمة . وسيعطيك
(Logical Errors) الأخطاء المنطقية
إن الأ خطاء المنطقي ة ھي الأ كثر صعو بة في التتتبع فقد تجد برنامجك يعمل بشكل صحيح وبكل سلام ة
ولكنه عند نقط ة ما لايتم تنفيذھا كما تريد أنت ، لنضرب مثلا على خط أ منطقي بسيط جد اً ، لنفرض أنك
قمت بعمل نموذج مكون من مربع نص وزر ، عند ضغطك لھذا الزر ف أنت تريد أن يتم كتابة كلمة كبير إذا كان
الرقم أكبر من 30 وكلمة صغير إذا كان الرقم أصغر من 30 لنقم بكتابة الكود للمثال الأول :
<?
echo " ; ": ادخل عمرك
echo '<br>
<form method = "post" action = "age.php">
<input type= "text" name = "age">
<br>
<input type= submit value = "؟ < "ھل أنا كبير أم صغير
</form>' ;
?>
اكتب الكود التالي : age.php في ملف
<?
If ($age<30) echo “ ;”انت صغير
If ($age>30) echo “ ;”انت كبير
?>
سيعمل السيكريبت بشكل صحيح .. ولكن ربما تخطأ أنت في كتابة العلامات المنطقية ( التي باللون
الأحمر ) فتأتي النتائج بشكا خاطئ .
والتي تكون قد تقوم بإيقاف (Run times error) ومن الأخطاء المطنقية الأخطاء التي تقع في وقت التشغيل
برنامجك بشكل كامل
مثال :
<?
$t=0;
$r=1;
$f=$r/$t;
?>
وعندھا سينتج لك الرسالة التالية
Warning : Division by zero in (path) on line (line number )
وھو لا يقوم بإيقاف البرنامج نھائي اً بل يقوم ب إخراج (unexpected) ھناك نوع آخر من الأ خطاء المنطقي ة
رسالة الخط أ في مكان الخط أ أو قد يقوم بتنفيذ البرنامج و إخراج البيانات بشكل غير صحيح أو قد لا يقوم
بإخراج بيانات
وھو المثال الاول الذي ذكرناه سابقا (تقييم العمر) .
اخطاء التكرارات
قد يكون لديك أيضا تكرار فيه خطأ ولا يقوم بالتوقف نھائياً مثل ھذا التكرار :
$c=1;
$t=true;
while ($t=true)
{
$c++;
}
ثم يقوم بإيقافه عند تعديه رقم ($c) لم نقم بعمل شي يوقف التكرار مثل أن تضع شرط يختبر قيمة المتغير
معين وعلى ذلك فإن التكرار سيستمر بشكل غير متوقف ولن يعمل البرنامج .
function عدم ارجاع قيمه من
مثال :
<?
Function ($d)
{
$d =$d+$d;
}
لكي ننھي الدالة أو قد تكون الدالة تحتوي على أكثر من قيمة وننسي return الخطا ھنا اننا لم نستخدم ال
أن نقوم بتحديد القيمة النھائية للدالة
الخلط في المعاملات الحسابية والمنطقية
مثال :
If ($y=10) echo 12 ;
والمفترض أن تكون :
If ($y= =10) echo 12 ;
أفكار جيدة لتفادي الأخطاء
التعليقات
إن من الأفكار الجيدة للتقليل من الأماكن التي تبحث فيھا عن الخطأ ھو وضع تعليقات لوصف وظيفة دالة
معينة . مثال :
<?
ھذه الكود يقوم بطباعة كلمة أحمد //
Echo “ ; ”أحمد
?>
الدوال
وأيضا من الأفكار الجيدة أن تقوم بتقسيم وظائف البرنامج على دوال بحيث أن لكل دالة وظيفتھا المعينة :
<?
/*
+- --------------------------------------------------------------+
| | ھذه الداله تقوم بقسمه العدد علي 2
+- --------------------------------------------------------------+
* /
function ($U)
{
$U=$U/2;
return $U ;
}
?>
Regular Expressions
ھذه التقني ة تساعدك على تفادي الأ خطاء في صفحتك عند حدوثه مثل أن يقوم مستخدم ما بكتاب ة بريد
ھذا البريد غير صحيح ولأ جل أن تقوم بمنع حصول أي خط أ مثل (a@y@.k.d : الكتروني غير صحيح (مثال
إنك (Regular Expressions) RE/ ذلك وتقييد العبارات التي يدخلھا المستخدم ف إنك تقوم بإستخدام ال
بالأصح تجعل قواعد للكلمات التي يدخلھا المستخدم فمثلا تجعل المستخدم لايدخل سوي أرقام أو حروف
فقط أو شكل معين من الكلمات ، تقوم أولاً بإنشاء نمط للكلمه التي تريد المستخدم أن يقوم بادخالھا .
(pattren) النمط
ماھو النمط ؟ مار أيك إذا كتب المستخدم جمل ة في مربع نص تحتوي على عد ة كلمات وتريد أن تتأكد من
وجود كلم ة معين ة وسط ھذه الجمل ة ، على حسب م ا اخذناه من معلومات على المصفوفات سابق اً
نستطيع فعل ذلك كالتالى :
<?
$words=”one, two, three, four, five,”;
$ty =explode (“”,$ty);
foreach ($ty as $w) {
if ($w = = “six”) echo “found string ‘two’”;
}
?>
يحتوي على جمل ة تتكون من عده كلمات وعندما أردنا فحصه قمنا باستخلاصه $words لقد كان المتغير
ومع ذلك الذي فعلناه فإن ھذا ، foreach في مصفوفة ثم بعد ذلك قمنا بفحص المصفوفة باستخدام التكرار
لاحظ الآ ن كيف نستخرجه بواسط ة ال Regular Expressions الاستخدام غير عملي بتاتاً وھنا تبرز قوه
: Regular Expressions
<?
$words=”one, two, three, four, five,”;
if (ereg(“one”,$words)) echo “ لقد وجدت العدد ‘ one’ “ ;
?>
الذي نريد أن نتأكد (pattern) ووضعنا في خانتھا الأولى النمط (ereg) في ھذا المثال قمنا باستخدام الدا لة
من وجوده (أوالكلمة المراد البحث عنھ ا) ووضعنا في الخان ة الثاني ة المتغير الذي سيتم البحث فيه عن
الكلمة أو النمط .
إذا تم العثور على الكلمة . true بإعطاء القيمة ereg تقوم الدالة
في الواقع ھناك استخدامات أكثر فعالية للأنماط .
يمكننا مثلاً تخزين الكلمة إذا تم وجودھا في مصفوفة خاصة كالتالى :
<?
$words=”one, two, one, four, five,”;
if (ereg(“one”,$words,$rok)) ;
echo $rok[0];
echo $rok[1];
?>
نقوم بوضع اسم المصفوف ة التي نريد تخزين البيانات في الخا نة الثالث ة .. لاحظ مع أنه يوجد كلمتين في
الجملة توافق النمط إلا انه أعطانا كلم ة واحد ة فقط إذ أن وظيفته أن يت أكد من وجود النمط في الجمل ة فقط
فإذا تأكد من وجودھا مرة واحدة استكفى واعتبر الموضوع قد انتھي .
ماذا لو أردنا من التأكد من عدة كلمات ، عند ذلك فإننا نفعل التالى :
<?
$words=”one, two, one, four, five,”;
if (ereg(“one”,$words,$rok)) echo $rok[0];
if (ereg(“two”,$words,$rok)) echo $rok[0];
?>
يقوم بإنشاء المصفوفة من جديد عند كل استعمال له فخذ حذرك من ھذه النقط ereg واريد أن أنبھك أن ال
حساس لحالة الأحرف لاحظ ھذا المثال : ereg أيضا فإن ال
<?
$words="one, two, vcx, four, five,";
if (ereg("One",$words,$rok)) echo $rok[0];
?>
مختلف . O لن يقوم بإخراج أي شي فقط لأن حرف الأيضا
يمكنك البحث عن كلمة يسبقھا فراغ مثلاً كالتالى :
<?
$words="one, two, vcxone, four, five,";
if (ereg("one",$words,$rok)) echo $rok[0];
?>
مثال آخر :
<?
$words="oned, two, vcxone, four, five,";
if (ereg("one",$words,$rok)) echo $rok[0];
?>
oned و vcxone غير موجودة بمفردھا إنما موجودة كجزء من one لاحظ في ھذين المثالين أنه مع أن كلمة
ورغم ذلك فإن الدالة لم تأخذ اعتبارا لذلك بينما لو كتبنا كالتالى :
<?
$words="oned, two, vcxone, four, five,";
if (ereg(" one",$words,$rok)) echo $rok[0];
?>
فإنه سيبحث عن الكلمة مفصولة عن أي حرف ولن يجد كلمة كذلك فلن يقوم بكتابة أي شي .
يمكننا أن نفحص قيمة موجودة في متغير كالتالى :
<?
$reu = "one";
$words="one, two, vcxone, four, five,";
if (ereg($reu,$words,$rok)) echo $rok[0];
?>
ولم يتطلب منا ذلك أي شي إضافي $word مع ereg بواسطة $rue ھل لاحظت أننا فحصنا قيم ة المتغير
غير اسم المتغير المراد البحث عن قيمته في الجمله .
استعمال بعض الأحرف بشكل خاص التي لھا استعمالھا الخاص بواسط ة Regular Expression يمكننا بال
Regular Expressions ال
ھي كالتالى : Regular Expression الأحرف الخاصة في ال
. * ? + [ ] ( ) { } ^ $ | \
Regular Expression ھذه الأحرف لھا معناھا الخاص في ال
فقديماً مثلاً كنا نقول أنه لا يمكننا أن نستخدم علامتي تنصيص متداخلة من نفس النوع كالتالى :
<?
$r=”u\””;
?>
ھذا المعني فإننا نقوم بوضع (\) قبل علامة التنصيص . PHP ولكي يتجاھل ال
فإن لل(.) قداستھا ولكي يتم تجاھلھا فإننا نستخدم ال(\) ereg ايضا مع ال
تقوم ال(.) بأخذ مكان حرف أو فراغ فمثلاً لاحظ المثال التالى :
<?
$P="I love koko";
if (ereg ("love....",$P,$R)) echo $R[0];
?>
ھل لاحظت الناتج ؟؟
نقوم بوضع (\) قبلھا . مثال : Regular Expressions ولكي يتم تجاھل قداسة ال(.) في ال
<?
$P="I love yamen";
if (ereg ("love\.\.\.\.",$P,$R)) echo $R[0];
?>
لأن ال(.) فقدت قداستھا وبدأ (love....) في ھذا المثال لن يتم طباعة أي شي لأنه لايوجد أي كلمة تطابق
التدقيق في الكلمة حرفاً حرفاً .
[xyz] صناعة فئة حروف
أقصد بذلك أنني احدد نطاق معين من الكلمة من الممكن أن يكون في ھذا النطاق أي حروف من الفئة
التي أقوم بتحديدھا أو الحروف التي أقوم بتحديدھا .
مثال :
<?
$y=”how are you ? “ ;
if (ereg(“h[oe]” , $y)) echo “true”;
?>
مثال e أو o ومن ثم يتبعھا أحد الحرفين h بالبحث عن أي كلمة تبدأ بالحرف regular expression ھنا قام ال
ھذه الكلمات :
Hey – He – Hew - Homer
ولكنھا لاتطابق :
Hty – Hnt - Hlay
أتمني أن تكون فھمت ما أرمي إليه
بأن لا يقوم باختيار كلمات تحتوي على حروف معينة وذلك regular expression يمكننا أيضا أن نقوم بإخبار ال
فقط بإضافة ^
<?
$y=”how are you ? “ ;
if (ereg(“h[^oe]” , $y)) echo “true”;
?>
فإنه يقوم e أو o ولاتحتوي على h بأن يقوم بفحص الجملة فإذا وجد أي كلمة تبدأ ب re نقوم ھنا بإخبار ال
false وإذا لم يجد يقوم باعطاء true بإعطاء
وھذا الكلام يطابق الكلمات التالية :
Hay - Hana - Hkg
ولايوافق ھذه الكلمات :
Home – Hore - Here
يمكننا استعمال اختصارات لبعض الأمور فمثلاً إذا كنا نريد كلمة لاتحتوي على أي رقم كنا سنكتب كالتالى
[^123456789]
يمكننا أن نستعمل اختصار لھذا الموضوع كالتالى :
[^0-9]
وحتي إذا أردنا أن يتأكد من وجود رقم من واحد الى تسعه فقط علينا مسح ال^
[0-9]
z الى a وأيضا الحروف الصغيرة من
[a-z]
وإذا نريد التأكد من عدم وجودھا
[^a-z]
نفس القصة مع الحروف الكبيرة .
ھناك اختصارات اخري لھذا الموضوع كالتالى :
الاختصار المطابق له معناه ووظيفته
0-9 ] أي رقم من 0 الى 9 ] \d
0-9 ^] ممنوع الأرقام من 0 الى 9 ] \D
9 أو حروف - 0-9 ] أي رقم من 1 A-Za-z_] \w
او احرف صغيره او_ A-Z
0-9 ^] عكس السابق A-Za-z_] \W
يقبل مساف ة أو سطر جديد [\t\n\r] \s
(tab) أو علامة جدولة
عكس السابق [^\t\n\r] \S
تحديد مكان الكلمة
يمكننا أن نقوم بتحديد مكان الكلم ة ، اقصد بذلك أنه يمكنك تحديد مكان الكلمة إذا كانت في بداي ة أو نھاي ة
النص ونستخد لھذا الأمر العلامتين (^)لتحديد المكان لبداية الجملة و ($) لنھاية الجمل .
مثال :
<?
$y="how are you ? " ;
if (ereg("^h",$y)) echo "true";
?>
true تساوي ereg كانت قيمة ال h بالبحث عن في الحملة فإذا وجد الجملة تبدا بحرف php ھنا سيقوم ال
false تساوي ereg وإذا لم يجد كانت قيمة ال
<?
$y="how gone?" ;
if (ereg("^g",$y)) echo "true";
?>
g خطأ لأن العبارة لاتبدأ بحرف ereg في ھذا المثال ستكون قيمة ال
يمكننا فعل العكس بواسطة العلامه ($) التي عملھا عكس (^) فھي تفحص إذا كان الحرف المراد فحصه
موجود في نھاية الجملة
مثال :
<?
$y="how g" ;
if (ereg("g$",$y)) echo "true";
?>
يمكننا أيضا اختيار إذا ما كان واحد من نمطين صحيحاً بواسط العلامة ( | )
<?
$y="how g" ;
if (ereg("^y | g$",$y)) echo "true";
?>
. true عند ذلك ereg بفحص الجملة فإذا وافقت أحد النمطين كانت قيمة ال PHP في ھذا المثال سيقوم ال
يمكننا أيضا تحديد إذا م ا كان حرف أو جمل ة متكرر ة بعدد من المرات أو مره واحد ة باستخدام أحد ھذه ا لثلاث
رموز ( * ، + ، ? )
تقوم علامه الضرب بالتحقق من أن الحرف الذي يسبقھا مكرر مرة أو أكثر أو غير موجود بتاتاً
مثال :
Bea*t
وتوافق :
Bet
Beat
Beaat
تقوم علامة الجمع (+) بالتأكد من وجود عنصر مرة أو أكثر :
Bea+t
وتوافق :
Beat
Beaat
Beaaaaat
أما علامة الاستفھام فتقوم بالتأكد من وجود عنصر مرة واحده أو عدم وجوده بتاتاً :
Bea?t
وتوافق :
Bet
Beat
وتأكد دائماً أن ھذه الثلاث علامات مسبوقه بحرف .
وعند إرادتك مثلاً التأكد من سبق حرفين أو ثلاث بشكل تحديدي يمكنك استخدام القوسين
مثال :
(wo)?man
ويوافق :
man
woman
يمكننا الت أكد من تكرر حرف بشكل معين من المرات أو أكبر من عدد معين من المرات أو أصغر من عدد
{x,y} معين من المرات باستخدام القوسين
مكرر مرتين إلى أربع مرات : (d) فمثلاً لو أردنا أن نتأكد من أن حرف
d{2,4}
أما إذا أردنا أن نتأكد من أنه مكرر أكثر من مرتين إلى عدد غير محدود من المرات :
d{2,}
أما إذا أردناه أن يتكرر 4 مرات على الأكثر :
d{,4}
أو إذا اردناه أن يتكرر بعدد محدود من المرات :
d{8}
\w الذي معناه أي شي ولكن ليس حرفاً (الحروف التي بين (\b) أخيراً نريد أن نلفت النظر إلى الاختصار
تقريباً ) \W وبين
ملخص ما أخذناه من القواعد تجدونه في الجدول التالى :
القاعده المعني
c او b او a أي حرف كان [abc]
c و b و a أي حرف غير [^abc]
z الى a كل الحروف من [a-z]
لغير الارقام \D للارقام و \d \d\D
لغير الحروف \W للحروف جميعھا و \w \w\W
no ) لغير الفراغ \S و (space) للفراغ \s \s\S
(space
\W و \w الحروف التي بين \b
. أي حرف
كمجموعه .. abc تقوم باعتبار (abc)
؟ حرف او مجموعة حروف مكرره مره اوغير
مكرره نھائيا
+ حرف او مجموعة حروف تتكرر مره او اكثر
* حرف او مجموعة حروف تتكرر مره او اكثر
او قد لاتتكرر نھائيا
تكرير بعدد معين من المرات .. {x,y}
تكرير بحد اقصي من المرات .. {,y}
تكرير بحد ادني من المرات ... {x,}
تكرير بعدد معين من المرات {x}
^ في بدايه النص
$ في نھايه النص
تعبير للتاكد من ايميل
^[_a-zA-Z0-9-]+(\.[_A-Za-z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*$
شرح التعبير
الرمز الشرح
^ يجب ان يبدا النص
كبيرا كان او صغيرا او _او a-z أي حرف من [_A-Za-z0-9-]
ارقام
+ وقد يكون ھذا الحرف متكررا اكثر من مره
بالاضافه الى انه قد يتبع النقطه وحروف (\.[_A-Za-z0-9-]+)
وارقام
* وقد لايتبعه اوقد يتبعه ويتكرر اكثر من مره
@ وبعد ذلك يكون لديه حرف ال@
وايضا نفس القواعد في النھايه [a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*$
مثال :
<?
Function mailcheck($mail,$t)
{
$T="^[_a-zA-Z0-9-]+(\.[_A-Za-z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*$";
If (EREG($T,$mail))
{
$r="the mail is true";
echo $r;
}
else
{
$r="the mail is not true";
echo $r;
}
return ;
}
mailcheck("anonymous32@outlook.sa",$t);
?>
eregi()
أنه غير حساسة لحالة الأحرف كبيرة أو صغيرة أي أنه يمكننا كتابة ereg الفرق بين ھذه الدالة والدالة
المثال السابق كالتالى :
<?
Function mailcheck($mail,$t)
{
$T="^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$";
If (EREG($T,$mail))
{
$r="the mail is true";
echo $r;
}
else
{
$r="the mail is not true";
echo $r;
}
return ;
}
mailcheck("alfareees@hotmail.com",$t);
?>
ereg_replace()
ماذا لو أردت تحرير عبارة ما من أحرف معينة وقد تكون متكررة في جملة أوغير ذلك
لنفرض أن لدينا العبارة التالية :
Mohmed love his game …….
ونريد أن نتخلص من النقاط التي في نھاية العبارة
أو لدينا مثلاً ھذا المسار :
C:\windows\desktop
ونريد أن نستبدل العلامة (\) ب (/)
التي أخذناھا سابقاً rgular expression وقواعد ال ereg_replace كل ذلك ممكن بواسطة الدالة
البنية التي نستخدمھا للدالة كالتالى :
Ereg_replace(reg,string,var);
var الحرف الجديد ونضع بدلاً من ال string ونضع مكان ال regular expression القاعدة لل reg نضع في مكان
المتغير الذي نريد استخلاص الحروف منه .
مثال :
<?
$path =" C:\windows\desktop";
$tell= "Mohmed love his game .....";
$newpath= Ereg_replace("[\.]","/",$path);
$newtell= Ereg_replace("\.","",$tell);
echo $newpath;
echo "<br><br>";
echo $newtell;
?>
أساليب أخري لتتبع الأخطاء
echo استخدام عباره
ھو من أقدم الاساليب وكان يستخدم مثلا في فحص بعض متغيرات نموذج فمث لاً أنت لديك نموذج يقوم
بإرسال معلومات إلى النموذج وقد تستخدم في اختبار الأخطاء المنطقية التي يستصعب متابعتھا في الكود
مثال :
<?
Echo “this is : $name”;
Echo “<br>”;
Echo “this is : $Email”;
كود يقوم بمعالجة معلومات المتغيرين//
طباعة المتغيرين بعد اداء عملية المعالجة ورؤية النتائج//
Echo “this is after : $name”;
Echo “<br>”;
Echo “this is after: $Email”;
?>
html فحص كود ال
html قد تستخدم كود جافا سكربت ويتم إخفاء الأخطاء وسط علامات التعليقات فعليك حينئذ فحص كود ال
لرؤية إن كان ھناك بعض الأخطاء المخفية أم لا .
تجاھل الأخطاء
لنفترض أنك تعلم أن الدالة التي صنعتھا بھا أخطاء ولكنك تريد تجاھل ھذه الأخطاء فكل ماعليك أن تقوم
بوضع @ أمام الدالة لكي يتم تجاھل الخطأ عند حدوثه .
وأنت صنعت دالة تقوم PHP مثلاً نحن نعلم أن القسمة على الصفر من الأشياء الغير مقبولة في ال
بتجاھلھا فكل ما عليك أن PHP بالقسمة على صفر ولن يتم تنفيذھا لأنھا بالأصل خطأ ولكنك تريد أن يقوم
تفعله ھو وضع @ أمام الدالة .
مثال :
<?
function amail ($y)
{
$y=$y/0;
return $y;
}
$s= @amail(44);
echo $s;
?>
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://anonymous32.allgoo.net
 
تتبع وتصيد ومنع الاخطاء_PhP
استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات الامن والحماية  :: لغات البرمجة :: قسم لغة PHP-
انتقل الى: