Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 38

Discussione: PHP Autenticazione

  1. #1

    PHP Autenticazione

    Salve a tutti sono un newbie nel settore php e sto facendo un semplice sito registrazione e login allora vi spiego il mio piccolo problema
    allora io ho una pagina "index.php" questa con colonna unica e una navigazione orizzontale e sotto la User bar, in quest ultima è presente il seguente codice
    Codice PHP:
    if (isset($_SESSION['login'])) { 
    echo 
    $_SESSION['login'] ."Sei Online.  Entra nella tua pagina"; } 
    else { echo 
    " <form action='login.php' method='POST'> 
    Username: <input name='username' type='text'> 
    Password: <input name='password' type='password' size='20'> 
    <input name='submit' type='submit' value='Login'> 
    Non sei registrato?[url='registra.php']Registrati[/url]</form>"
    ; }; ?> 
    ok quando faccio il login vado nella pagina login.php tramite il form ecco il codice.
    Codice PHP:
    <?php include ('Config.php'); 
    $username$_POST['username']; 
    $password$_POST['password']; 
    $query_sql"SELECT * FROM `tabella_registrati` WHERE nick='$username' AND pass='$password'";  
    mysql_query ($query_sql); 
    if ( 
    $query_sql == TRUE 
    session_start(); 
    $_SESSION['login'] = $username
    $_SESSION['pass'] = $password
    echo 
    "[url='index.php']Torna alla home[/url]"; }else echo "Utente o password non presenti o non corrispondenti";

     
    ?>
    bhe io faccio il login con i dati giusti e funziona XD apparentemente ma poi sbagliando a mettere il nick lui comunque mi loggava come è possibile? se è un errore per dire banale mi scuso e ridico che comunque sto imparando

  2. #2
    quel session_start() dovrebbe stare all'inizio e non dove si trova... se non chiudi la sessione probabilmente tiene in memoria i dati corretti...

    per fare distruggi sessione usa:

    session_destroy();

    anche se è meglio aggiungere quale sessione distruggi.

  3. #3
    a parte il session_start() all'inizio io imposterei in questo modo:
    Codice PHP:
     $user=mysql_real_escape_string($user);
    $password=mysql_real_escape_string($password);
    $query_sql"SELECT * FROM `tabella_registrati` WHERE nick='$username' AND pass='$password'";  
    $result=mysql_query($query_sql);
     
    if (
    mysql_num_rows($result) >0

    $_SESSION['login'] = $username;   
    }
    else
    {
      
    //login fallito


  4. #4
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    intanto if($variabile == TRUE) è bruttino come if($variabile == FALSE)
    basta fare invece, rispettivamente if($variabile) e if(!$variabile)
    nel tuo caso devi fare
    Codice PHP:
    <?php include ('Config.php');  
    $username$_POST['username'];  
    $password$_POST['password'];  
    $query_sql"SELECT * FROM `tabella_registrati` WHERE nick='$username' AND pass='$password'";  
    $result mysql_query ($query_sql);
    if(
    $row mysql_fetch_row($result))

    session_start();  
    $_SESSION['login'] = $username;  
    $_SESSION['pass'] = $password;  
    echo 
    "[url='index.php']Torna alla home[/url]"; }else echo "Utente o password non presenti o non corrispondenti";
    dove mysql_fetch_row mette in $row il risultato della query se trova un record

  5. #5
    però io devo fare in modo che il testo una volta tornato alla home sia sostituito e poi visto che distruggo la sessione alla fine (secondo il tuo consiglio) allora le variabili messere nelle $_SESSION si cancellano e quindi mi dà sempre il form non sò se mi sono spiegato bene

  6. #6
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    Originariamente inviato da checcolino
    però io devo fare in modo che il testo una volta tornato alla home sia sostituito e poi visto che distruggo la sessione alla fine (secondo il tuo consiglio) allora le variabili messere nelle $_SESSION si cancellano e quindi mi dà sempre il form non sò se mi sono spiegato bene
    infatti sessin_destroy va messo in una funzione ad hoc chimata poi tramite un link per il log-out

  7. #7
    GRAZIE bstefano97 sono riuscito a risolvere e ho capito anche dov'era il problema XD grazie ancora

  8. #8
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    bstefano97 magari

    va bene anche come ha scritto edi73
    if (mysql_num_rows($result) >0)

    mysql_num_rows restituisce il numero di record "tirati su" dalla query

  9. #9
    per evitare di aprire un altro topic volevo chiedere quando io creo la pagina del profilo e voglio mettere l'immagine come dovrei fare per selezionare la riga del database dov'è presente il nome e la pass e poi mettere l'img con il link cioè "[img]codice php [/img]".
    non avrei idea di come fare, avevo pensato al metodo usato per il login ma non mi viene in mente niente

  10. #10
    Originariamente inviato da bstefano79
    bstefano97 magari

    va bene anche come ha scritto edi73
    if (mysql_num_rows($result) >0)

    mysql_num_rows restituisce il numero di record "tirati su" dalla query
    Semmai bstefano79

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.