Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Abbiamo provato Google Pixel 11, il più accessibile della nuova gamma: chip Tensor G6 condiviso con i modelli Pro, fotocamera 48 MP con Magic Capture e Stili Fotografici, display Actua da 3000 nit e batteria da 4985 mAh. Ecco come si comporta nell'uso quotidiano, e cosa cambia davvero rispetto a Pixel 11 Pro e Pro XL
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL debutta in Italia con il nuovo Tensor G6, lo Zoom Pro fino a 120x, il display Super Actua da 3600 nit e la new entry HiLight riservata ai modelli Pro: lo abbiamo provato in anteprima per diversi giorni prima del lancio commerciale, tra fotocamera generativa, ricarica ancora indietro rispetto ai rivali e un prezzo che parte da 1399 euro
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti
Con un semplice dialogo in linguaggio naturale e la potenza di una scheda video di fascia alta è possibile costruire software funzionante da zero, senza scrivere una riga di codice e senza inviare un solo byte dei propri dati a server esterni
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 13-10-2009, 15:44   #1
Apple2k
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:
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
//ottenuti username e password da un form

$sql="SELECT username, password, tipo FROM utenti AS u WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
//ho estratto dalla tabella utenti la riga con quell'username e quella password

$count=mysql_num_rows($result);
// Mysql_num_row conta le righe
// Se result trova $myusername e $mypassword, count deve valere 1

if($count==&& u.tipo=='amministratore'){
// Registra $myusername, $mypassword e ti riporta al file "logadminsuccess.php"
session_register("myusername");
session_register("mypassword");
header("location:logadminsuccess.php");
}

elseif(
$count==&& u.tipo=='cliente'){
// Registra $myusername, $mypassword e ti riporta al file "logusersuccess.php"
session_register("myusername");
session_register("mypassword");
session_start();
$_SESSION['user'] = $myusername
header("location:logusersuccess.php");
}
?> 
Apple2k è offline   Rispondi citando il messaggio o parte di esso
Old 13-10-2009, 17:10   #2
Zelig
Senior Member
 
L'Avatar di Zelig
 
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
Zelig è offline   Rispondi citando il messaggio o parte di esso
Old 13-10-2009, 17:46   #3
Apple2k
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:
// Nome utente e password inviate attraverso il form
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

$sql="SELECT * FROM utenti WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row conta le righe
$count=mysql_num_rows($result);
// Se result trova $myusername e $mypassword, count deve valere 1

$array mysql_fetch_assoc($result);

if(
$count==&& $array['tipo']=='amministratore'){
// Registra $myusername, $mypassword e ti riporta al file "logadminsuccess.php"
session_register("myusername");
session_register("mypassword");
header("location:logadminsuccess.php");
}

