Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di girl83
    Registrato dal
    Jan 2008
    Messaggi
    32

    Autenticazione PHP (Vi posto il codice)

    Ciao.
    Ho un codice di autenticazione in php che punta al db sql.
    Purtroppo mi viene sempre visualizzato un errore.
    Chiedo un Vs. consulto in quanto non riesco a "cavarci i piedi".

    Codice PHP:
    <?php
    $host
    ="127.0.0.1";
    $user="root";
    $password="QEuDmS2008";

    mysql_connect($host,$user,$password);
    mysql_select_db("siteminder");
     
    if (isset(
    $_POST['user']))
      {
      
    $query_login="SELECT * FROM mylogin
                    WHERE username = '"
    .($_POST['user'])."'
                    AND psw = '"
    .MD5($_POST['pwd'])."'";
      
    $rslt_login=$mysqlwrapper->Execute($query_login) or die("Errore di autenticazione. ");
     
      if (!
    $rslt_login->EOF)
        {
        
    // Esiste un record con questi username più(firma)password:
        // inserisco i dati nella sessione
        
    session_start();
        
    $_SESSION['Username']=$rslt_login->Fields('username');
        
    $_SESSION['Usergroup']=$rslt_login->Fields('group');
        
    header('location:main.php');
        }
       else 
    header('location:login_failed.php');
      }
    ?>
     
    <html>
    <head>
    <title>Esempio login</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
     
    <body onLoad="document.form1.user.focus()">
    <form name="form1" method="POST" action="index.php">
      <table border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td>Nome utente: </td>
          <td><input name="user" type="text" id="user"></td>
        </tr>
        <tr>
          <td>Password: </td>
          <td><input name="pwd" type="password" id="pwd"></td>
        </tr>
        <tr>
          <td colspan="2"><input name="Submit" type="submit" value="Entra"></td>
        </tr>
      </table>
    </form>
    </body>
    </html>
    Lanciando questo script vengono correttamente visualizzati i due campi text e il bottone "entra".

    Inserendo i dati, anche con valori non presenti sul db (user e password scorretti) viene visualizzato questo messaggio:

    Fatal error: Call to a member function Execute() on a non-object in C:\xampp\htdocs\contim\index.php on line 14.

    Chiedo un Vs. consulto.

    Grazie.

    Girl83

  2. #2
    perkè usi questo?

    Codice PHP:
    $rslt_login=$mysqlwrapper->Execute($query_login) or die("Errore di autenticazione. "); 
    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

  3. #3
    Utente di HTML.it L'avatar di girl83
    Registrato dal
    Jan 2008
    Messaggi
    32
    ... perchè passo dalla query!

    Hai un' alternativa?

  4. #4
    Si, usare mysql_query().....

  5. #5
    Utente di HTML.it L'avatar di girl83
    Registrato dal
    Jan 2008
    Messaggi
    32
    Si, usare mysql_query().....

    .... cioè cosi:

    Codice PHP:
    $rslt_login=$mysqlwrapper->Execute($mysql_query) or die("Errore di autenticazione. "); 

  6. #6
    No.
    devi usare la funzione mysql_query();

    Codice PHP:
      $query_login="SELECT * FROM mylogin
                    WHERE username = '"
    .($_POST['user'])."'
                    AND psw = '"
    .MD5($_POST['pwd'])."'";
      
    $esegui_query=mysql_query($query_login) or die("Errore di autenticazione. ");
    $rslt_login=mysql_fetch_array($esegui_query); //ora fai un'array della riga trovata(visto che dovrà essercene solo una a regola...) 

      
    if ($rslt_login!==0)
        {
        
    // Esiste un record con questi username più(firma)password:
        // inserisco i dati nella sessione
        
    session_start();
        
    $_SESSION['Username']=$rslt_login['username']//o il campo della tabella che vuoi...
        
    $_SESSION['Usergroup']=$rslt_login['group'//o il campo della tabella che vuoi...
        
    header('location:main.php');
        }
       else 
    header('location:login_failed.php');
      } 
    Prendo il risultato con mysql_query(), lo trasformo in un array visto che penso ci sarà solo una riga da usare... poi li registri nella sessione...

  7. #7
    Utente di HTML.it L'avatar di girl83
    Registrato dal
    Jan 2008
    Messaggi
    32
    Purtroppo dopo la tua modifica anche se le credenziali sono scorrette o corrette mi apre sempre main.php


    Codice PHP:
    <?php
    $query_login
    ="SELECT * FROM mylogin 
                    WHERE username = '"
    .($_POST['user'])."' 
                    AND psw = '"
    .MD5($_POST['pwd'])."'"
      
    $esegui_query=mysql_query($query_login) or die("Errore di autenticazione. "); 
    $rslt_login=mysql_fetch_array($esegui_query); //ora fai un'array della riga trovata(visto che dovrà essercene solo una a regola...) 

      
    if ($rslt_login!==0
        { 
        
    // Esiste un record con questi username più(firma)password: 
        // inserisco i dati nella sessione 
        
    session_start(); 
        
    $_SESSION['Username']=$rslt_login['username']//o il campo della tabella che vuoi... 
        
    $_SESSION['Usergroup']=$rslt_login['group'//o il campo della tabella che vuoi... 
        
    header('location:main.php'); 
        } 
       else 
    header('location:login_failed.php'); 
      }
    ?>

  8. #8
    aspetta...ho sbagliato :berto:

    qui:
    Codice PHP:
    if ($rslt_login!==0
    metti così:
    Codice PHP:
    if($rslt_login
    oops...
    così penso che dovrebbe andare...

  9. #9

    Re: Autenticazione PHP (Vi posto il codice)

    Originariamente inviato da girl83
    Codice PHP:
    <?php
    $host
    ="127.0.0.1";
    $user="root";
    $password="QEuDmS2008";

    mysql_connect($host,$user,$password);
    mysql_select_db("siteminder");
     
    if (isset(
    $_POST['user']))
      {
      
    $query_login="SELECT * FROM mylogin
                    WHERE username = '"
    .($_POST['user'])."'
                    AND psw = '"
    .MD5($_POST['pwd'])."'";
      
    $rslt_login=$mysqlwrapper->Execute($query_login) or die("Errore di autenticazione. ");
     
      if (!
    $rslt_login->EOF)
        {
        
    // Esiste un record con questi username più(firma)password:
        // inserisco i dati nella sessione
        
    session_start();
        
    $_SESSION['Username']=$rslt_login->Fields('username');
        
    $_SESSION['Usergroup']=$rslt_login->Fields('group');
        
    header('location:main.php');
        }
       else 
    header('location:login_failed.php');
      }
    ?>
    Il tuo codice originario non funziona poichè fai riferimento a funzioni di una classe che non è stata mai dichiarata da nessuna parte.
    Per PHP questo:
    Codice PHP:
    $mysqlwrapper->Execute() 
    fa riferimento alla funzione "Execute()" della classe istanziata da "$mysqlwrapper".
    Il problema è che "$mysqlwrapper" non è mai stato dichiarato, ad esempio con:
    Codice PHP:
    require_once 'includes/mysqlwrapper.class.php';
    $mysqlwrapper = new classe_mysqlwrapper
    ...tutto qua.

    Quindi o sistemi il codice integrando quello che serve per usare la classe che spero tu abbia o prosegui come ti è stato suggerito.
    Administrator of NAMDesign.Net

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.