Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    209

    problemi con Accesso ad area protetta

    Ragazzi qualcuno riesce a spiegarmi il motivo per cui non riesco a loggarmi con questo codice?
    Sul mio database i dati sono giusti.....
    Se volete provare è al link seguente. Potete accedere con admin e password: prova

    <?php
    include ("config.php");
    include ("miefunzioni.inc");

    //verifica_SSL();

    session_start();

    if( !isset($_POST['utente']) and !isset($_POST['password']) )
    {
    ?>
    <html>
    <head>
    <title>Ricettario dello studente</title>
    </head>
    <body>

    <font face="Arial" size="5" align="center">Benvenuti nel "Ricettario dello studente"</font>



    <font face="Arial" size="3" align="center">Per poter usufruire dei servizi di questo sito bisogna essere iscritti.</font>
    <form action="<?php print $_SERVER['PHP_SELF']; ?>" method="POST">
    <th>Login: </th>
    <input type="text" name="utente">


    <th>Password: </th>
    <input type="password" name="password">


    <input type="submit" value ="Invia">
    </form>


    <font face ="arial">Non sei ancora iscritto? ISCRIVITI!</font>


    </body>
    </html>
    <?php
    }
    else
    {
    $ptr_mysqls=mysql_connect($dbhost,$dbusername,$dbp ass) //Connessione al database
    or die("Impossibile connettersi al server MySQL.\n");
    mysql_select_db($dbname, $ptr_mysqls)// selezione del database
    or die("Impossibile aprire il database.\n");

    $md5password=md5($_POST['password']); //generazione della password inserita nel database
    $query_visualizzazione="SELECT * FROM '$tabutente'" .
    " WHERE utente='{$_POST['utente']}' AND password='$md5password'";
    $ptr_risultato_query=mysql_query($query_visualizza zione, $ptr_mysqls);

    $numero_records=mysql_affected_rows($ptr_mysqls); // numero di righe di utenti in database
    mysql_close($ptr_mysqls); // chiude il collegamento al database

    if($numero_records == 1)
    {
    // Utente identificato
    $_SESSION['utente']=$_POST['utente'];
    $_SESSION['password']=$_POST['password'];
    $_SESSION['IP_utente']=$_SERVER['REMOTE_ADDR'];
    header("Location: http://" . $_SERVER['HTTP_HOST'] .
    dirname($_SERVER['PHP_SELF']) . "/ricettario.php");
    exit;
    }

    ?>
    <html>
    <head>
    <title>Ricettario Studente</title>
    </head>
    <body>
    <?php
    $post = $_POST['utente'];
    $pas = $_POST['password'];

    var_dump($post);
    var_dump($numero_records);
    var_dump($md5password);
    var_dump($ptr_risultato_query);
    ?>
    <h3>Attenzione, Utente o Password non corretti!!!! ripetere grazie</h3>

    </body>
    </html>

    <?php
    }
    ?>

  2. #2
    Un paio di errori al volo... cioe' senza precludere la possibile presenza di altri.

    la prima if:

    if( !isset($_POST['utente']) and !isset($_POST['password']) )

    penso dovrebbe essere un OR e non una AND.

    poi una select non valorizza mysql_affected_rows(), ma bensi':

    mysql_num_rows($ptr_risultato_query)

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    209
    Per quanto riguarda la prima osservazione devo imporre al programma che tutte e due siano vere.
    Per quanto riguarda la seconda affermazione non ho capito cosa intendi dire....

  4. #4
    La seconda:
    codice:
    $numero_records = mysql_affected_rows($ptr_mysqls); 
              // numero di righe di utenti in database
    questo funziona a seguire una INSERT, DELETE, UPDATE e non la SELECT.


    La prima.... siccome neghi !ISSET(), la condizione sara' TRUE solo se entrambi user e password saranno NON settati. Se solo uno dei due fosse settato la condizione AND dara' FALSE e passi quindi all'ELSE. Presumevo quindi che se username non settato OR password non settato tu volessi mandare al form. Forse sarebbe anche piu' corretto usare EMPTY() invece di ISSET()... $_POST e' sempre settato.

    diciamo che preferirei fare:
    codice:
    if(!empty($_POST['utente']) AND !empty($_POST['password'])  {
    
    esegui il controllo
    
    }  else { mando al form  }
    Si tratta comunque di una mia preferenza....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    209
    Ho provato ma non si risolve niente......
    Non so più cosa fare!!!!

  6. #6
    Originariamente inviato da dtomasini
    Ho provato ma non si risolve niente......
    Non so più cosa fare!!!!
    prova a postare le correzioni che hai fatto allo script.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    209
    Se ho capito bene, lo credo però difficile, io ho fatto così, ma il risultato non cambia...

    <?php
    include ("config.php");
    include ("miefunzioni.inc");

    //verifica_SSL();

    session_start();

    if(!empty($_POST['utente']) AND !empty($_POST['password']) )
    {
    $ptr_mysqls=mysql_connect($dbhost,$dbusername,$dbp ass) //Connessione al database
    or die("Impossibile connettersi al server MySQL.\n");
    mysql_select_db($dbname, $ptr_mysqls)// selezione del database
    or die("Impossibile aprire il database.\n");

    $md5password=md5($_POST['password']); //generazione della password inserita nel database
    $query_visualizzazione="SELECT * FROM '$tabutente'" .
    " WHERE utente='{$_POST['utente']}' AND password='$md5password'";
    $ptr_risultato_query=mysql_query($query_visualizza zione, $ptr_mysqls);

    $numero_records=mysql_num_rows($ptr_mysqls); // numero di righe di utenti nella query
    mysql_close($ptr_mysqls); // chiude il collegamento al database

    if($numero_records == 1)
    {
    // Utente identificato
    $_SESSION['utente']=$_POST['utente'];
    $_SESSION['password']=$_POST['password'];
    $_SESSION['IP_utente']=$_SERVER['REMOTE_ADDR'];
    header("Location: http://" . $_SERVER['HTTP_HOST'] .
    dirname($_SERVER['PHP_SELF']) . "/ricettario.php");
    exit;
    }

    ?>
    <html>
    <head>
    <title>Ricettario Studente</title>
    </head>
    <body>
    <?php
    $post = $_POST['utente'];
    $pas = $_POST['password'];
    var_dump($post);
    var_dump($numero_records);
    var_dump($md5password);
    var_dump($ptr_risultato_query);
    ?>
    <h3>Attenzione, Utente o Password non corretti!!!! ripetere grazie</h3>

    </body>
    </html>

    <?php
    }
    else
    {
    ?>
    <html>
    <head>
    <title>Ricettario dello studente</title>
    </head>
    <body>

    <font face="Arial" size="5" align="center">Benvenuti nel "Ricettario dello studente"</font>



    <font face="Arial" size="3" align="center">Per poter usufruire dei servizi di questo sito bisogna essere iscritti.</font>
    <form action="<?php print $_SERVER['PHP_SELF']; ?>" method="POST">
    <th>Login: </th>
    <input type="text" name="utente">


    <th>Password: </th>
    <input type="password" name="password">


    <input type="submit" value ="Invia">
    </form>


    <font face ="arial">Non sei ancora iscritto? ISCRIVITI!</font>
    </form>


    </body>
    </html>

    <?php
    }
    ?>

  8. #8
    codice:
    $ptr_risultato_query = mysql_query($query_visualizzazione, $ptr_mysqls);
    
    $numero_records = mysql_num_rows($ptr_risultato_query); 
    // numero di righe di utenti nella query
    vuole il thread di risorsa, non quello della connessione.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    209
    ok ci provo e ti faccio sapere.

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    209
    Ho fatto in questa maniara, ma il risultato non cambia.

    $md5password=md5($_POST['password']); //generazione della password inserita nel database
    $query_visualizzazione="SELECT * FROM '$tabutente'" .
    " WHERE utente='{$_POST['utente']}' AND password='$md5password'";
    $ptr_risultato_query=mysql_query($query_visualizza zione, $ptr_mysqls);

    $numero_records=mysql_num_rows($ptr_risultato_quer y); // numero di righe di utenti nella query
    mysql_close($ptr_mysqls); // chiude il collegamento al database

    if($numero_records == 1)
    {
    // Utente identificato
    $_SESSION['utente']=$_POST['utente'];
    $_SESSION['password']=$_POST['password'];
    $_SESSION['IP_utente']=$_SERVER['REMOTE_ADDR'];
    header("Location: http://" . $_SERVER['HTTP_HOST'] .
    dirname($_SERVER['PHP_SELF']) . "/ricettario.php");
    exit;
    }
    Quando var_dump() mi da il risultato della variabile $numero_records mi da NULL. perchè? non dovrebbe darmi uno? ho visionato il database e l'account e la password sono giusti!

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.