Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Il primo Micro RGB di Samsung per il salotto è il 65 pollici da 2.749 euro. Sul banco di misura abbiamo rilevato 2.000 nit di picco, nero assoluto con il local dimming e il 91,4% del BT.2020, il colore più ampio che abbiamo misurato su un LCD
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
Apple ha rinnovato iPhone 18 Pro soprattutto dentro: chip A20 Pro a 2 nm con memoria affiancata al SoC, camera di vapore tre volte più ampia, Dynamic Island più piccola del 25% grazie a Face ID sotto il display e fotocamera principale con diaframma variabile da f/1.48 a f/4. Lo abbiamo misurato al colorimetro e nei benchmark, usato con iOS 27 e messo alla prova in fotografia tra laghi, borghi e interni poco illuminati
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
A Londra, per il trentennale dei Toughbook, Panasonic ha presentato il tablet G3 e il 2-in-1 34. Con Jon Tucker, a capo dell'ingegneria europea, abbiamo parlato di ciò che non si vede: batterie, antenne, porte seriali e accorgimenti nati sul campo
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==1 && 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==1 && 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==1 && $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==1 && $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


Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre iPhone 18 Pro: la recensione del miglior iPhone ...
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34 Panasonic, 30 anni di Toughbook: la "Bibbia...
realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione realme C100x, lo smartphone economico con la bat...
Star Wars Zero Company è l'erede di XCOM 2 Star Wars Zero Company è l'erede di XCOM ...
SpaceX ha lanciato le missioni Crew-13, ...
DJI Avata 2 in offerta Prime: drone FPV ...
Microsoft vuole far agire l'IA prima anc...
Ginga porta il monitoraggio delle perfor...
Tesla sorprende Wall Street: 486.532 con...
Cosa succede alle ossa degli astronauti ...
AgriEuro Premium Days: il 6 e 7 ottobre ...
259 euro per 2 TB di SSD PCIe 4.0 (Biwin...
GPT-6 Astra decifra dopo 217 anni una le...
Roborock Saros 20 Neo: pulisce al meglio...
Samsung Galaxy S27 Ultra, nuove conferme...
Offerte Prime Candy: lavatrice ProWash 3...
Tegola su Anthropic, gli agenti AI valgo...
E-bike in carbonio con un prezzo assurdo...
Serrature smart SwitchBot Lock Ultra in ...
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: 19:07.


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