Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader
Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader
BOOX Go 6 Gen II porta per la prima volta il supporto allo stilo su un e-reader da 6 pollici, affiancando 3 GB di RAM al collaudato Snapdragon 665 e un design rivisto con scocca posteriore a costolature. Su carta la proposta è interessante, ma Android 11 fuori supporto, l'assenza di un alloggiamento per il pennino e un'autonomia ridotta rispetto agli e-reader tradizionali sono i compromessi da accettare
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro
Lenovo Idea Tab Plus prova a portare un display da 12,1 pollici 2.5K, quattro speaker Dolby Atmos e una batteria da 10.200 mAh sotto la soglia psicologica dei 300 euro, penna inclusa. Lo abbiamo usato per oltre una settimana per capire dove l'azienda ha tagliato e dove invece ha tenuto il punto
Oltre il contante e le crypto: tutto sull'Euro Digitale e la nuova sovranità monetaria europea
Oltre il contante e le crypto: tutto sull'Euro Digitale e la nuova sovranità monetaria europea
L'euro digitale è una valuta fiat che entrerà in vigore nei prossimi anni. L'obiettivo principale è quello di ridurre la dipendenza dalle piattaforme di pagamento digitali statunitensi e offrire ai cittadini un modo semplice per trasferire denaro. Anche offline, anche in maniera (pseudo)anonima
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


Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader Tascabile e con Android: BOOX Go 6 Gen II &egrav...
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro Recensione Lenovo Idea Tab Plus: il tablet da 12...
Oltre il contante e le crypto: tutto sull'Euro Digitale e la nuova sovranità monetaria europea Oltre il contante e le crypto: tutto sull'Euro D...
Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere? Recensione HONOR Magic V6: spessore record e sup...
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni Redmi Pad 2 9.7: ampio display, economico e peso...
Geely e Ford insieme per l'Europa: firma...
Geekbench 7 è disponibile e cambi...
Data center e cavi sottomarini: pronta u...
Usare la lingua come un mouse: MouthPad ...
IA agentica: la corsa all'implementazion...
No, George Russell non è bollito: ecco c...
HONOR cambia logo: il nuovo volto dell'a...
Cina: corsa ad accaparrarsi le CPU serve...
Giga in Europa e tariffe extra-UE, facci...
NVIDIA RTX Spark: quali saranno i primi ...
Collabora Online 26.04 porta l'IA nella ...
Google multata dall'UE per 890 milioni d...
Scopa elettrica MOVA G70 Complete a 199€...
Colonnine elettriche in Italia: record d...
Hyundai, operai in rivolta ma l'azienda ...
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: 16:49.


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