- Home
- Categorie
- Coding e Sistemistica
- PHP
- Aiuto: perchè la variabile è vuota ?
-
Aiuto: perchè la variabile è vuota ?
Salve a tutti, ho un problema:
Ho creato un DB MySQL, di nome 'glanz' contenente, per ora, solo una tabella 'amministratori' composta da 3 campi: ID (chiave primaria autoincrementante), username (char(15)) e password (char(12)).
Il tutto attraverso EasyPHP.
Ho scritto poi i seguenti codici:
---------------------------loging.php------------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Benvenuto</title>
</head><body>
<?PHP
// dati per la connessione al database
//$result = '';
$db_host = 'localhost';
$db_user = 'root';
$db_password = '';
$db_name = 'glanz';
// connessione al database
$conn = mysql_pconnect($db_host, $db_user, $db_password);
if ($conn == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($db_name)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
// query di controllo utente amministratore
$query = "SELECT password FROM 'amministratori' where username = '".$_POST['user']."'";
// esecuzione della query
$result = mysql_query($query,$conn);//se il risultato della query è andato a buon fine creo la pagina per l'interrogazione del DB/aggiunta di un nuovo prodotto
if($result == $_POST['pwd'])
/PAGINA INTERROGAZIONE DB/AGGIUNTA PRODOTTO///DEBUG print "OK";
//altrimenti ripropongo il login
else
/RIPROPONI LOGIN///DEBUG
{
echo "ERRORE!!!";
echo "POST USER=".$_POST['user']."\n";
echo "POST PWD=".$_POST['pwd']."\n";
echo "QUERY=".$query."\n";
echo "RESULT=".$result."\n";
}
//DEBUG
mysql_close($conn);
?></body>
</html>------------------------Login.php-----------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Pagina di accesso</title>
</head><body>
<center>
<table border="0" cellpadding="0" cellspacing="0">
<form name="login" method="post" action="loging.php">
<tr>
<td align="right">UserID: </td>
<td align="left"><input type="text" name="user" size="15" maxlength="15" /></td>
</tr>
<tr>
<td align="right">Password: </td>
<td align="left"><input type="password" name="pwd" size="12" maxlength="12" /></td>
</tr>
<tr>
<td align="right"><input type="reset" value="Resetta i campi" /></td>
<td align="left"><input type="submit" value="Entra" /></td>
</tr>
</form>
</table>
</center>
</body>
</html>solo che la variabile $result risulta sempre essre vuota, nonostante le statistiche di PHPMyAdmin dicano che le interrogazioni (select) avvengo correttamente e quindi la parte di codice riguardante la connessione, deduco che sia corretta!
:bho: :bho: AIUTO!!!
-
Ciao axlpx81, ti modifico il titolo del thread, in primo luogo perchè così si capisce su cosa hai bisogno di aiuto, in secondo perchè preferiamo non avere titoli "gridati" tutti in Maiuscolo.
-
Con la mysql_query lanci la query, per leggere devi usare mysql_fetch_array.
Quindi invece di così:
// esecuzione della query $result = mysql_query($query,$conn); //se il risultato della query è andato a buon fine creo la pagina per l'interrogazione del DB/aggiunta di un nuovo prodotto if($result == $_POST['pwd']) /*PAGINA INTERROGAZIONE DB/AGGIUNTA PRODOTTO*/
invece deve essere qualcosa tipo:
// esecuzione della query $result = mysql_query($query,$conn); //se il risultato della query è andato a buon fine creo la pagina per l'interrogazione del DB/aggiunta di un nuovo prodotto if ($rec = mysql_fetch_array($cerca, MYSQL_ASSOC)) if($rec['password'] == $_POST['pwd']) /*PAGINA INTERROGAZIONE DB/AGGIUNTA PRODOTTO*/
-
Non capisco però a cosa serve la varibile $cerca ...
-
Scusa, era $result:
// esecuzione della query $result = mysql_query($query,$conn); //se il risultato della query è andato a buon fine creo la pagina per l'interrogazione del DB/aggiunta di un nuovo prodotto if ($rec = mysql_fetch_array($result, MYSQL_ASSOC)) if($rec['password'] == $_POST['pwd']) /*PAGINA INTERROGAZIONE DB/AGGIUNTA PRODOTTO*/
-
Innanzitutto grazie per la risposta e per aver modificato il titolo del thread ... se ci fai caso, ho postato 2 volte lo stesso thread ma con titoli diversi dato che mie ro accorto di essere stato un pò troppo "impulsivo"!
Purtroppo sono un "novice" di PHP ... sono abituato ad usare JSP/Java!
Non capisco a cosa serva la variabile $cerca, o meglio, cosa conterrà dopo l'esecuzione della mysql_fetch_array ... deduco che sia una variabile booleana che fungerà da flag (:bho: ma non ne sono sicuro:bho: ).
-
Ho provato a inserire i cambiamenti ma la risposta che ottengo è la seguente:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\programmi\easyphp1-7\www\echimo\loging.php on line 36 (la linea 36 contiene "if ($rec = mysql_fetch_array($result, MYSQL_ASSOC))")
sto uscendo pazzo
-
Ora funziona tutto ... era solo questione di 2 apici posti nella select prima e dopo il nome della tabella ...
Grazie comunque della dritta ... dovrei offrirti un caffè o anche un sigaro se fumi!
-
@axlpx81 said:
Innanzitutto grazie per la risposta e per aver modificato il titolo del thread ... se ci fai caso, ho postato 2 volte lo stesso thread ma con titoli diversi dato che mie ro accorto di essere stato un pò troppo "impulsivo"!
Non preoccuparti, e grazie per avermi segnalato l'altro (non l' avevo visto ) che ho chiuso.