• User

    proteggere pagine tramite password

    salve a tutti, sto cominciando ad ammirare veramente tanto la gente che frequenta questo forum.. quante ne sapete!:o, ma come fate?:?

    fatta questa captatio benevolentiae, vi espongo un quesito sicuramente per voi ovvio:

    vorrei creare nel mio sito delle pagine cui si possa accedere mediante l'inserimento di nome e password, magari tenuti in un database..
    lo so che non dovrebbe essere difficile, però sono un pò ignorantello: uso front page.. e ho solo avuto sporadiche esperienze con java e simili..

    quello che è importante è che non deve essere la protezione che può avere il sito del pentagono:eheh:!! non c'è praticamente nulla da nascondere! solo che vorrei fare questa selezione di utenti..

    vi ringrazio davvero di cuore, e scusate per aver sbagliato sezione :bho:, ce ne sono così tante!!!

    Francesco


  • User Attivo

    fai una ricerca nel forum con le parole "htaccess" e "password".. troverai cio che fa per te...


  • Super User

    Ciao cioll@,
    potresti usare la soluzione di olaola che è la più semplice oppure ricorrere ad un linguaggio di scripting quale può essere php.
    Se ho tempo più tardi ti realizzo uno scriptino 😉

    EDIT: fatto! 🙂

    [php]
    <html>
    <form action="" method="POST">
    <input type="text" name="username">   username<br />
    <input type="password" name="password">   password<br />
    </form></html>
    <?
    if(isset($_POST)){
    $apri=file("db.php");
    foreach($apri as $riga){
    $el=explode("|",$riga);
    if($_POST[username]==$el[0] AND $POST[password]==$el[1]){
    function GetTemplate($template) {

          return str_replace("\"","\\\"",implode("",file($template)));
    

    }
    function Stampa($template) {

          echo $template;
    

    }
    eval("Stampa("".GetTemplate("paginasegreta.html")."");"); // sostituisci con il nome del file che contiene il contenuto che l'utente visualizza se ha immesso i dati corretti
    }
    }
    }
    [/php]Ora ti basta creare un file chiamato db.php e scrivere un nuova riga per ogni utente con la formula:

    username|password 😉
    ciao!


  • ModSenior

    Probid, ma in questo modo, analizzando il codice html della pagina, chiunque potrebbe scovare il nome della pagina segreta!
    o no?


  • Super User

    no...:)
    il php è nascosto e il codice non fa altro che integrare nel codice della pagina di login il testo contenuto in paginasegreta.html 😉
    L'unico rischio è che un utente aprendo db.php possa leggere gli username e le psw degli utenti,quindi ci vorrebbe un htaccess che ne impedisse l'accesso tramite browser.
    A questo punto però è meglio usare direttamente la soluzione di olaola 😄


  • ModSenior

    giusto;)


  • User

    grazie mille ragazzzi!
    adesso provo le varie strade che mi avete suggerito!

    sapevo che eravate gentili, ma cosi...


  • Super User

    Di niente,cioll@. 🙂
    Riporta qui eventuali problemi riscontrati e saremo felici di darti una mano 😉


  • User

    @probid said:

    Ciao cioll@,
    potresti usare la soluzione di olaola che è la più semplice oppure ricorrere ad un linguaggio di scripting quale può essere php.
    Se ho tempo più tardi ti realizzo uno scriptino 😉

    EDIT: fatto! 🙂

    [php]
    <html>
    <form action="" method="POST">
    <input type="text" name="username">   username<br />
    <input type="password" name="password">   password<br />
    </form></html>
    <?
    if(isset($_POST)){
    $apri=file("db.php");
    foreach($apri as $riga){
    $el=explode("|",$riga);
    if($_POST[username]==$el[0] AND $POST[password]==$el[1]){
    function GetTemplate($template) {

          return str_replace("\"","\\\"",implode("",file($template)));
    

    }
    function Stampa($template) {

          echo $template;
    

    }
    eval("Stampa("".GetTemplate("paginasegreta.html")."");"); // sostituisci con il nome del file che contiene il contenuto che l'utente visualizza se ha immesso i dati corretti
    }
    }
    }
    [/php]Ora ti basta creare un file chiamato db.php e scrivere un nuova riga per ogni utente con la formula:
    😉
    ciao!

    ciao gentilissimo probid!

    senti, sto provando il tuo script.. dunque, incollando il codice ottengo due campi, nome e password ma... non c'è scritto "invia"!! cioè, una volta inseriti, che devo fare per accedere?
    e poi, a che pagina mi fa accedere sto script?

    scusa, ma l'ignoranza..

    edit: o mamma mia che figura! non avevo letto il commento. ok, ho sostituito il nome della pagina, ma come dargli "invia"??
    grazie!


  • Super User

    Niente ignoranza 🙂 ,sono stato io a sbagliare dimenticandomi una parte di script. :D:D
    scusami. 🙂
    Dopo [php]<input type="password" name="password">   password<br />[/php]devi aggiungere:
    [php]<input type='submit' value='invia'>[/php]Scusa ancora per la dimenticanza.


  • User

    @probid said:

    Ciao cioll@,
    potresti usare la soluzione di olaola che è la più semplice oppure ricorrere ad un linguaggio di scripting quale può essere php.
    Se ho tempo più tardi ti realizzo uno scriptino 😉

    EDIT: fatto! 🙂

    [php]
    <html>
    <form action="" method="POST">
    <input type="text" name="username">   username<br />
    <input type="password" name="password">   password<br />
    </form></html>
    <?
    if(isset($_POST)){
    $apri=file("db.php");
    foreach($apri as $riga){
    $el=explode("|",$riga);
    if($_POST[username]==$el[0] AND $POST[password]==$el[1]){
    function GetTemplate($template) {

          return str_replace("\"","\\\"",implode("",file($template)));
    

    }
    function Stampa($template) {

          echo $template;
    

    }
    eval("Stampa("".GetTemplate("paginasegreta.html")."");"); // sostituisci con il nome del file che contiene il contenuto che l'utente visualizza se ha immesso i dati corretti
    }
    }
    }
    [/php]Ora ti basta creare un file chiamato db.php e scrivere un nuova riga per ogni utente con la formula:
    😉
    ciao!

    @probid said:

    Niente ignoranza 🙂 ,sono stato io a sbagliare dimenticandomi una parte di script. :D:D
    scusami. 🙂
    Dopo [php]<input type="password" name="password">   password<br />[/php]devi aggiungere:
    [php]<input type='submit' value='invia'>[/php]Scusa ancora per la dimenticanza.

    che bello, in diretta!
    aspetta che provo!

    figurati se devi scusarti!


  • User

    GRAZIE MILLE!!!
    mi basta ed avanza!!!

    sembra funzionare, ma adesso devo partire

    ti farò sapere!!
    ciao!!


  • User

    ciao probid, senti, ma quella pagina che io ho cosi protetto potrà poi essere raggiunta semplicemente scrivendo sulla barra l'indirizzo? oppure rimane protetta?
    cioè, c'è una parte di script che va anche nella/nelle pagina/e protetta/e??

    grazie


  • User

    AHIAHIAHIAHHHHI...

    qualcosa non va.. ho provato sul server, e mi dice una volta inserito nome e pass che "the page can not be displayed".. ma le pagine le devo chiamare .htm .html o .php???


  • Super User

    @alibi: è lo stesso errore che ho fatto con cioll@,metti > <input type='submit' value='Verifica disponibilita'> dopo > <input type="text" name="alias">   alias scelto<br />Cioll@,usa questo nuovo script,devi usare le stesse regole di prima mettendo il codice in una pagina con formato .php e creando il file db.txt.
    Questo nuovo script è aggiustato ed è anche più sicuro in quanto fa uso delle sessioni e digitando l'url della pagina segreta l'utente non riuscirebbe a loggarsi se non immettesse dati corretti 😉

    [php]
    <html>
    <form action="" method="POST">
    <input type="text" name="username">   username<br />
    <input type="password" name="password">   password<br />
    <input type="submit" value="login">
    </form></html>
    <?
    session_start();
    if(isset($_POST)){
    $apri=file("db.php");
    foreach($apri as $riga){
    $el=explode("|",$riga);
    if($_POST[username]==$el[0] AND $POST[password]==$el[1]){
    $_SESSION[logged]=="ok";
    $_SESSION[username]==$_POST[username];
    echo "<br /><a href="nascosto.php">Accedi</a>";
    }
    }
    }?>[/php]Ora crea il file "nascosto.php" e inserisci il codice:

    [php]
    <?
    session_start();
    if($_SESSION[logged]=="ok"){
    echo "sei loggato come $_SESSION[username]";
    // codice della pagina segreta
    }else{
    exit();
    }
    ?>[/php]ciao!


  • User

    ciao probid, grazie ancora!
    solo un dubbio: il db deve essere .php, giusto? e non .txt ? le pagine poi? tutte anche loro (modulo e nascosto) sempre in .php?

    diciamo che adesso il problema è che se compilo nome e passw e clicco login ricarica cmq la stessa pagina..

    grazie infinite della pazienza!


  • Super User

    Il db deve essere in TXT non in PHP.
    Le pagine in PHP.

    diciamo che adesso il problema è che se compilo nome e passw e clicco login ricarica cmq la stessa pagina..Non è un prob,dev'essere così...
    Se l'utente mette i dati giusti,appare il link che porta alla pagina nascosta 😉


  • User

    @probid said:

    Il db deve essere in TXT non in PHP.
    Le pagine in PHP.
    Non è un prob,dev'essere così...
    Se l'utente mette i dati giusti,appare il link che porta alla pagina nascosta 😉

    ah.. capisco!
    adesso provo.. il dubbio del .txt mi è venuto perchè nelcodice ho visto che cerca il file db.php...:bho:


  • User

    putroppo qualcosa ancora non va..
    se faccio login la pagina rimane proprio la stessa...
    non appare nessun collegamento!


  • Community Manager

    Sposto in Php e divido il thread di Alibi 🙂