if(
$count==&& $array['tipo']=='cliente'){
// Registra $myusername, $mypassword e ti riporta al file "logusersuccess.php"
session_register("myusername");
session_register("mypassword");
session_start();
$_SESSION['user'] = $myusername
header("location:logusersuccess.php");

se non chiedo troppo.. ho anche un problemino col modulo di registrazione.. dev'essere una cosa ancora più banale.. lo scrivo fra un attimo al prossimo post.. se puoi fare qualcosa anche quì..
Apple2k è offline   Rispondi citando il messaggio o parte di esso
Old 13-10-2009, 18:08   #4
Apple2k
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:
//prendo i campi dal form
$nome $_POST['nome'];
$cognome $_POST['cognome'];
$citta $_POST['citta'];
$indirizzo $_POST['indirizzo'];
$username $_POST['username'];
$password $_POST['password'];
$password2 $_POST['password2'];
$mail $_POST['mail'];

//controllo se ci sono campi vuoti
if($nome == false || $cognome == false || $citta == false || $indirizzo == false || $username == false || $password == false || $password2 == false || $mail == false)
echo 
"Riempi tutti i campi";

//controllo se le password coincidono
if($password <> $password2); 
echo 
"Le password inserite non coincidono";

//inserisco nella tabella utenti i campi presi dal form
$sql="INSERT INTO utenti (nome , cognome , citta , indirizzo , username , password , mail , tipo)
VALUES ('
$nome', '$cognome', '$citta', '$indirizzo', '$username', '$password', '$mail', 'cliente');";
$risultato=dbQuery($sql);
echo 
"grazie per esserti registrato adesso puoi effettuare il login..."
Apple2k è offline   Rispondi citando il messaggio o parte di esso
Old 13-10-2009, 18:37   #5
Zelig
Senior Member
 
L'Avatar di Zelig
 
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:
//prendo i campi dal form
$nome $_POST['nome'];
$cognome $_POST['cognome'];
$citta $_POST['citta'];
$indirizzo $_POST['indirizzo'];
$username $_POST['username'];
$password $_POST['password'];
$password2 $_POST['password2'];
$mail $_POST['mail'];

//controllo se ci sono campi vuoti
if($nome == false || $cognome == false || $citta == false || $indirizzo == false || $username == false || $password == false || $password2 == false || $mail == false)
echo 
"Riempi tutti i campi";

//controllo se le password coincidono
if($password != $password2)
{
echo 
"Le password inserite non coincidono";
} else {
//inserisco nella tabella utenti i campi presi dal form
$sql="INSERT INTO utenti (nome , cognome , citta , indirizzo , username , password , mail , tipo)
VALUES ('
$nome', '$cognome', '$citta', '$indirizzo', '$username', '$password', '$mail', 'cliente');";
$risultato=dbQuery($sql);
echo 
"grazie per esserti registrato adesso puoi effettuare il login..."

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
Zelig è offline   Rispondi citando il messaggio o parte di esso
Old 13-10-2009, 19:03   #6
Apple2k
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.
Apple2k è offline   Rispondi citando il messaggio o parte di esso
Old 13-10-2009, 19:14   #7
Zelig
Senior Member
 
L'Avatar di Zelig
 
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:
//prendo i campi dal form
$nome $_POST['nome'];
$cognome $_POST['cognome'];
$citta $_POST['citta'];
$indirizzo $_POST['indirizzo'];
$username $_POST['username'];
$password $_POST['password'];
$password2 $_POST['password2'];
$mail $_POST['mail'];

//controllo se ci sono campi vuoti
if($nome == false || $cognome == false || $citta == false || $indirizzo == false || $username == false || $password == false || $password2 == false || $mail == false
{
    echo 
"Riempi tutti i campi";

else 

    
//controllo se le password coincidono
    
if($password != $password2)
    {
        echo 
"Le password inserite non coincidono";
    } 
    else 
    {
        
//inserisco nella tabella utenti i campi presi dal form
        
$sql="INSERT INTO utenti (nome , cognome , citta , indirizzo ,
        username , password , mail , tipo) 
        VALUES ('
$nome', '$cognome', '$citta', '$indirizzo',
        '
$username','$password', '$mail', 'cliente');";

        
$risultato=dbQuery($sql);
        echo 
"grazie per esserti registrato adesso puoi effettuare il login...";
    } 

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
Zelig è offline   Rispondi citando il messaggio o parte di esso
Old 13-10-2009, 23:02   #8
Apple2k
Member
 
Iscritto dal: Dec 2007
Messaggi: 40
appena tornato e risolto! grazie...
non so bene cosa c'era di sbagliato, ho solo copiato ed incollato ciò che hai scritto... sei davvero in gamba..
grazie ancora..
Apple2k è offline   Rispondi citando il messaggio o parte di esso
Old 15-10-2009, 11:40   #9
flx2000
Bannato
 
L'Avatar di flx2000
 
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.
flx2000 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre Recensione Google Pixel 11: non ha l'HiLight dei...
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship Google Pixel 11 Pro XL: fotocamera al top, batte...
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti Non sai programmare? Ecco cosa si può far...
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing" Insta360 X6: Dolby Vision, 8K e montaggio "...
Aggiornamenti importanti per le offerte ...
Tutte le offerte sui dispositivi Amazon:...
2 bestseller Amazon di cui non si parla ...
4 friggitrici ad aria a prezzo stracciat...
Sennheiser Momentum 5, i nuovi auricolar...
Serie A e Serie B al via: guida ai nuovi...
CMF Buds Neo, il sub-brand di Nothing pr...
GTA 6 è già un successo: i preordini sta...
Una Visa scaduta può ancora pagar...
I migliori robot aspirapolvere in offert...
The Duskbloods non cambia la direzione d...
Un weekend di ribassi eccezionali su Ama...
Cosa succede se l'IA diventa una persona...
Tutta la stagione NFL 2026/2027 è su DAZ...
I 3 portatili in offerta migliori di tut...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:30.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v