L'esempio pratico è:
un form per cambiare la password utente!
un campo con la vecchia password e uno con la nuova!!
Con un'unica query al db SQLite posso fare controllo e update?? ...eventualmente qual'è la sintassi!??
thanks
kirk
L'esempio pratico è:
un form per cambiare la password utente!
un campo con la vecchia password e uno con la nuova!!
Con un'unica query al db SQLite posso fare controllo e update?? ...eventualmente qual'è la sintassi!??
thanks
kirk
Ciao,
non ho capito quale sia il controllo che devi fare, comunque SQLite supporta
INSERT....SELECT
http://www.sqlite.org/lang_insert.html
ma pare non supporti UPDATE...SELECT o UPDATE....FROM
http://www.sqlite.org/lang_update.html
Quindi non puoi fare un update sulla base di una select (non in un'unica query voglio dire).
Però volendo potresti usare un replace (cioè elimini e ricrei l'intera riga)
http://www.sqlite.org/lang_replace.html
per favore NIENTE PVT TECNICI da sconosciuti
Ciao..
sarebbe abbastanza azzardato usare replace per sostituire una password... Non so SQLITE, ma usualmente REPLACE lavora su una chiave primaria o UNIQUE.... Basta conoscere un username (di solito UNIQUE) per fare frittate...![]()
Per sostituire una password direi che e' praticamente obbligatorio una SELECT e poi UPDATE, con in mezzo le necessarie verifiche di controllo dati.
![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
ho due campi, in uno chiedo la vecchia password e nell'altro la nuova...quando invio il form devo prima controllare che la vecchia password coincida e poi aggiorno la nuova...non ho capito quale sia il controllo che devi fare
Ho pensato ad una query unica come:
ancora ho qualche errore, però la soluzione mi sembra buona!??Codice PHP:
update "tabella" set pasw="$newpsw" where pasw="$oldpsw" and id="$id"
thanks
SQLITE supporta benissimo le subquery, quindi una cosa tipo
UPDATE table SET password = '$newpsw' WHERE id = ( SELECT id FROM table WHERE user = '$user' AND password = '$oldpsw' )
penso sia la soluzione piu' semplice
P.S. updatare una password in base all' id, pazzia, piu' facile fare frittate, tento gli id da 1 a 1000 su una form esterna e ti cambio le passwords a tutti gli utenti![]()
di password uguali potrebbero essercene di id no. Quindi basta l'id. Ma per trovare l'id ci vuole un SELECT. Quindi dopo avere identificato lo USER (con SELECT) confronti i dati ricevuti, se cambia la password fai ripetere l'immissione della nuova , controlli che coincidano le due immissioni e poi fai l'update:[supersaibal]Originariamente inviato da beipink
ho due campi, in uno chiedo la vecchia password e nell'altro la nuova...quando invio il form devo prima controllare che la vecchia password coincida e poi aggiorno la nuova...
Ho pensato ad una query unica come:
ancora ho qualche errore, però la soluzione mi sembra buona!??Codice PHP:
update "tabella" set pasw="$newpsw" where pasw="$oldpsw" and id="$id"
thanks [/supersaibal]
update "tabella" set pasw="$newpsw" where id="$id"
![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
piero quella che ho scritto no eh ?
UPDATE table SET password = '$newpsw' WHERE id = ( SELECT id FROM table WHERE user = '$user' AND password = '$oldpsw' )
tanto se non trova l' id torna NULL e se torna NULL non updata niente, giusto ???
la verifica la fa poi sull' affected_rows o sul last_change , cosi' da poter confermare o meno l' avvenuto update oppure no
[supersaibal]Originariamente inviato da andr3a
SQLITE supporta benissimo le subquery, quindi una cosa tipo
UPDATE table SET password = '$newpsw' WHERE id = ( SELECT id FROM table WHERE user = '$user' AND password = '$oldpsw' )
penso sia la soluzione piu' semplice
P.S. updatare una password in base all' id, pazzia, piu' facile fare frittate, tento gli id da 1 a 1000 su una form esterna e ti cambio le passwords a tutti gli utenti[/supersaibal]
![]()
sarebbe pazzia se gli id li passassi da query string, o se fai mettere l'id dallo user.... ma mi parrebbe bonta' eccessiva...
Vorrei proprio vedere come fai con un form passarmi un dato che non raccolgo....![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
Quello che hai scritto lo hai scritto contemporaneamente a me, quindi lo leggo solo ora. Se sono supportate le subquery negli update va bene, ma e' inutile, perche' lo user deve averlo gia' identificato prima per fargli cambiare la password...[supersaibal]Originariamente inviato da andr3a
piero quella che ho scritto no eh ?
UPDATE table SET password = '$newpsw' WHERE id = ( SELECT id FROM table WHERE user = '$user' AND password = '$oldpsw' )
tanto se non trova l' id torna NULL e se torna NULL non updata niente, giusto ???
la verifica la fa poi sull' affected_rows o sul last_change , cosi' da poter confermare o meno l' avvenuto update oppure no [/supersaibal]
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
intendevo da una form senza autenticazione ... ovvero scrivi user, pass e cambi password, senza pensare a login ... come e' ad esempio su tanti link di conferma che arrivano per email , metti che cambi l' id sul link e la query e' unica per l' id cambieresti passwords altrui ... e non dirmi che sto' delirando, mesi fa il Passport di Microsoft ha permesso a tanti di avere accesso a carte di credito della gente proprio grazie a questo sistema ( noto anche come solito cratere di Microsoft che ha rimborsato per milioni di dollari )[supersaibal]Originariamente inviato da piero.mac
sarebbe pazzia se gli id li passassi da query string, o se fai mettere l'id dallo user.... [/supersaibal]
e' solo una precauzione in piu' su una pagina che permette il cambio di passwords, l' accoppiata univoca e' sempre user=>pass , quindi quella query in quella pagina e' stramaledettamente sicura[supersaibal]Originariamente inviato da piero.mac
Se sono supportate le subquery negli update va bene, ma e' inutile, perche' lo user deve averlo gia' identificato prima per fargli cambiare la password...
[/supersaibal]
o no ?![]()