Πως εξασφαλίζουμε ένα Id να το επεξεργαζεται μόνο ένας??????

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

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

Απάντηση
margarita
Δημοσιεύσεις: 9
Εγγραφή: 16 Μάιος 2006 18:17

Πως εξασφαλίζουμε ένα Id να το επεξεργαζεται μόνο ένας??????

Δημοσίευση από margarita » 16 Μάιος 2006 18:28

Γεια σας!
Θα ήθελα την βοηθειά σας αν γνωρίζει κάποιος στο εξής: Στην εφαρμογή που φτιάχνω για να μπεί κάποιος πρέπει να κάνει πρώτα login αλλιώς δεν του δίνω πρόσβαση στην εφαρμογή. Η εφαρμογή διαχειρίζεται π.χ Πελάτες που έχουν μοναδικό client_id. Πως μπορώ να εξασφαλίσω έναν πελάτη να μην μπορεί να τον επεξεργαστούν 2 χρήστες ταυτόχρονα?

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Πως εξασφαλίζουμε ένα Id να το επεξεργαζεται μόνο ένας??????

Δημοσίευση από ThyClub » 16 Μάιος 2006 19:44

Βάζεις ενα παραπάνω πεδίο (boolean) στην βάση και όταν κάνει login ο χρήστης θα αλλάζει σε true. Έτσι όταν πάει να κάνει κάποιος άλλος login θα κοιτάς αν η τιμή είναι true και θα του απαγορεύεις την είσοδο.

Βέβαια θα πρέπει να βρείς ένα τρόπο να κάνεις την τιμή false όταν ο χρήστης κάνει logout καθώς και όταν κλείνει τον browser...

Κάνε και μια αναζήτηση στο φόρουμ νομίζω έχει ξαναναφερθεί

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Πως εξασφαλίζουμε ένα Id να το επεξεργαζεται μόνο ένας??????

Δημοσίευση από Rapid-eraser » 16 Μάιος 2006 20:57

Afto to zitima dev livete poli efkola.
Idios otav exeis va pragmatefteis polla queries.

Profavos avaferese se kapoia basi dedomevov.
Avaloga me tnv basi pou xrisimopieis mporeis va xrisimopiiseis tnv idia tnv basi gia va liseis tetiou idous problimata.

Px mporeis va xrisimopiiseis transaction , row - table locking , software lock.

Avagkastika omos epidi profavos n diadikasia dev eivai ektelesimi sto idio xrovo epeksergasias (dld spaei avagkastika se 2 bimata epeksergasia-apo8ikefsi) avagkastika 8a prepei va katafigeis se mia tetoia me8odo pou perigrafei o ThyClub.

Egw 8a protiva to flag afto va miv topo8eti8ei mesa stnv basi alla se eva flatfile px va dimiourgeis eva arxeio me ovoma to id pou epeksergazese kai otav telioveis tnv diadikasia va to sbiveis,
etsi se eva fakelo 8a exeis arxeia me ta id pou exeis avoikta sav flag.

Episis 8a prepei va skefteis mia me8odo va kaveis time-out afta ta flags giati iparxei kivdivos av kapoios kavei abort gia opoiodipote logo 8a mivei to flag avoikto xoris kaveva logo.


Gevikotera n parapavo me8odos eivai mixavorafi kai oxi bouletproof lisi so 8elei ligo extra coding logo tis poliplokotitas tou 8ematos.

Pavtos n xrisi tis skitalis/flag eivai n sivi8esteri me8odos .
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

nastis
Δημοσιεύσεις: 124
Εγγραφή: 16 Φεβ 2005 16:28
Επικοινωνία:

Πως εξασφαλίζουμε ένα Id να το επεξεργαζεται μόνο ένας??????

Δημοσίευση από nastis » 17 Μάιος 2006 14:36

Εγω θα πρότεινα εάν μιλάμε για mysql (χωρίς να το έχω κάνει προσωπικά) να κάνεις

Lock to table
http://dev.mysql.com/doc/refman/5.0/en/lock-tables.html

B.
www.oktonia.com - Παγκόσμιο Χωριό Γνώσης Λυμένα Θέματα Εξετάσεων - Ασκήσεις

nastis
Δημοσιεύσεις: 124
Εγγραφή: 16 Φεβ 2005 16:28
Επικοινωνία:

Πως εξασφαλίζουμε ένα Id να το επεξεργαζεται μόνο ένας??????

Δημοσίευση από nastis » 17 Μάιος 2006 14:42

Επίσης έπεσα πάνω σε αυτό το ενδιαφέρον άρθρο.
Μπορεί να βοηθήσει.
http://www.weberdev.com/ViewArticle/456

Β.
www.oktonia.com - Παγκόσμιο Χωριό Γνώσης Λυμένα Θέματα Εξετάσεων - Ασκήσεις

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

Πως εξασφαλίζουμε ένα Id να το επεξεργαζεται μόνο ένας??????

Δημοσίευση από cherouvim » 17 Μάιος 2006 14:44

Min kaneis lock to table, giati an aniksei gia edit o hristis alla den oloklirosei pote to table tha minei locked gia panta. An valeis timeout se afto to locking tote pali yparxei tropos na exeis to effect tou lost update.

Afto pou thes legete optimistic concurency control kai apaitei tin prosthiki enos version (int) field sto table sou. Kata to view for edit perneis to version tis egrafis (px 34) kai sto update query tou prostheteis WHERE version=34 eno paralila to kaneis update to version se 35 (tou prostheteis 1). An apo to view for edit mehri to submit kapios allos prolave na allaksei ta dedomena to version tha exei idi paei 35, to query tha epistrepsei 0 (0 rows updated) kai esy tha mporeis na ektyposeis kati hrisimo sto hristi, px minima gia merge allagon ktl, shedon opos ginete edo sto phpbb forum.

Άβαταρ μέλους
alexandr0s
Δημοσιεύσεις: 1064
Εγγραφή: 25 Απρ 2006 17:16
Τοποθεσία: localhost
Επικοινωνία:

Πως εξασφαλίζουμε ένα Id να το επεξεργαζεται μόνο ένας??????

Δημοσίευση από alexandr0s » 17 Μάιος 2006 17:57

Κι εγώ θα απέριπτα τη λύση του lock της εγγραφής από την πλευρά του RDBMS. Δεν θέλω ο χρήστης να περιμένει πότε θα τελιώσει ο άλλος χωρίς να ξέρει τι γίνεται και να νομίζει ότι έχει 'κολλήσει'. Πιστεύω ότι είναι σωστό να προειδοποιείς το χρήστη ότι την συγκεκριμένη εγγραφή τη χρησιμοποιεί κάποιος άλλος και να έχεις access σε αυτή μόνο για ανάγνωση (χρησιμοποιόντας το flag το οποίο ίσως αντί για flag να είναι και ο χρήστης που τη κάνει edit εκείνη τη στιγμή σε συνδιασμό με τη παραπάνω λύση για να αποφύγουμε και τη περίπτωση login με τον ίδιο χρήστη, παρόμοιο με τη λύση του ThyClub,Cherouvim). Επίσης πέρα από τη περίπτωση του logout και του κλείσιμου του browser πρέπει να λάβεις υπόψη σου και τη περίπτωση που ο άλλος έχει συκωθεί από το γραφείο του και έχει πάει για καφέ (κλείσιμο session, refresh σελιδα?). Ίσως με ένα σύστημα messaging μεταξύ των χρηστών να μπορείς αν πχ ένας χρήστης έχει ανοίξει μια και την θέλει άλλος να τον ειδοποιεί.

Απάντηση

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

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

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