Πρόβλημα με Cookies..

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
Aviatic
Δημοσιεύσεις: 3
Εγγραφή: 09 Μαρ 2007 20:57

Πρόβλημα με Cookies..

Δημοσίευση από Aviatic » 08 Ιαν 2008 13:26

Καλησπέρα και καλή χρονιά.. Αν και παρακολουθώ το forum σας αρκετό καιρό δεν εχω γράψει κανένα post ακόμα, ήρθε η ώρα λοιπόν. :roll:

Εχω δημιουργήσει μια εφαρμογή σε php 5, στην οποία δημιουργώ members με κωδικό και username και στην συνέχεια τα members κανουνε log in..

Αφου κάνουνε log in δημιουργώ ενα cookie στο οποίο αποθηκεύω τα username kai password στην μορφή

Κώδικας: Επιλογή όλων

setcookie('cookie', $_COOKIE['cookie'] , time()+60*60*24*60);
όπου

Κώδικας: Επιλογή όλων

$_COOKIE['cookie']=$_POST['username'].'|-|'.(md5($_POST['password']).$extra_salt)
στην συνέχεια χρησιμοποιώ $parts = explode('|-|',$_COOKIE['cookie'],2); και πέρνω τα username kai password των members..

αυτο το κομμάτι συνοδεύεται και από εναν έλενχο στην βάση για το αν το user kai pass είναι αληθινά και υπάρχουν, και τα αποθηκέυω σε ενα αρχείο members.php
για κάθε σελίδα που απαιτείται να είσαι μέλος κάνω πανω πανω ενα require('members.php')
και κάπου στο site γράφω το όνομα με το οποίο είναι συνδεδεμένος ο χρήστης.
και εδώ δημιουργείται το εξής πρόβλημα.. Οταν κανω login με τον χρήστη user1 π.χ. μπαίνω κανονικά και δεν έχω πρόβλημα πουθενά, όλα τα link λειτουργούνε. όταν τώρα κανω logout και μπώ με τον χρήστη user2 στο welcome screen μου γράφει οτι είμαι logged σαν user2 αλλά μετά στα υπόλοιπα link που είχα επισκευθεί σαν user1 αντί να μου γράφει και εκεί συνδεδεμένος σαν user2 μου γραφεί οτι είμαι συνδεδεμένος σαν χρήστης user1, όταν πατήσω refresh το user1 αλλάζει και γίνεται user2 :-?

Στην ουσία το username to πέρνει απο το cookie κάθε φορά, αλλά οταν κανω login kai logout με πολούς χρήστες η εφαρμογή "μπερδευεται" και μου εμφανίζει το username που συνδέθεικα την προηγούμενη φορα. Με ένα refresh oλα διορθωνονται.. αυτο γιατι μου συμβάινει ? Ξέχασα να σας πώ ότι για μενου χρησιμοποιώ flash buttons..
..Student of php..
.:Aviatic:.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Πρόβλημα με Cookies..

Δημοσίευση από fafos » 08 Ιαν 2008 17:30

Otan kaneis logout diagrafeis ta cookies?
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
Aviatic
Δημοσιεύσεις: 3
Εγγραφή: 09 Μαρ 2007 20:57

Πρόβλημα με Cookies..

Δημοσίευση από Aviatic » 09 Ιαν 2008 10:15

Ναι, οταν κάνω logout τα διαγράφω.. Για την ακρίβεια έχω ένα button με link στο logout.php το οποίο έχει τα εξής :

Κώδικας: Επιλογή όλων

<?
setcookie&#40;'cookie', "0" , time&#40;&#41;+1000000000&#41;; 

header&#40; 'Location&#58; main.php' &#41; ;
?>
Οπότε το cookie διαγράφεται και ο χρήστης επιστρέφει στην αρχικη, εκει αν ξανακάνει log in με διαφορετικό username στην αρχική του εμφανίζει σωστά οτι συνδέθήκε.. αν τώρα πάει σε link που είχε επισκεφθεί με το προηγούμενο του username τότε του εμφανίζει το προηγούμενο του username.. Όπως είπα και πριν χρησιμοποιώ flash μενού, εκέι ο κώδικας για τα link είναι :

Κώδικας: Επιλογή όλων

on &#40;release&#41;
&#123;
	getURL&#40;"http&#58;//www.mysite.gr/members.php","_self"&#41;;
&#125;
Μήπως φταίει το flash menu..? :roll:
..Student of php..
.:Aviatic:.

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

Πρόβλημα με Cookies..

Δημοσίευση από cpulse » 09 Ιαν 2008 22:11

Για να σβήσει εντελώς το cookie πρέπει να του βάλεις μια παλιά ημερομηνία.

Επίσης, δοκίμασε αν αλλάζει τίποτα αν βάλεις το exit(); μετά την header();

Κώδικας: Επιλογή όλων

<?
setcookie&#40;'cookie', '' , time&#40;&#41; - 3600&#41;;
header&#40; 'Location&#58; main.php' &#41;;
exit&#40;&#41;;
?>
Επίσης, μήπως το username γίνεται cached από τον browser;

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης