|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Dec 2007
Messaggi: 40
|
[php/mysql] Piccolo problema codice login
ciao, ho un piccolo problema da risolvere entro domani e mi affido a voi per un aiuto..
si tratta di php e mysql.. vorrei effettuare un login nel quale php svolga due azioni differenti nel caso in cui si tratti di semplice utente o amministratore... in questa porzione di codice 1) ricevo mediante post una username e password da un form 2) controllo che queste due siano presenti nella tabella utenti 3) infine, attraverso l'if, vorrei che dalla riga estratta leggesse il campo tipo (di tipo enum) in modo da svolgere un'operazione se tipo = 'amministratore' ed un'altra operazione se tipo = 'cliente' dove sbaglio? ci può essere qualche errore grossolano vi avviso.. e vi ringrazio in anticipo Codice PHP:
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Sep 2003
Città: Angri - Milano
Messaggi: 358
|
ciao non sono espertissimo di PHP, ma l'ho usato in qualche occasione
cmq dovrebbe essere cosi : - la string query va concatenata col . (punto) $sql="SELECT username, password, tipo FROM utenti AS u WHERE username='".$myusername."' and password='".$mypassword."'"; poi dopo la tua istruzione $count=mysql_num_rows($result); fai $array = mysql_fetch_assoc($result); poi per controllare il tipo if($count==1 && $array['tipo ']=='amministratore') spero ti sia d'aiuto ciao
__________________
Siamo eredi del nostro passato, il futuro è l'unica possibilità di rinascita. XBOXGamerTAG:nightwish78 Dell Studio XPS 16 (1645)-FullHD RGBLed-Intel Core i7 820QM-4GB DDR3-ATI HD 4670 1GB DDR3-HD 320GB 7200 rpm flickr |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Dec 2007
Messaggi: 40
|
mamma mia.. risolto subito..
è raro che succeda a prima botta eheh!! grazie 1000 Zelig... avevo temporaneamente risolto in una maniera poco ottimizzata, grazie a te ho corretto è ho fatto come volevo... il primo suggerimento del . come concatenamento non era necessario mentre gli altri 2 ($array e $array['tipo ']=='amministratore') sono stati proverbiali.. grazie 1000 ancora posto il codice corretto a chiunque possa servire... Codice PHP:
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Dec 2007
Messaggi: 40
|
ecco quì
1) nella prima parte prendo i vari dati inseriti nel form.. 2) col primo if controllo se ci sono campi vuoti, e se ci sono mostra il messaggio 3) col secondo if controllo se password e password2 non coincidono, se è vero mostra il messaggio 4) inserisco nella tabella utenti i vari campi.. allora: funziona tutto.. il problema è che funzione sempre e comunque.. io vorrei che se trovasse un campo mancante (oppure se le password non dovessero coincidere) bloccasse tutto... invece scrive i campi sulla tabella sempre e comunque.. certamente mi accorgo che manca qualcosa.. ma cosa? Codice PHP:
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Sep 2003
Città: Angri - Milano
Messaggi: 358
|
ciao
ma l'if di controllo non esclude che venga eseguito anche il codice successivo e quindi esegue la query di inserimento e mi sa php usa come operatore di diverso != non <> prova cosi : Codice PHP:
__________________
Siamo eredi del nostro passato, il futuro è l'unica possibilità di rinascita. XBOXGamerTAG:nightwish78 Dell Studio XPS 16 (1645)-FullHD RGBLed-Intel Core i7 820QM-4GB DDR3-ATI HD 4670 1GB DDR3-HD 320GB 7200 rpm flickr |
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Dec 2007
Messaggi: 40
|
risolto a metà...
se lascio tutti i campi vuoti mi da giustamente errore ma cmq mi registra il record vuoto.. se lascio alcuni campi vuoti mi da giustamente errore ma cmq mi registra il record per quei campi che ho inserito.. solo se password e password2 non coincidono appare il msg di errore e blocca la registrazione.. ora mi assento da pc, rileggerò il post fra qualche.. se hai qualche idea dimmi se no non ti preoccupare.. mi hai già aiutato tantissimo.. ciao e grazie ancora Ultima modifica di Apple2k : 13-10-2009 alle 19:06. |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Sep 2003
Città: Angri - Milano
Messaggi: 358
|
controlli se i campi sono tutti validi, se non lo sono stampa l'errore e basta,
se sono validi controlla le password, se non sono valide stampa l'errore ed esce, se sono valide esegue la query : Codice PHP:
__________________
Siamo eredi del nostro passato, il futuro è l'unica possibilità di rinascita. XBOXGamerTAG:nightwish78 Dell Studio XPS 16 (1645)-FullHD RGBLed-Intel Core i7 820QM-4GB DDR3-ATI HD 4670 1GB DDR3-HD 320GB 7200 rpm flickr |
|
|
|
|
|
#8 |
|
Member
Iscritto dal: Dec 2007
Messaggi: 40
|
appena tornato e risolto!
non so bene cosa c'era di sbagliato, ho solo copiato ed incollato ciò che hai scritto... sei davvero in gamba.. grazie ancora.. |
|
|
|
|
|
#9 |
|
Bannato
Iscritto dal: Nov 2002
Città: Roma
Messaggi: 810
|
Una info in più: se vuoi usare le variabili all'interno delle stringe, le stringhe vanno delimitate con " e non con '.
Per il resto, puoi evitarti i concatenamenti e gli errori circondando le variabili da { }. Esempio: $tabella = "tab1"; $valore = 5; $sql = "SELECT * FROM {$tabella} WHERE VAL = '{$valore}' LIMIT 0,1"; In questo caso $sql diventa: SELECT * FROM tab1 WHERE VAL = '5' LIMIT 0,1 Ultima modifica di flx2000 : 15-10-2009 alle 11:42. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:49.



















