הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   עזרה ב- SESSION (https://hosts.co.il/forums/showthread.php?t=68706)

Jonathan Zeierman 24-10-08 03:55

עזרה ב- SESSION
 
שלום לכולם,
אני בונה פאנל ניהול, עכשיו נתקלתי בבעיה..
הבעיה היא כזו:
עשיתי שכאשר מישהו מנסה להגיע לדף שמור שיציג לו שגיאה אתה צריך להכנס לדף...
עשיתי זאת עם ELSE.
קוד הממחיש:
PHP קוד:

else 

    die (
"$erorr");


ועשיתי גם למשל שאם המשתמש ואו הסיסמא אינם נכונים שיציג שם משתמש וסיסמא אינם נכונים.
קוד הממחיש:
PHP קוד:

if ($_POST["user"] !== $user && $_POST["pass"] !== $pass)
{
die (
"שם משתמש וסיסמא אינם נכונים.");


עכשיו הכל עובד כמו שצריך חוץ מדבר אחד, אם המשתמש אכן הכניס שם וסיסמא נכונים תופיע לו ההודעה תהליך התחברות, אנא המתן. אבל אז מצטרפת גם ההודעה שלמי שמנסה להגיע לדף שמור.
האם יש דרך להציג את ההודעה של מי שמגיע לדף שמור דרך משפט IF ולא לעשות ELSE?
PHP קוד:

<?php 
session_start
(); 

include(
"config.php");

if (isset(
$_SESSION['user']) && isset($_SESSION['pass'])) 

    die (
"$menu");


if (
$_POST["user"] == $user && $_POST["pass"] == $pass

    
$_SESSION["user"] = $_POST["user"]; 
    
$_SESSION["pass"] = $_POST["pass"]; 
    echo (
"$process");


if (
$_POST["user"] !== $user && $_POST["pass"] !== $pass)
{
die (
"שם משתמש וסיסמא אינם נכונים.");
}

else 

    die (
"$erorr");

?>

תודה לעוזרים, יוני.

Elad-A 24-10-08 09:51

תעשה דף login.php בנפרד, ככה לא יסתבך לך הכל..

vadimg88 24-10-08 11:41

קוד:

if ($_POST["user"] !== $user && $_POST["pass"] !== $pass)
הסימן ==! ו === הם שונים מ =! ו == הראשון בודק גם את הערך גם את הסוג של הערך. השני בודק רק את הערך. סתם לידע כללי.

ולא ממש הבנתי מה הבעיה האמת.

Jonathan Zeierman 24-10-08 17:11

אוקיי לא הבנתם מה אני רוצה...
הפונקציה הזו בודקת שאם שם משתמש וסיסמא נכונים שיציג לו תהליך ככה:
"בתהליך התחברות, אנא המתן" ואז התהליך עושה רענן לדף ומעביר אותו לתפריט.
PHP קוד:

if ($_POST["user"] == $user && $_POST["pass"] == $pass

זאת אומרת זהו התפריט:
PHP קוד:

if (isset($_SESSION['user']) && isset($_SESSION['pass'])) 

    die (
"$menu");


עכשיו הכנסתי את הפונקציה הזו בכדי לבדוק האם שם משתמש וסיסמא אינם נכונים, היא עובדת...
PHP קוד:

if ($_POST["user"] !== $user && $_POST["pass"] !== $pass

אבל הבעיה היא שכאשר התנתקתי מהפאנל והרסתי SESSIONS אני מנסה לגשת לדף ישיר שהוא מוגן אז מופיעה לי שגיאה שעשיתי אותה ב- else:
PHP קוד:

else 

    die (
"$erorr");


עכשיו זה גם עובד, אבל כשאני מתחבר לפאנל ומופיעה לי ההודעה של תהליך התחברות אנא המתן גם הודעת השגיאה הזו מופיעה ואני לא רוצה את זה כי זה ב- else...
מקווה שהבנתם...

Alter 24-10-08 19:46

למה אתה צריך את הelse הזה ? אם מישהו לא הכניס שם משתמש וסיסמא נכונים זה תמיד יראה לו שהם משתמש וסיסמא לא נכונים.. אין סיבה לelse..

omercnet 25-10-08 00:59

לא עובדים עם DIE, זה ברוטלי מדי, ולא יעיל.
אני לא ממש מצליח להבין מההסבר שלך, נראה שאתה לא מביא את כל הקוד שלך (אולי אתה לא רוצה לשתף אותנו בקוד עצמו?)

אם אני מנסה לפענח את הבעייה שלך, תנסה לעבוד עם switch במקום מלא if
www.php.net/switch

Jonathan Zeierman 25-10-08 05:48

ציטוט:

נכתב במקור על ידי omercnet (פרסם 676595)
לא עובדים עם DIE, זה ברוטלי מדי, ולא יעיל.
אני לא ממש מצליח להבין מההסבר שלך, נראה שאתה לא מביא את כל הקוד שלך (אולי אתה לא רוצה לשתף אותנו בקוד עצמו?)

אם אני מנסה לפענח את הבעייה שלך, תנסה לעבוד עם switch במקום מלא if
www.php.net/switch

הצלחתי לעשות מה שאני רוצה... פשוט עשיתי שאם הסשיין מגלה שאתה לא מחובר ז"א FALSE תציג לו את ההודעת שגיאה של דף מוגן זהו זה מה שרציתי שיהיו 2 הודעות של אחד עם הוא לא מכניס שם משתמש וסיסמא נכונים שיציג לו שם משתמש וסיסמא לא נכונים ואם הוא מנסה להגיע לאזור שמור אז שתוצג לו הודעה אחרת.
ציטוט:

לא עובדים עם DIE, זה ברוטלי מדי, ולא יעיל.
למה ברוטלי ולא יעיל?
תודה לעוזרים.

omercnet 25-10-08 12:35

כי זה הורג את הסקריפט מייד, אתה לא מסיים בצורה נקייה.
במיוחד שזה בסוף הקוד, אם זה כבר סוף הקוד אז בשביל מה לעשות DIE ? פשוט תסיים בצורה נקייה.

DIE (לדעתי לפחות) משמש למקרי קיצון, בעיות שאם לא תעצור עכשיו, זה סתם יעשה בלאגן בשאר הקוד, כמו למשל שאילתה שלא יוצאת טוב (וגם אז, זה לא צריך להיות DIE מיידי, אלא הודעת שגיאה חביבה כחלק מעיצוב, בטח שלא לזרוק למשתמש את הMysql_error)

תעשה לך פונקציה שמציגה את העמוד הרגיל שלך עם הודאת שגיאה נורמאלית, ולא עמוד לבד שאומר ERROR !@#

Jonathan Zeierman 25-10-08 20:55

ציטוט:

נכתב במקור על ידי omercnet (פרסם 676708)
כי זה הורג את הסקריפט מייד, אתה לא מסיים בצורה נקייה.
במיוחד שזה בסוף הקוד, אם זה כבר סוף הקוד אז בשביל מה לעשות DIE ? פשוט תסיים בצורה נקייה.

DIE (לדעתי לפחות) משמש למקרי קיצון, בעיות שאם לא תעצור עכשיו, זה סתם יעשה בלאגן בשאר הקוד, כמו למשל שאילתה שלא יוצאת טוב (וגם אז, זה לא צריך להיות DIE מיידי, אלא הודעת שגיאה חביבה כחלק מעיצוב, בטח שלא לזרוק למשתמש את הMysql_error)

תעשה לך פונקציה שמציגה את העמוד הרגיל שלך עם הודאת שגיאה נורמאלית, ולא עמוד לבד שאומר ERROR !@#

על מה אתה ממליץ?

omercnet 26-10-08 01:09

ציטוט:

נכתב במקור על ידי omercnet (פרסם 676708)
תעשה לך פונקציה שמציגה את העמוד הרגיל שלך עם הודאת שגיאה נורמאלית, ולא עמוד לבן שאומר ERROR !@#

.


כל הזמנים הם GMT +2. הזמן כעת הוא 01:55.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