1 μέλος κάθε φορα συνδεδεμένος

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

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

Απάντηση
Άβαταρ μέλους
chemmanouel
Δημοσιεύσεις: 17
Εγγραφή: 06 Μάιος 2006 17:15
Τοποθεσία: Θεσσαλονίκη
Επικοινωνία:

1 μέλος κάθε φορα συνδεδεμένος

Δημοσίευση από chemmanouel » 15 Ιαν 2007 02:04

Έχω ένα σύστημα με members[ που ειναι αποθηκευμενα σε μια βαση mysql], και θα ηθελα αν υπάρχει τροπος να είναι μόνο ένα μέλος κάθε φορα logged in (Συνδεδεμενος). Η διαδικασια της εισόδου στο site λειτουργει με sessions. Απλα θα ηθελα να πιασω και την περίπτωση που κάποιος χρηστης δεν κάνει αποσύνδεση (logout) και απλα κλείσει το browser του. Είναι εφικτό αυτό?

Ευχαριστώ προκαταβολικά
Two things are infinite
-- One is Universe
-- And the other is human Stupidity

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27626
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

1 μέλος κάθε φορα συνδεδεμένος

Δημοσίευση από cordis » 15 Ιαν 2007 02:13

όχι... κάτι μπορείς να ψιλοκάνεις με javascript, αλλά αν ο άλλος την έχει disable;

ποιό είναι το πρόβλημά σου και θέλεις μόνο έναν την φορά;
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
chemmanouel
Δημοσιεύσεις: 17
Εγγραφή: 06 Μάιος 2006 17:15
Τοποθεσία: Θεσσαλονίκη
Επικοινωνία:

1 μέλος κάθε φορα συνδεδεμένος

Δημοσίευση από chemmanouel » 15 Ιαν 2007 02:29

Το πρόβλημα μου είναι ότι μέσω του site [PHP], επικοινωνώ με hardware, και θέλω ένα μέλος την φορά να μπορεί να το χειριστει. Θα με διευκόλυνες αν μου παρουσίαζες την λύση με javascript [έτσι ώστε να καλύψω περισσότερες περιπτώσεις ]

Ευχαριστώ.
Two things are infinite
-- One is Universe
-- And the other is human Stupidity

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27626
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

1 μέλος κάθε φορα συνδεδεμένος

Δημοσίευση από cordis » 15 Ιαν 2007 02:40

1. main script (script.php) in which the "leaving" is watched (NB : this script had been opened through a existing window (with a "_blank" target in the form) :

....

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

<script type='text/javascript'>
window.onbeforeunload = function&#40;&#41; &#123;
   //in case of a close action with the white cross in the red square in the title bar

   if &#40;window.event.clientY < 0 && &#40;window.event.clientX > &#40;document.documentElement.clientWidth - 5&#41; || window.event.clientX < 15&#41;&#41; &#123;

     //action to fire when leaving...
     window.opener.location.href='target.php5?pctid_toclose=<?php echo $_SESSION&#91;'pctid'&#93;; ?>';
//  alert&#40;'user is leaving...'&#41;;
 &#125;
&#125;
</script>
....



2. targeted script (target.php) in which an action is done if needed:

....

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

 if&#40;$_GET&#91;'pctid_toclose'&#93; === $_SESSION&#91;'pctid'&#93;&#41; &#123;
  //actions to do &#40;updating DB for example&#41;
.....
  unset&#40;$_SESSION&#91;'pctid'&#93;&#41;;
  echo "<script type='text/javascript'>document.location.href='index.php5';</script>\n";
  exit&#40;&#41;;
 &#125;
.....
http://forums.microsoft.com/MSDN/ShowPo ... 1&SiteID=1
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

1 μέλος κάθε φορα συνδεδεμένος

Δημοσίευση από Banavas » 15 Ιαν 2007 07:56

Το πρβλημά σου μπορεί να λυθεί απλά με χρονόμετρο (π.χ. 1 λεπτό). Όσο ο συνδεδεμένος χρήστης "κινέιται" μέσα στο site o χρόνος του ανανεώνεται συνεχώς. Αν ξεχαστεί ή αν φύγει από την σελίδα γίνεται logout μολις τελειώσει ο χρόνος.
Το χρησιμοποιούν και κάποιες τράπεζες για περισσότερη ασφάλεια.

Όσο για το ένας τη φορά αυτό είναι ακόμα πιο απλό. Μπορείς να δίνεις σε μία μεταβλητή την ΙΡ του συνδεδεμένου χρήστη και σε κάθε προσπάθεια σύνδεσης να συγκρίνεις την ΙΡ με την μεταβλητή. Με τον τρόπο αυτό αν θέλεις μπορείς να έχεις περισσότερους χρήστες στο site αλλά έναν μόνο στην ίδια σελίδα.
Happy coding....
Μάρκος
http://lasernet.gr

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

1 μέλος κάθε φορα συνδεδεμένος

Δημοσίευση από cherouvim » 15 Ιαν 2007 08:27

Τι ακριβώς είναι αυτό το hardware;

Μην προσπαθείς να κλήσεις την είσοδο στους χρήστες, αλλά κλείδωσε τις ενέργειες που μπορούν να γίνουν προς το hardware. Μπορείς να χρησιμοποιήσεις ένα database table για την υλοποίηση pessimistic concurrency control.

http://en.wikipedia.org/wiki/Concurrency_control
http://www.agiledata.org/essays/concurrencyControl.html

Απάντηση

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

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

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