• ModSenior

    Se vuoi mettere il redirect fai un controllo sull'url richiesto in modo da fare il redirect solo se viene richiesta quella pagina, altrimenti fai redirect ogni volta che usi il file in lettura.
    [php]
    <?php
    session_start();
    if(isset($_POST['user'])){
    include('utenti.php');
    $c = count($utenti);
    $i = 0;
    while($i < $c && $utenti*['nomeutente'] != $user && $utenti*['password'] != $pass)
    $i++;
    if($i<$c)
    {
    $_SESSION['login'] = $utenti*['id'];
    // reindirizzo l'utente
    header('Location: protetta.php');
    exit;
    }
    // se non esiste da l'errore
    else
    die('Nome Utente o Password errati');
    }
    ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Login</title>
    </head>
    <body>
    <form action="" method="post">
    <input name="user" type="text" id="user" value="Nome Utente" onfocus="if(this.value=='Nome Utente') this.value='';" /><br />
    <input name="pass" type="password" id="pass" value="Password" onfocus="if(this.value=='Password') this.value='';" /><br />
    <input name="login" type="submit" value="Login" /><br />
    </form>
    </body>
    </html>
    [/php]


  • User Attivo

    Ora va perfetto, ho provato anche la pagina di logout e almeno quella sono riuscito da solo 😄
    Per ora penso possa bastarmi questo, vedrò di adattarlo allo scopo che ho in mente, e in caso avessi problemi ritorno qui 🙂

    Grazie mille!


  • ModSenior

    Figurati.

    :ciauz:


  • User

    Ciao a tutti,
    mi sono appena iscritto in questo forum perchè è molto bello e molto utile per me che sono alle prime armi in php.
    A me serviva uno script di login senza database ed ho trovato questo,l'ho provato in locale e sul web ma al momento dell'invio dei dati non fa niente,cioè mi spiego meglio quando immetto i dati rimane la pagina del login e non mi dà nè Nome utente e password errati e nè mi indirizza alla pagina privata...Che devo fare?Da cosa è dovuto? Vi posto lo script.

    Login.php
    [PHP]<?php
    session_start();
    if(isset($_POST['user'])){
    include('utenti.php');
    $c = count($utenti);
    $i = 0;
    while($i < $c && $utenti*['nomeutente'] != $user && $utenti*['password'] != $pass)
    $i++;
    if($i<$c)
    {
    $_SESSION['login'] = $utenti*['id'];
    // reindirizzo l'utente
    header('Location: privata.php');

    // se non esiste da l'errore
    

    }else{
    die('Nome Utente o Password errati');
    }}
    ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Login</title>
    </head>
    <body>
    <form action="" method="post">
    <input name="user" type="text" id="user" value="Nome Utente" onFocus="if(this.value=='Nome Utente') this.value='';" /><br />
    <input name="pass" type="password" id="pass" value="Password" onFocus="if(this.value=='Password') this.value='';" /><br />
    <input name="login" type="submit" value="Login" /><br />
    </form>
    </body>
    </html>[/PHP]

    Ah,un'ultima cosa ma per il file utenti nome utente e password gli devo scrivere a mano giusto? se è così in quali campi devo scriverli?

    Scusate se sto facendo domande da vero principiante ma la verità è che sto alle prime con il php...
    Grazie e spero mi rispondiate...
    Stek:ciauz:


  • User

    Ciao a tutti volevo sapere come devo fare ad aggiungere nomeutente e password al file utenti.php....mi potreste dare una mano??
    :ciauz:Grazie mille:ciauz:


  • ModSenior

    [php]
    $utenti[]=array('id' => 1, 'nomeutente' => 'nomeutente1', 'password' => 'password1');
    $utenti[]=array('id' => 2, 'nomeutente' => 'nomeutente2', 'password' => 'password2');
    [/php]


  • User

    Grazie TheDarkita,
    il file ce l'ho pure io, solo che non ho capito dove devo inserire i dati di ogni utente...quindi password e user.....non è che mi pioi fare un'esempio?
    grazie stek


  • ModSenior

    L'esempio è proprio quello invece di nomeutente1, devi mettere il nome utente dell'utente 1, in password1 la password dell'utente 1, e cosi via...


  • User

    Grazie TheDarkita,
    ora provo...!


  • User

    Ciao TheDarkita,
    ho provato lo script on-line una volta modificato il file utenti.php,sono andato a vedere se mi faceva entrare ma mi dice sempre:Nome utente o password errati...Che devo fare? Posto il codice...

    Login.php:
    [php]<?php
    session_start();
    if(isset($_POST['user'])){
    include('utenti.php');
    $c = count($utenti);
    $i = 0;
    while($i < $c && $utenti*['nomeutente'] != $user && $utenti*['password'] != $pass) $i++;
    if($i < $c)
    {
    $_SESSION['login'] = $utenti*['id'];
    // reindirizzo l'utente
    header('Location: protetta.php');
    exit;
    }
    // se non esiste da l'errore
    else
    die ('Nome Utente o Password errati');

    }
    ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Login</title>
    </head>
    <body>
    <form action="" method="post">
    <input name="user" type="text" id="user" value="Nome Utente" onFocus="if(this.value=='Nome Utente') this.value='';" /><br />
    <input name="pass" type="password" id="pass" value="Password" onFocus="if(this.value=='Password') this.value='';" /><br />
    <input name="login" type="submit" value="Login" /><br />
    </form>
    </body>
    </html>[/php]utenti.php
    [php]<?php
    $utenti[]=array('id' => 1, 'nomeutente' => 'stefano', 'password' => 'stefano');
    $utenti[]=array('id' => 2, 'nomeutente' => 'nomeutente2', 'password' => 'password2');
    ?> [/php]Protetta.php:
    [php]<?php
    session_start();
    fopen("utenti.php","a+");
    if(isset($_SESSION['login']))
    echo 'Contenuto privato';
    else
    echo 'Contenuto pubblico';
    ?>
    [/php]Mi puoi dare una mano TheDarkita??
    Grazie Stek=)=)


  • User

    Ciao TheDarkita,
    sto provando a capire dov'è l'errore, ma non lo sto riuscendo a trovare...
    Mi potresti dare una dritta???
    Grazie Stek :ciauz:


  • User

    Ad un primo sguardo mi sembra manchino le variabili $user e $pass che qui recupero con

    $user = $_POST['user'];
    $pass = $_POST['pass'];
    

    ed anche l'action del form era da completare:

    <form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
    

    quindi dovrebbe essere (ma devo testare pure io, ANZI chiedo agli esperti consigli e ragguagli):

    login.php

    <?php
    session_start();
    if(isset($_POST['user'])){
    
    $user = $_POST['user'];
    $pass = $_POST['pass'];
    
    include('utenti.php');
    $c = count($utenti);
    $i = 0;
    while($i < $c && $utenti*['nomeutente'] != $user && $utenti*['password'] != $pass)
    $i++;
    if($i<$c)
    {
    $_SESSION['login'] = $utenti*['id'];
            // reindirizzo l'utente
            header('Location: protetta.php');
           
        
        // se non esiste da l'errore
    }else{
            die('Nome Utente o Password errati');
    }}
    ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Login</title>
    </head>
    <body>
    <form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
     <input name="user" type="text" id="user" value="Nome Utente"  onFocus="if(this.value=='Nome Utente') this.value='';" /><br />
     <input name="pass" type="password" id="pass" value="Password"  onFocus="if(this.value=='Password') this.value='';" /><br />
     <input name="login" type="submit" value="Login" /><br />
    </form>
    </body>
    </html>
    

  • User

    Ciao Motorpsyco,
    grazie per la risposta, comunque l'ho provato e l'autentificazione avviene, solo che avviene anche se c'è un solo dato corretto(pass o user) ed una volta entrato mi da contenuto privato ma l'ho da anche se si mette l'URL nella barra del browser....Aspetto una vostra risposta
    Grazie Stek


  • User

    ciao stek,
    è vero: ho fatto una prova anche io.
    purtroppo non ho le conoscenze tali da capire al volo di cosa si tratta e sono impegnatissimo con il lavoro (mi aspetta un sabato notte niente male ohibò)

    speriamo in qualche anima pia... :ciauz:


  • User

    Ciao motorpsyco,
    spero anch'io che qualcuno mi possa aiutare sto veramente impazzendo!!!
    Comunque per questa sera Buon Lavoro...
    Grazie stek


  • User

    Ciao a tutti,
    da quanto tempo...nono è che qualcuno sarebbe così gentile da darmi una mano per quaesto script,ve ne sarei molto grato,perche non so più dove sbattere la testa...❌x
    Spero che qualcuno risponda...
    Ciao Stek


  • ModSenior

    Ciao stek96,

    ti basta verificare che sia settata la variabile
    $_SESSION['login'].


  • User

    Ciao Thedarkita,
    grazie per avermi risposto...susami tanto però non ho capito cosa vuoi dire, mi puoi fare un esempio o mostrarmi cosa vuoi dire...???
    Te ne sarei grato...
    Grazie Stek


  • ModSenior

    Basta aggiungere in cima ai file da proteggere:
    [php]
    <?php
    session_start();
    if(!isset($_SESSION['login']))
    die('Accesso nno autorizzato');
    ?>[/php]


  • User

    Ciao Thedarkita,
    grazie per la risposta...
    allora io ho questo file:

    Protetta.php
    [php]<?php
    session_start();
    fopen("utenti.php","a+");
    if(isset($_SESSION['login']))
    echo 'Contenuto privato';
    else
    echo 'Contenuto pubblico';
    ?> [/php]dove lo devo mettere questo:
    [php] <?php
    session_start();
    if(!isset($_SESSION['login']))
    die('Accesso nno autorizzato');
    ?> [/php]Poi un'altra cosa: allora aggiungo i dati(nomeutente e pass) nel file utenti, ma quando vado al login mi dice Nome o Pass non corretti...cosa devo fare?
    Ti posto i file:

    Login.php
    [php]<?php
    session_start();
    if(isset($_POST['user'])){
    include('utenti.php');
    $c = count($utenti);
    $i = 0;
    while($i < $c && $utenti*['nomeutente'] != $user && $utenti*['password'] != $pass) $i++;
    if($i < $c)
    {
    $_SESSION['login'] = $utenti*['id'];
    // reindirizzo l'utente
    header('Location: protetta.php');
    exit;
    }
    // se non esiste da l'errore
    else
    die ('Nome Utente o Password errati');

    }
    ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Login</title>
    </head>
    <body>
    <form action="" method="post">
    <input name="user" type="text" id="user" value="Nome Utente" onFocus="if(this.value=='Nome Utente') this.value='';" /><br />
    <input name="pass" type="password" id="pass" value="Password" onFocus="if(this.value=='Password') this.value='';" /><br />
    <input name="login" type="submit" value="Login" /><br />
    </form>
    </body>[/php]ed il file utenti.php
    [php]<?php
    $utenti[]=array('id' => 1, 'nomeutente' => 'stefano', 'password' => 'io');
    $utenti[]=array('id' => 2, 'nomeutente' => 'luca', 'password' => 'luca');
    ?> [/php]Cosa devo fare?

    Facendo come mi aveva consigliato motorpsyco, i dati inseriti nel file utenti.php una volta che verifico ,l'autenticazione funziona, solo che avviene anche se c'è un solo dato corretto(pass o user) ed una volta entrato mi da contenuto privato ma l'ho da anche se si mette l'URL nella barra del browser.
    Grazie Thedarkita per il tempo che stai dedicando a cercare di spiegarmi...scusami se ti faccio domande da vero principiante!
    Grazie stek