|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Apr 2005
Città: Roma
Messaggi: 134
|
[PHP] impedire registrazione di 2 nick uguali
ciao a tutti, sto creando (anzi, già l'ho fatto) un form per registrarsi ad un sito, il mio problema ora è evitare che ci siano nick "doppioni".
mi pare di aver capito di dover usare mysql_num_rows().. HEEELP!!
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Metti un indice di tipo UNIQUE sullo sername, esegui l'update e dopo controlla il numero di righe inserite con mysql_affected_rows (se è 0 c'è stato un problema nell'inserimento e se hai quel solo indice, oltre ad un campo chiave primaria autoincrementante, allora il problema ès icuramente lo username doppio)...
Altrimenti fai il lock sulla tabella (oppure usa una transazione) fai una select che ti controlla l'esistenza dello username, se mysql_num_rows ritorna 0 allora vai avanti nell'inserimento... |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Apr 2005
Città: Roma
Messaggi: 134
|
no compriendo
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
Quote:
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
|
|
|
|
|
#5 | |||
|
Senior Member
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
|
Quote:
Quote:
Questo implica che se tu tenti di inserire un record che contiene uno username già esistente questo (l'intero record) non venga inserito! Di conseguenza se dopo un INSERT controlli con la funzione mysql_affected_rows il numero di righe inserite, vedi se appunto il record è stato inserito oppure no e riesci a capire se l'username era già esistente (in tal caso 0 righe verranno inserite e l'output della funzione sarà proprio 0) oppure no e ti comporti di conseguenza! Quote:
Fatto questo sblocchi la tabella (o dai il COMMIT alla transizione). spero di averti chiarito qualche dubbio, anche se non ne sono sicuro visto che sembri a digiuno totale di database & company 'iao |
|||
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
ma non fa prima a fare con la mia soluzione?
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
|
teoricamente si, ma se proprio per sfiga due nuovi utenti (utente1 e utente2) si stanno registrando con lo stesso nick con un lasso di tempo piccolissimo (ma proprio piccolo piccolo) uno dall'altro, se non ha implementato un lock della tabella o non usa le transazioni può capitare che nel lasso di tempo che intercorre tra la SELECT dell'utente1 e la successiva INSERT, l'utente2 faccia in tempo ad eseguire la SELECT non trovando di conseguenza ancora nessun utente già registrato con quel nick e creando casini al momento della sua successifa INSERT!
almeno questo è il prossibile scenario che mi immagino, poi magari cionci aveva consigliato di implementare lock o transazioni per altri motivi! 'iao |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Proprio per quello... In un ambiente concorrente bisogna SEMPRE usare lock o transazioni...
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
giusto non avevo visto questo particolare molto importante
~§~ Sempre E Solo Lei ~§~\
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:27.



















