Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Discussione: [PHP]Modulo login

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    66

    [PHP]Modulo login

    Ragazzi non mi viene in mente niente per quanto riguarda la creazione di un modulo di login
    potete dirmi come cominciare?

  2. #2
    comincia a leggere la sezione HTML riguardante i form..
    Questa volta, più che un voto.. è favoreggiamento.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    66
    fino alla form ci sono, non sono così impedito io parlavo in quanto alle session del php.
    non ho idea di come lavorarci

  4. #4
    a che livello sei col php??
    Questa volta, più che un voto.. è favoreggiamento.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    66
    allora ho già creato il template, la css e il metodo get cn cui navigare nel sito tramite i lnk:

    es index.php?id=1-2 ecc ecc

    avevo creato un modulo test cn la variabile post in una form e funzionava,
    appunto era il metodo cn cui volevo provare a fare il form login però non so da dove cominciare

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    7
    vai alla sezione script e scaricane uno capirai sicuramente come funziona, cmq devi impostare un form cha attinge da in database o un array di utenti oppure imposta manualmente la password ma questo metodo è limitato solo ad un utente ok? ciao

  7. #7
    anch'io ho questo problema! creare una pagina di login per un solo utente, l'amministratore. ho trovato questo codice su html.it :
    codice:
    <?php
    require('db_conn/mysql.php');
     
    if (isset($_POST['user']))
      {
      $query_login="SELECT * FROM tabella_utenti
                    WHERE usr='".filtra_caratteri_dannosi($_POST['user'])."'
                    AND pwd='".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('usr');
        $_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>
    è corretto? ma cosa si intende all'inizio per usr='".filtra_caratteri_dannosi($_POST['user']) e poi per pwd='".md5($_POST['pwd'])?

  8. #8
    elisa

    leggendo brevemente il codice che hai postato quel ".filtra_caratteri dannosi ecc.." è una funzione che controlla credo con delle str_replace o eregi i caratteri che non si vogliono far immettere nel db, come per esempio tag "<" o apici.. o quello che vuoi tu.. invece il parametro md5 è un algoritmo complesso per criptare la password anche nel db e quindi impedire che anche l'amministratore del db possa sapere quale è la tua pass...



    spero di essere stato chiaro. :-)


    cmq sia credo che quello script sia abbastanza prolisso, se devi fare un log-in solo per l'amminsitratore io non lo farei così lo script, piuttosto creerei due pagine. login.php e check_user.php
    nella login.php metterei il form e i controlli javascript:

    <script language="javascript">

    function Validate() {

    var user=document.form1.user.value; //definisco la variabile del campo user
    var pass=document.form1.pass.value; // definisco la variabile del campo pass
    var regexp=/^([a-zA-Z0-9\.])+$/; // definisco in una espressione regolare che accetto solo lettere e numeri

    // controllo se il campo user è vuoto o meno
    if ((user == "") || (user == "undefined")) {
    alert("Inserire tutti i dati");
    document.modulo.user.focus();
    return false;
    }


    //controllo se il campo pass è vuoto o meno
    else if ((pass == "") || (pass == "undefined")) {
    alert("Inserire tutti i dati");
    document.modulo.pass.focus();
    return false;
    }

    // controllo se il campo user contiene solo lettere e numeri
    else if (!regexp.test(user)) {
    alert("Sono permessi soltanto lettere,numeri ed il punto");
    document.modulo.user.focus();
    return false;

    }

    // controllo se il campo pass contiene solo lettere e numeri
    else if (!regexp.test(pass)) {
    alert("Sono permessi soltanto lettere,numeri ed il punto");
    document.modulo.pass.focus();
    return false;

    }

    //INVIA IL MODULO SE TUTTO QUELLO SOPRA VA BENE
    else {
    document.form1.action = "salva_utente.php";
    document.form1.submit();
    }
    }

    </script>

    poi qui ci metto il form chiamando i due textfield "user" e "pass" che manderà con method=post i valori alla pagina check_user.php


    e qui finisce la pagina login.php


    passiamo alla pagina check_user.php


    da questa pagina io ricevo i valori dal form, controllo se esiste già una sessione e se esiste la distruggo perchè potrebbe contenere valori che io non voglio, eseguo una query sul db per vedere se i due dati passati dal form esistono nel database e se tutto quello sopra è valido, creo una sessione e ridirigo l'utente alla pagina dopo.

    check_user.php
    <?php


    session_start(); //starto la sessione

    include "db.php"; //includo il file per il collegamento al db (parametri vari)

    $user = $_POST['user'];
    $pass = $_POST['pass']; //converto i valori in variabili semplici


    $query= "SELECT * FROM utenti WHERE user='$user' AND pass='md5($pass)' " ;
    $sql = mysql_query($query);
    $login_check = mysql_num_rows($sql);

    if($login_check > 0){
    $row = mysql_fetch_array($sql);
    $nome=$row["user"]; // controllo nel db se esiste nome utente e pass


    // controllo se esiste già una sessione che si chiama come quella che voglio creare e se esiste suppongo che non l'ho creata io e la distruggo per sicurezza
    if($_SESSION['nome']) {

    $_SESSION=array(); // Desetta tutte le variabili di sessione.
    session_destroy(); //DISTRUGGE la sessione.
    }
    // Registro nella sessione le variabili
    session_register('nome');
    $_SESSION['nome'] = $nome;


    header ("Location:index.php"); // ridirigo l'utente alla pagina successiva se tutto è andato a buon fine.


    ?>

    e questo è tutto.. :-)

  9. #9
    ti ringrazio per la gentilissima risposta! ora però mi trovo con un altro problema: non riesco a passare la variabile di sessione alle altre pagine!!

    allora la pagina di controllo della login ha il seguente codice:
    codice:
    $row = mysql_fetch_array($sql);
    $utente = $row['usr']; 
    		
    if(isset($_SESSION['utente'])) {
    session_destroy(); 
    } else {
    session_register('utente');
    $_SESSION['utente'] = $utente; }
    header ('location:main.php'); 
    }
    else ....
    e la pagina main ha questo codice:
    codice:
    <?php
    // Controllo accesso
    session_start();
    if (!isset($_SESSION['utente']))
      {
        header('location:login_failed.php');
        exit;
      } 
     
    // Il resto dello script
    include('header.htm'); 
    ?>
    
    <h3>Area Riservata!</h3>
    <p class=\"inrilievo\">Benvenuto!</p>
    
    <?php include('footer.htm'); ?>
    ma non funziona!! mi manda sempre alla pagina login_failed... perché??? Grazie!!!

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    non vedo il session_start() nella pagina di controllo

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 © 2024 vBulletin Solutions, Inc. All rights reserved.