• User

    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!!! :arrabbiato: :arrabbiato:


  • Bannato Super User

    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.

    :ciauz:


  • User Attivo

    Con la mysql_query lanci la query, per leggere devi usare mysql_fetch_array.

    Quindi invece di così:

    
    // esecuzione della query 
    $result = mysql_query&#40;$query,$conn&#41;; 
    
    //se il risultato della query è andato a buon fine creo la pagina per l'interrogazione del DB/aggiunta di un nuovo prodotto 
    if&#40;$result == $_POST&#91;'pwd'&#93;&#41; 
    /*PAGINA INTERROGAZIONE DB/AGGIUNTA PRODOTTO*/ 
    
    

    invece deve essere qualcosa tipo:

    
    // esecuzione della query 
    $result = mysql_query&#40;$query,$conn&#41;; 
    
    //se il risultato della query è andato a buon fine creo la pagina per l'interrogazione del DB/aggiunta di un nuovo prodotto 
    if &#40;$rec = mysql_fetch_array&#40;$cerca, MYSQL_ASSOC&#41;&#41;
      if&#40;$rec&#91;'password'&#93; == $_POST&#91;'pwd'&#93;&#41; 
      /*PAGINA INTERROGAZIONE DB/AGGIUNTA PRODOTTO*/ 
    
    

  • User

    Non capisco però a cosa serve la varibile $cerca ...


  • User Attivo

    Scusa, era $result:

    
    // esecuzione della query 
    $result = mysql_query&#40;$query,$conn&#41;; 
    
    //se il risultato della query è andato a buon fine creo la pagina per l'interrogazione del DB/aggiunta di un nuovo prodotto 
    if &#40;$rec = mysql_fetch_array&#40;$result, MYSQL_ASSOC&#41;&#41; 
      if&#40;$rec&#91;'password'&#93; == $_POST&#91;'pwd'&#93;&#41; 
      /*PAGINA INTERROGAZIONE DB/AGGIUNTA PRODOTTO*/ 
    
    

  • User

    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: ). 😢 😢


  • User

    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 :arrabbiato:


  • User

    😄 😄 😄 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 :fumato: se fumi!


  • Bannato Super User

    @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 :arrabbiato: ) che ho chiuso.

    🙂