Visualizzazione dei risultati da 1 a 6 su 6

Discussione: login in php

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    173

    login in php

    Ragazzi ho un problema con un login... Se la sessione non viene inizializzata quando faccio il login, lui mi deve fare un redirect alla index... ma il fatto è che me lo fà sempre... non mi fà accedere alla pagina "riservata".
    Vi posto il codice

    Codice PHP:
    <?php 
    session_start
    (); 

    session_regenerate_id(); 

    include(
    'config.php');

     
    $email_log $_POST['email1'];

     
    $password $_POST['password1'];



     if(
    $email_log == "Email" || $password == "password123"){ 

                  echo 
    "Devi compilare tutti i campi";
     exit(); 

    }

     if(!isset(
    $_SESSION['login'] )){
     
               
    header("location:index.html");
     exit();
     
    }else{ 

               if(isset(
    $email_log) AND isset($password)){ 
                      
    $query mysql_query("SELECT * FROM dati_utenti WHERE email='$email_log' AND password=MD5('$password') ") or die (mysql_error());

     
    $count mysql_num_rows($query);
     
                 if(
    $count == 1){
                              
    $result mysql_fetch_array($query);
                              
    $_SESSION['login'] = $result['nome']; 
               }else{ 

                        echo 
    "Dati errati";
                    exit(); 
     
    }
               
    #se il login viene effettuato mi mostri questo
              
    if(isset($_SESSION['login'] )){
              echo 
    "Benvenuto ".$_SESSION['login'];
             echo 
    "<form action='logout.php' method='POST'><input type='submit' value='Esci' />
       </form>"
    ;
                   } 
              } 
          } 
    ?>

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Ci sono diverse cose che secondo me non vanno bene nel tuo codice:
    Codice PHP:
    $email_log $_POST['email1'];
    $password $_POST['password1']; 
    Visto che sui dati non fai nessun check (e invece dovresti farlo per evitare sql injection), tanto vale usare direttamente $_POST['email'] e $_POST['password'], l'assegnazione ti mangia solo memoria senza motivo.
    Codice PHP:
    if($email_log == "Email" || $password == "password123"){ 
        echo 
    "Devi compilare tutti i campi";
        exit(); 

    Che succede se uno manda i campi vuoti? Il tuo codice non se ne accorge e invece dovrebbe mostrare lo stesso messaggio ed uscire.
    Codice PHP:
    if(isset($_SESSION['login'] )){
        echo 
    "Benvenuto ".$_SESSION['login'];
        echo 
    "<form action='logout.php' method='POST'><input type='submit' value='Esci' /></form>";

    Non te la mostra questa cosa se il login va a buon fine e quindi inizializzi $_SESSION[login']?

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    173
    Codice PHP:
    if($email_log == "Email" || $password == "password123"){ 
              echo 
    "Devi compilare tutti i campi"
              exit(); 

    Ho fatto questo perchè nell'html ho messo questo



    codice:
    <label class="login">Login</label>
     
    <form action="login.php" method="POST"> 
    
    <center> 
    
    <hr style="width:170px; background:#cccccc;"/>
    
     <input type="text" name="email1" class="em" value="Email" onblur="if(this.value == '') { this.value='Email'}" onfocus="if (this.value == 'Email') {this.value=''}" />
    
    
     
    
    <input type="password" name="password1" class="ps" value="Password123" onblur="if(this.value == '') { this.value='Password123'}" onfocus="if (this.value == 'Password123') {this.value=''}" />
    
     <input type="submit" value="Accedi" class="accedi" /> 
    
    </center>
    
    </form>
    Ma il vero problema è che se faccio una pulizia dei cookie e delle sessioni, quando faccio il login non mi fà accedere ma mi riporta sempre alla index (perchè io ho impostato che se la sessione non è inizializzata mi fà un redirect. In parole povere non mi attiva la sessione! )

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Originariamente inviato da Joisberg
    Ho fatto questo perchè nell'html ho messo questo [...]
    I controlli Javascript lasciano il tempo che trovano, se chi è sulla pagina disabilita Javascript quei controlli non vengono eseguiti e si possono mandare anche campi vuoti.
    Tu dirai "chi è quel fesso che dovrebbe fare una cosa simile?", chi per esempio vuole forzare il sistema, se fai solo controlli Javascript gli lasci vita facile per farti dei bei danni.
    Ma il vero problema è che se faccio una pulizia dei cookie e delle sessioni, quando faccio il login non mi fà accedere ma mi riporta sempre alla index (perchè io ho impostato che se la sessione non è inizializzata mi fà un redirect. In parole povere non mi attiva la sessione! )
    Dovresti postare tutto il codice coinvolto, non abbiamo la sfera di cristallo per sapere cosa fai altrove e magari è lì che si trova il problema.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    173
    <?php

    session_start();
    session_regenerate_id();
    #session_register('login');

    include('config.php');

    $email_log = $_POST['email1'];
    $password = $_POST['password1'];
    #$id = $_SESSION['login'];

    if($email_log == "Email" || $password == "password123"){

    header("location:login.html");
    exit();
    }

    if(!isset($_SESSION['login'] )) {

    header("location:index.html") ;
    exit();

    }else{

    if(isset($email_log) AND isset($password)){

    $query = mysql_query("SELECT * FROM dati_utenti WHERE email='$email_log' AND password=MD5('$password') ") or die (mysql_error());

    $count = mysql_num_rows($query);

    if($count == 1){

    $result = mysql_fetch_array($query);
    $_SESSION['login'] = $result['nome']." ".$result['cognome'];



    }else{

    header("location:login.html");
    exit();
    }

    if(isset($_SESSION['login'] )){
    echo "Benvenuto <b style='color:#143d66;'>".$_SESSION['login']."[/b]";
    echo "<form action='logout.php' method='POST'><input type='submit' value='Esci' /></form>";
    }
    }
    }
    ?>

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    173
    Andiamo qualcuno che mi aiuti

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.