Visualizzazione risultati 1 fino 6 di 6

Discussione: Come mantenere loggato l'utente

  1. #1
    Guest

    Predefinito Come mantenere loggato l'utente

    Salve utenza, per il login utilizzo questo script:

    Codice PHP:
    <?php

    if(isset($_POST['login'])){
    $ID = $_POST['id'];
    $PASSWORD = $_POST['password'];

    $ID_REG = array ("marco", "paolo", "luca", "franco");
    $PASS = array("a", "b", "c", "d");
    $num_utenti = 4;

    for(
    $i=0;$i<$num_utenti;$i++){
    if ( (
    $ID==$ID_REG[$i]) AND ($PASSWORD==$PASS[$i]) ) {
    echo
    "Esatto!";
    break;
    }
    else if(
    $i == ($num_utenti -1)) {
    echo
    "Errato!";
    }
    }
    }
    ?>

    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <input type="text" name="id" value="">
    <input type="password" name ="password" value="">
    <input type="submit" value="logini" name="login">
    </form>
    Vorrei sapere come fare in modo che in una determinata pagina se non hai effettuato il login ti reindirizzi ad un altra! Grazie!

  2. #2
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Devi usare le sessioni!

    Codice PHP:
    <?php
    session_start
    ();

    if(isset(
    $_POST['login'])){
    $ID = $_POST['id'];
    $PASSWORD = $_POST['password'];

    $ID_REG = array ("marco", "paolo", "luca", "franco");
    $PASS = array("a", "b", "c", "d");
    $num_utenti = 4;

    for(
    $i=0;$i<$num_utenti;$i++){
    if ( (
    $ID==$ID_REG[$i]) AND ($PASSWORD==$PASS[$i]) ) {
    echo
    "Esatto!";
    $_SESSION['logged'] = true;
    break;
    }
    else if(
    $i == ($num_utenti -1)) {
    echo
    "Errato!";
    $_SESSION['logged'] = false;
    }
    }
    }
    ?>

    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <input type="text" name="id" value="">
    <input type="password" name ="password" value="">
    <input type="submit" value="logini" name="login">
    </form>
    In un'altra pagina .php:
    Codice PHP:
    <?php
    session_start
    ();

    if(isset(
    $_SESSION['logged']) && $_SESSION['logged'] === true) {
    header('Location: login_ok.php');
    } else {
    header('Location: login_ko.php');
    }
    ?>

  3. #3
    Guest

    Predefinito

    Grazie, nel frattempo avevo un pò modificato lo script, ma adesso c'è qualcosa che non và, dato che quando tento di accedere mi dice "si è verificato un errore Indietro".
    Cosa sbaglio?

    Codice PHP:
    <?php
    if(isset($_POST['login'])){
    $username = $_POST['username']; //Prendo l'username dell'utente
    $password = $_POST['password']; //Prendo la password dell'utente

    include ("config.inc.php");//racchiudono il necessario per la connessione
    include ("connct.php");//racchiudono il necessario per la connessione


    $query = "SELECT * FROM utenti WHERE Username = $username AND password = $password"; //Creo la query
    $result = mysql_query($query); //Svolgo la query
    if (!$result) { //Se la query non da risultato
    echo 'Si è verificato un errore nel login!<br /><br /> <a href="#" onclick="history.go(-1);return false;">Indietro</a>';

    } else {
    session_start(); //Apro una sessione
    $_SESSION['username'] = $username;
    $_SESSION['login'] = 'OK';
    header('Location: index.php'); //Reindirizzo alla home
    }
    }
    ?>
    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <input type="text" name="username" value="">
    <input type="password" name ="password" value="">
    <input type="submit" value="logini" name="login">
    </form>

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da enkantar Visualizza messaggio
    Grazie, nel frattempo avevo un pò modificato lo script, ma adesso c'è qualcosa che non và, dato che quando tento di accedere mi dice "si è verificato un errore Indietro".
    Cosa sbaglio?

    Codice PHP:
    CUT
    attenzione in questo codice ci sono diversi buchi nei quali si possono fare delle sql injection

    comincierei a sostituire
    Codice PHP:
    $username = $_POST['username']; //Prendo l'username dell'utente
    $password = $_POST['password']; //Prendo la password dell'utente
    con
    Codice PHP:
    $username = mysql_real_escape_string($_POST['username']); //Prendo l'username dell'utente
    $password = md5($_POST['password']); //Prendo la password dell'utente
    http://php.net/manual/en/function.md5.php
    http://it.php.net/manual/en/function...ape-string.php

    Poi non capisco perchè includi 2 file per connetterti al db (o almeno così c'è scritto nei commenti => //racchiudono il necessario per la connessione)
    Ultima modifica di ludomedia : 30-03-2010 alle ore 17.40.35

  5. #5
    Guest

    Predefinito

    Sentite, dato che questo login l'ho un pò fatto da solo, me ne potreste postare uno decente o con le sessioni o con i cookie??

  6. #6
    Guest

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •