04-03-2006, 15:37
|
|
|
חבר מתאריך: 21.09.02
הודעות: 408
|
|
יש דרך דיי פשוטה לבדוק איזה תנאי מוציא אותך. תכתוב בתוך כל תנאי, לפני שאתה הורג את הסקריפט, הוצאת פלט עם פלט שונה ולפי זה תוכל לזהות איפה הוא נתקע.
בכל מקרה, בנוגע לשאלה שלך, הלוגיקה במקרה הזה היא פשוטה. תחשוב על and ככפל וכל or כחיבור, ועכשיו תראה מה עשית:
קוד PHP:
if($admin && $info['pass'] != 'query' || $info['user'] != 'query') {
במידה ו $admin מכיל את הערך false, בדומה לכפל, הוא אוטומטית מחזיר 0 לגבי כל תנאי אחר שהוא בקשר and איתו. אך התנאי:
הוא בקשר של or, ולכן אם הוא מחזיר את הערך true נוצר לך מצב של:
הפיתרון? להשתמש בסוגריים, בדיוק כמו בחשבון, בכדי לקבוע את הגבולות שלך. לדוגמא, במקרה הספציפי הזה:
קוד PHP:
if($admin && ($info['pass'] != 'query' || $info['user'] != 'query')) {
|