login ταυτόχρονα από δύο ή περισσότερους χρήστες

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

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

Απάντηση
quit
Δημοσιεύσεις: 147
Εγγραφή: 09 Δεκ 2008 11:54

login ταυτόχρονα από δύο ή περισσότερους χρήστες

Δημοσίευση από quit » 02 Οκτ 2014 21:07

Καλησπέρα παιδια. έχω ένα σύστημα login με username και password.

Ο κάθε χρήστης με το που κάνει login μεταφέρετε σε ενα backend περιβάλλον και επεξεργαζεται τα στοιχεία της επιχειρησης του.

Το πρόβλημα είναι ότι αν έχει κάνει login ένας χρήστης και πάω μετα να κάνω login έναν αλλο κάνοντας refresh την σελιδα θα μου εμφανίσει τα στοιχεία του τελευταίου χρήστη που έκανε login και θα χαθουν του πρώτου.

Επιπλέον όταν ένας χρήστης κάνει logout τότε τους κάνει όλους(λογω των sessions).
Πίστεύω ότι κάπου το χάνω με τα sessions αν είναι εκει το θέμα. Κάθε βοήθεια πολύτιμη.
Ευχαριστώ εκ των προτέρων.


quit
Δημοσιεύσεις: 147
Εγγραφή: 09 Δεκ 2008 11:54

login ταυτόχρονα από δύο ή περισσότερους χρήστες

Δημοσίευση από quit » 03 Οκτ 2014 09:55

if (isset($_POST['log_in'])) {
if (!isset($_POST['email']) || !isset($_POST['pass'])) {
header("Location:login.php");
} else {
$email1 =$_POST['email'];
$pass1 = $_POST['pass'];
$result = mysql_query("SELECT * FROM USERS WHERE email='$email1' AND pass='$pass1'");
if(mysql_num_rows($result)==0) header("Location:login.php");
else{
$row = @mysql_fetch_array($result);
$value = $row['userID'];
setcookie("userID", $value);
$_SESSION['status2'] = 'logged';
header("Location:backend.php");
}
@mysql_free_result($result);
@mysql_close($dbconnect);
}
} else {
header("Location:login.php");
}

quit
Δημοσιεύσεις: 147
Εγγραφή: 09 Δεκ 2008 11:54

login ταυτόχρονα από δύο ή περισσότερους χρήστες

Δημοσίευση από quit » 03 Οκτ 2014 09:57

το παραπάνω κάνει την σύνδεση του χρήστη. Αν είναι επιτυχήσ τον πετάει στο backend αρχειο. Το Θέμα μου είναι πως μπορώ εφόσων έχω κάνει login και πάει να μπει κάποιος αλλος χρήστης να μην τον πετάει εξω.

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

login ταυτόχρονα από δύο ή περισσότερους χρήστες

Δημοσίευση από geomagas » 03 Οκτ 2014 11:50

1) Αφού χρησιμοποιείς SESSION, τι τα θέλεις τα cookies;

2) session_start() κάνεις;

3) (μπορεί να εννοείται αλλά εγώ θα ρωτήσω) Εννοείς αν κάνει κάποιος δεύτερο login από τον ίδιο browser ή από διαφορετικό;

quit
Δημοσιεύσεις: 147
Εγγραφή: 09 Δεκ 2008 11:54

login ταυτόχρονα από δύο ή περισσότερους χρήστες

Δημοσίευση από quit » 03 Οκτ 2014 14:03

ναι session_start() χρησιμοποιώ στην αρχή του αρχείου.
όσον αφορά το δεύτερο login και από τον ίδιο browser και από διαφορετικό.
απο διαφορετικό πιστεύω δεν θα έχει πρόβλημα. ετσι δεν είναι?

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

login ταυτόχρονα από δύο ή περισσότερους χρήστες

Δημοσίευση από geomagas » 03 Οκτ 2014 14:55

Ουσιαστικά, το session ανάγεται σε ένα cookie, όπου προφανώς κάθε browser κρατάει τα δικά του. Όμως, δύο tabs/παράθυρα του ίδιου browser μοιράζονται τα ίδια cookies για το ίδιο site (το λέω απλά) άρα δεν θα μπορέσεις να κάνεις login δύο διαφορετικούς χρήστες από πχ δύο διαφορετικά tabs.

Αυτό δεν είναι κακό, αν το καλοσκεφτείς είναι όπως θα έπρεπε να δουλεύει.

Η λύση είναι να ανοίξεις διαφορετικό private παράθυρο για τον άλλο χρήστη. Αυτό το παράθυρο θα έχει τα δικά του cookies και άρα το δικό του session.

quit
Δημοσιεύσεις: 147
Εγγραφή: 09 Δεκ 2008 11:54

login ταυτόχρονα από δύο ή περισσότερους χρήστες

Δημοσίευση από quit » 03 Οκτ 2014 15:05

Τι εννοείς private παράθυρο για τον άλλο χρήστη?
Σκέφτηκα ίσως αν όταν κάνει login και είναι επιτυχές τότε να πηγαίνει στο backend.php?USERID=$value

όπου το USERID θα είναι διαφορετικό. τι λεσ?

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

login ταυτόχρονα από δύο ή περισσότερους χρήστες

Δημοσίευση από geomagas » 03 Οκτ 2014 15:27

quit έγραψε:Σκέφτηκα ίσως αν όταν κάνει login και είναι επιτυχές τότε να πηγαίνει στο backend.php?USERID=$value

όπου το USERID θα είναι διαφορετικό. τι λεσ?
Ναι καλή ιδέα.

Πες μου όμως μετά που θα το στήσεις, δώσε μου κι ένα guest account (για να πετύχει το login), να μπω:

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

backend.php?USERID=admin 
:P
quit έγραψε:Τι εννοείς private παράθυρο για τον άλλο χρήστη?
Στον Firefox πχ που το έχω πρόχειρο, πας File --> New Private Window.

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

login ταυτόχρονα από δύο ή περισσότερους χρήστες

Δημοσίευση από dva_dev » 03 Οκτ 2014 19:26

Για να δοκιμάσεις τι γίνεται αν συνδέονται δύο χρήστες το καλύτερο είναι να δοκιμάσεις από διαφορετικούς browsers (π.χ. chrome ο ένας, firefox ο άλλος).

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

login ταυτόχρονα από δύο ή περισσότερους χρήστες

Δημοσίευση από geomagas » 03 Οκτ 2014 20:11

Μα αυτός θέλει κι από τον ίδιο.

Από διαφορετικό, εννοείται, αφού το "δένει" με το SESSION, όλα θα πηγαίνουν ως αναμένεται (εκτός απροόπτου).

quit
Δημοσιεύσεις: 147
Εγγραφή: 09 Δεκ 2008 11:54

login ταυτόχρονα από δύο ή περισσότερους χρήστες

Δημοσίευση από quit » 03 Οκτ 2014 20:27

παιδια ευχαριστω πολυ για τις συμβουλεσ θα τα δοκιμασω και θα σας πω

Απάντηση

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

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

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