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

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

-roee- 28-06-06 11:22

[php cookies] התחברות והתנתקות
 
שמעו כל מי שמתחבר והשם משתמש והסיסמא נכונים אני שם עליו את העוגיה הזאת:
PHP קוד:

setcookie("user","$u:$p",time()+3600*24*7); 

וכשהוא מתנתק אני שם את העוגיה הזאת:
PHP קוד:

setcookie("user",-1); 

ההתחברות עובדת סבבה
אבל משום מה ההנתקות לא עובדת...
יש לדעתכם בעיה?

ודרך אגב,
במערכות שונות ראיתי שחוץ מזה שהם שמים עוגיה הם מכניסים את השם משתמש לטבלה בשם session... בשביל מה זה?
תודה

BlueNosE 28-06-06 11:25

אל תסמוך על תמיכה בעוגיות.
וזה לא פועל בגלל שהפרמטר השני הוא VALUE ולא TIME
PHP קוד:

setcookie("user"""time()-1); 


Alon.R 28-06-06 11:28

בשביל למחוק את העוגייה אתה עושה:
setcookie("user","no metter",time()-1);

-roee- 28-06-06 11:32

תודה BlueNosE עזרת לי מאוד

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

    function is_user() {
        global 
$db;

        
$cookie $_COOKIE["user"];
        
$v explode("|"$cookie);
        
$username $v[0];
        
$password $v[1];
        
$query $db->query("SELECT * FROM users WHERE username='$username' AND password='$password'");
        
$row $db->num_rows($query);
        if(
$row 0) {
        return 
true;
        } else {
        die(
"unregistered");
        } 

רק שיש לי משהו מאוד מוזר,
גם כשאני לא קורא אל הפונקציה is_user אני כל הזמן מקבל שרשום לי unregisterd

למה?

BlueNosE 28-06-06 11:49

PHP קוד:

function is_user() { 
        global 
$db

        
$cookie $_COOKIE["user"]; 
        list (
$username$password) = explode("|"$cookie); 
        
$query $db->query("SELECT * FROM users WHERE username='$username' AND password='$password'"); 
        
$row $db->num_rows($query); 
        if(
$row 0) { 
        return 
true
        } else { 
        die(
"unregistered"); 
        }  



-VladK- 28-06-06 12:02

ציטוט:

נכתב במקור על ידי BlueNosE
PHP קוד:

function is_user() { 
        global 
$db

        
$cookie $_COOKIE["user"]; 
        list (
$username$password) = explode("|"$cookie); 
        
$query $db->query("SELECT * FROM users WHERE username='$username' AND password='$password'"); 
        
$row $db->num_rows($query); 
        if(
$row 0) { 
        return 
true
        } else { 
        die(
"unregistered"); 
        }  



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

ofek_golan 28-06-06 14:11

הכי פשוט בתנתקות תשמיד את העוגיה...
ואז תכתוב למי שיש את העוגיה = מחובר
למי שאין את העוגיה = מנותק
תשחק עם זה קצת
הכי טוב תעשה עם SESSION ככה פשוט מתי שהוא מתנתק מהדפדפן הוא נמחק...
ואז ליד זה תעשה ריבוע בחירה CHECKBOX ואם מסמנים תעשה עוגיה
למשך כמה זמן שתקבע

-VladK- 28-06-06 14:37

ציטוט:

נכתב במקור על ידי Ofek_Golan
הכי פשוט בתנתקות תשמיד את העוגיה...
ואז תכתוב למי שיש את העוגיה = מחובר
למי שאין את העוגיה = מנותק
תשחק עם זה קצת
הכי טוב תעשה עם SESSION ככה פשוט מתי שהוא מתנתק מהדפדפן הוא נמחק...
ואז ליד זה תעשה ריבוע בחירה CHECKBOX ואם מסמנים תעשה עוגיה
למשך כמה זמן שתקבע

אז פה אתה אומר לו להשתמש בעוגיה שלו אבל גם להוסיף שימוש בסשין...

-roee- 28-06-06 15:23

חמודים הסתדרתי עם העוגיות כבר אבל עכשיו יש לי בעיה עם הפונקציה שבודקת אם המשתמש מחובר

ofek_golan 28-06-06 15:29

אני אומר שיעזה נגיד כמו בנענע שיש ריבוע CHECKBOX מי שיודע HTML וכשתסמנים יעשה עוגיה וכשלא מסנמנים לא תיהיה עוגיה


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

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