Pagina 1 di 2 12 UltimoUltimo
Visualizzazione risultati 1 fino 30 di 47

Discussione: Creare un'area privata (non storcete il naso!)

  1. #1
    Guest

    Predefinito Creare un'area privata (non storcete il naso!)

    ciao, gente.
    si lo so già starete storcendo il naso per il titolo, ma la mia domanda va un pochino oltre la solita domanda, so che è possibile "Lucchettare" una zona e proteggerla.
    solo che vorrei fare questo:
    se a seguito di un test un utente si rivela idoneo, vorrei farlo entrare in un'area privata.
    vorrei cioè, fargli inserire nome utente e password suoi, in modo che possa entrare in questa zona ed accedere a dei files cui altri non possono.
    come posso fare?

  2. #2
    Guest

    Predefinito

    bhe potresti dire che se il risultato del test ha un certo valore di visualizzare la pagina da cui si può effetturare i log in e accedere alla zona privata....

  3. #3
    Ospite Guest

    Predefinito

    Ma le domande x vedere se è idoneo all'accesso vuoi inserirle in un form in modo da permettere la registrazione istantanea dell'utente se questo corrisponde alle aspettative richieste o hai possibilità di impostare tu i suoi dati di accesso dopo un colloquio privato?
    Comunque in entrambi i casi la realizzazione è abbastanza semplice...

  4. #4
    Guest

    Predefinito

    quoto grakiando:
    vorrei fare un test, se il risultato è ok, entra nell'area, altrimenti entra in un'altra area pubblica.

    domanda:
    come si fa a creare quest'area privata?

  5. #5
    Ospite Guest

    Predefinito

    Ogni utente ke deve accedere all'area privata deve avere una sua password o va bene una unica x tutti?

  6. #6
    Guest

    Predefinito

    Impostando delle variabili di sessione per le pagine dell'area privata.
    Codice PHP:
    if (($_SESSION['nick']!="valore") and ($_SESSION['password']!="password"))
    {
    exit()
    //Uccide tutto
    }
    else
    {
    //pagina riservata
    }

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da JoErNanO
    Impostando delle variabili di sessione per le pagine dell'area privata.
    Codice PHP:
    if (($_SESSION['nick']!="valore") and ($_SESSION['password']!="password"))
    {
    exit()
    //Uccide tutto
    }
    else
    {
    //pagina riservata
    }
    quindi:
    1) devo avere una tabella con NOMEUTENTE, PASSWORD di ogni user
    2) quel codice che mi hai dato tu, dove lo metto?

    grazie

  8. #8
    Guest

    Predefinito

    L'idea di avere una tabella che contiene i dati per tutti gli utenti è corretta.
    Il codice che ti ho dato io devi metterlo all'inizio delle pagine che vuoi "Riservare".
    Prima di <html> devi iniziare la sessione e impostare le due variabili di sessione facendole provenire da un form con metodo post. Cioè
    Codice PHP:
    <?php
    session_start
    ();
    $_SESSION['nick']=$_POST['nick'];
    $_SESSION['password']=$_POST['password'];
    ?>
    <html>
    <title></title>
    <body>
    <?php
    if (($_SESSION['nick']!="valore") and ($_SESSION['password']!="password"))
    {
    exit()
    //Uccide tutto
    }
    else
    {
    //Inserisci qui la pagina riservata
    }
    ?>

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da JoErNanO
    L'idea di avere una tabella che contiene i dati per tutti gli utenti è corretta.
    Il codice che ti ho dato io devi metterlo all'inizio delle pagine che vuoi "Riservare".
    Prima di <html> devi iniziare la sessione e impostare le due variabili di sessione facendole provenire da un form con metodo post. Cioè
    Codice PHP:
    <?php
    session_start
    ();
    $_SESSION['nick']=$_POST['nick'];
    $_SESSION['password']=$_POST['password'];
    ?>
    <html>
    <title></title>
    <body>
    <?php
    if (($_SESSION['nick']!="valore") and ($_SESSION['password']!="password"))
    {
    exit()
    //Uccide tutto
    }
    else
    {
    //Inserisci qui la pagina riservata
    }
    ?>
    ok, grazie, ma se l'utente in un form inserisce la password, e UN, basta che questi inseisce i dati nella tabella e poi se i dati sono nel database, il gioco è fatto?

  10. #10
    Guest

    Predefinito

    Non ho ben capito cosa vuoi dire.
    Prima di
    Codice PHP:
    if (($_SESSION['nick']!="valore") and ($_SESSION['password']!="password"))
    ti serve una query al database che estrapoli tutti i nick e le password contenute nella tabella dei registrati e visualizzi questi dati in un array (sai di cosa sto parlando? ). Successivamente al posto di valore e password metti i due array in modo tale che ti controlli se i dati inviati sono di un qualche utente registrato.

  11. #11
    Guest

    Predefinito

    si ma i $_SESSION['nic/pw'] provengono da un form di login giusto?
    cioè
    <form id=login>
    INPUT NOME
    INPUT PW
    </form>
    <?
    connettiti al database
    se i dati $_POST esistono nel database, allora apri la pagina privata.php
    ?>

    ma mi sono bloccato :(

  12. #12
    Guest

    Predefinito

    Se lo fai così però chiunque conosca l'indirizzo della pagina privata.php può accedervi perchè il controllo dell'autenticazione è effettuato nella pagina di login.
    Sposta il controllo nella pagina privata.

  13. #13
    Guest

    Predefinito

    Citazione Originalmente inviato da JoErNanO
    Se lo fai così però chiunque conosca l'indirizzo della pagina privata.php può accedervi perchè il controllo dell'autenticazione è effettuato nella pagina di login.
    Sposta il controllo nella pagina privata.
    quindi in <form action="areaprivata.php">
    in testa alla pagina areaprivata.php
    metto il codice tuo, se l'inserimento è ok allora entra, sennò exit();
    giusto?
    ho capito bene?

  14. #14
    Guest

    Predefinito

    Esatto.
    Metti o exit() oppure rimandi alla pagina di login che è sicuramente più carino.

  15. #15
    Guest

    Predefinito

    Citazione Originalmente inviato da JoErNanO
    Esatto.
    Metti o exit() oppure rimandi alla pagina di login che è sicuramente più carino.
    beh perchè un bel
    Codice PHP:
    echo"vaffan***, brutto hacker di m3rd@"
    non ti piace? ;)

    grazie, proverò a dedicarmi al mondo della sicurezza informatica :D
    per fortuna è una cosa ludica...

  16. #16
    Guest

    Predefinito

    Citazione Originalmente inviato da lsdforum
    beh perchè un bel
    Codice PHP:
    echo"vaffan***, brutto hacker di m3rd@"
    non ti piace? ;)
    Non mi piace, nono!! Manca il ; !!

    Figurati hombre!!

  17. #17
    Guest

    Predefinito

    ho dei problemi con la mia provatizzazione...

    allora...
    l'utente si registra e tutto è ok, viene inserito nel database.

    pagina check_login.php
    Codice PHP:
    <?php

    session_start
    ();

    if (!isset(
    $_SESSION['username']) || !isset($_SESSION['password'])) {
    $logged_in = 0;
    return;
    } else {
    $pass = mysql_query("SELECT password FROM utenti_fic WHERE username = '".$_SESSION['username']."'");

    if(
    $_SESSION['password'] == $pass['password']) {
    $logged_in = 1;
    } else {
    $logged_in = 0;
    unset(
    $_SESSION['username']);
    unset(
    $_SESSION['password']);
    }
    }

    ?>
    pagina main.php
    c'è un link: LOGGATI:
    apre la pagina login.php
    Codice PHP:
    <?php
    include('check_login.php');
    include(
    'modello.php');


    $conn = mysql_connect("localhost", "UN", "PW")
    or die(
    "Connessione non riuscita: " . mysql_error());
    mysql_select_db("my_lsdfreetime",$conn);

    if(
    $logged_in == 1) {
    die(
    '#Sei già connesso, '.$_SESSION['username'].'.');

    }


    ?>
    <div id="corpo"><br>
    <font size="+2">#Login</font>
    <?php

    if (isset($_POST['submit'])) {
    if(!
    $_POST['uname'] | !$_POST['passwd']) {
    die(
    'Non hai compilato tutti i campi!');
    }

    // autentica.
    $check = mysql_query("SELECT username, password FROM utenti_fic WHERE username = '".$_POST['uname']."'");
    if(
    $check==false){
    echo
    "<b>NON risulti registrato alla F.I.C.</b><br> Ti ricordiamo che per avere accesso alla F.I.C devi prima superare il <a href='fic_test.php'>F.I.C._test</a> di ingresso.";
    }
    $info = mysql_fetch_array($check);

    // controllo password
    $_POST['passwd'] = md5($_POST['passwd']);
    if (
    $_POST['passwd'] != $info['password']) {
    die(
    '#Password non corretta.');
    }

    // registra sessione
    $date = date('m d, Y');
    $update_login = mysql_query("UPDATE utenti_fic SET last_login = '$date' WHERE username = '".$_POST['uname']."'");
    $_SESSION['username'] = $_POST['uname'];
    $_SESSION['password'] = $_POST['passwd'];
    header("Refresh: 3; URL=fic_main.php");
    mysql_close($conn);
    ?>

    <font size="+2">#Loggato...</font>
    <p>Bentornato Cretino: #<?php echo $_SESSION['username']; ?>.</p>
    <p>#<a href="fic_main.php">Vai alla home della F.I.C.</a></p>
    <?php

    } else {

    ?>
    <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
    <table align="center" border="1" cellspacing="0" cellpadding="3">
    <tr>
    <td>#Nome_Utente:</td>
    <td>
    <input type="text" name="uname" maxlength="40">
    </td>
    <td>#Password:</td>
    <td>
    <input type="password" name="passwd" maxlength="50">
    </td><td colspan="2" align="right">
    <input type="submit" name="submit" value="#Entra">
    </td></tr>
    </table>
    </form>
    <?php
    }
    ?>


    </div>
    il login SEMBRA avvenire con successo, visto che arriva il messaggio di benvenuto.
    la pagina che il problema è che NON si verfica il salvataggio della sessione:
    nella pagina pricinpale dovrebbero verificarsi delle visualizzazioni differenti a seconda che si sia loggati o meno.. solo che non si verfica mai la condizione LOGGATO :(
    main.php
    Codice PHP:
    <?php
    include('check_login.php');
    include(
    'modello.php');

    $conn = mysql_connect("localhost", "UN", "PW")
    or die(
    "Connessione non riuscita: " . mysql_error());
    mysql_select_db("my_lsdfreetime",$conn);

    $queryconta = "SELECT count(*) from utenti_fic";
    $conta = mysql_query($queryconta, $conn);
    $contatore = mysql_result($conta, 0);

    if (
    $logged_in==0) {
    echo
    "
    <div id='fic_menu' style='position:absolute; left:302px; top:300px; width:149px; height:133px; z-index:3; font-size= 10pt'>
    <table cellspacing='2'>
    <tr>
    <td>#Cretini_Totali:
    $contatore</td></tr>
    <td>#<a href='fic_login.php'>Loggati</a></td></tr>
    <td>#<a href='fic_test.php'>Test_F.I.C.</a></td></tr>
    <td>#<a href='libromagno.php'>Libro_Magno</a></td></tr>
    <td>#<a href='fic_membri.php'>Lista_Membri</a></td></tr>
    <td>#<a href='fic_pwrec.php'>Recupero_Password</a></td></tr>
    </tr>
    </table>
    </div>
    "
    ;
    }else{
    echo
    "
    <div id='fic_menu' style='position:absolute; left:302px; top:300px; width:149px; height:133px; z-index:3; font-size= 10pt'>
    <table cellspacing='2'>
    <tr>
    <td>#Cretini_Totali:
    $contatore</td></tr>
    <td>#<a href='libromagno.php'>Libro_Magno</a></td></tr>
    <td>#<a href='fic_incidi.php'>Incidi_Libro_Magno</a></td></tr>
    <td>#<a href='fic_membri.php'>Lista_Membri</a></td></tr>
    <td>#<a href='fic_profilo.php'>Profilo_Utente</a></td></tr>
    <td>#<a href='fic_logout.php'>Logout</a></td></tr>"
    ;
    echo
    " </tr>
    </table>
    </div>
    "
    ;

    };

    ?>
    dove toppo???
    Ultima modifica di lsdforum : 21-03-2006 alle ore 00.54.08

  18. #18
    Guest

    Predefinito

    Login.php
    Codice PHP:
    <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
    fallo diventare
    Codice PHP:
    <form action="<?php =$_SERVER['PHP_SELF']; ?>" method="post">
    Questi echo:
    Codice PHP:
    echo"
    <div id='fic_menu' style='position:absolute; left:302px; top:300px; width:149px; height:133px; z-index:3; font-size= 10pt'>
    <table cellspacing='2'>
    <tr>
    <td>#Cretini_Totali:
    $contatore</td></tr>
    <td>#<a href='fic_login.php'>Loggati</a></td></tr>
    <td>#<a href='fic_test.php'>Test_F.I.C.</a></td></tr>
    <td>#<a href='libromagno.php'>Libro_Magno</a></td></tr>
    <td>#<a href='fic_membri.php'>Lista_Membri</a></td></tr>
    <td>#<a href='fic_pwrec.php'>Recupero_Password</a></td></tr>
    </tr>
    </table>
    </div>
    "
    ;
    }else{
    echo
    "
    <div id='fic_menu' style='position:absolute; left:302px; top:300px; width:149px; height:133px; z-index:3; font-size= 10pt'>
    <table cellspacing='2'>
    <tr>
    <td>#Cretini_Totali:
    $contatore</td></tr>
    <td>#<a href='libromagno.php'>Libro_Magno</a></td></tr>
    <td>#<a href='fic_incidi.php'>Incidi_Libro_Magno</a></td></tr>
    <td>#<a href='fic_membri.php'>Lista_Membri</a></td></tr>
    <td>#<a href='fic_profilo.php'>Profilo_Utente</a></td></tr>
    <td>#<a href='fic_logout.php'>Logout</a></td></tr>"
    ;
    echo
    " </tr>
    </table>
    </div>
    "
    ;
    secondo te possono funzionare?
    O provi un echo per ogni riga oppure con un heredoc.

  19. #19
    Guest

    Predefinito

    intano grazie x la risposta tempestiva.
    1) con la tua modifica ottengo questo errore: Parse error: syntax error, unexpected '=' in /membri/lsdfreetime/login.php on line 56
    2) gli echo hanno sempre funzionato (quando usavo lo script brutto di freephp)
    heredoc che comando è?

  20. #20
    Guest

    Predefinito

    Codice PHP:
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

  21. #21
    Guest

    Predefinito

    ok correzione fatta.
    per sicurezza ho commentato tutte le righe che mi avevi criticato ed ho lasciato solo due messaggi:

    Codice PHP:
    if ($logged_in == 0) {
    echo
    "sloggato";
    }else{
    echo
    "LOGGATO";
    };
    ma appena loggo e torno indietro con refresh alla pagina iniziale (main.php) ottengo sempre il messaggio SLOGGATO...

  22. #22
    Guest

    Predefinito

    Hai messo
    Codice PHP:
    session_start();
    in cima a tutte le pagine in cui vuoi che sia valida la sessione?

  23. #23
    Guest

    Predefinito

    c'è l'INCLUDE check_login.php che contiene session_start()...
    dovrei aver risolto pulendo il codice chck_login.php:

    Codice PHP:
    <?php

    session_start
    ();

    if (!isset(
    $_SESSION['username']) || !isset($_SESSION['password'])) {
    $logged_in = 0;
    return;
    } else {
    /*$pass = mysql_query("SELECT password FROM utenti_fic WHERE username = '".$_SESSION['username']."'");

    if($_SESSION['password'] == $pass['password']) { */
    $logged_in = 1;
    /* } else {
    $logged_in = 0;
    unset($_SESSION['username']);
    unset($_SESSION['password']);
    }*/
    }
    che dici?
    Ultima modifica di lsdforum : 21-03-2006 alle ore 01.33.42

  24. #24
    Guest

    Predefinito

    Codice PHP:
    if($_SESSION['password'] == $pass['password'])
    Non ha senso. Una volta eseguita la query devi usare mysql_fetch_array() per avere il valore da confrontare con la password inviata.

    Codice PHP:
    // Query SQL
    $sql = mysql_query();
    while(
    $ris = mysql_fetch_array($sql)){
    $pass = $ris['password']

    // Confronto la pass
    if($_SESSION['password'] == $pass)
    Ultima modifica di JoErNanO : 21-03-2006 alle ore 01.43.17

  25. #25
    Guest

    Predefinito

    Citazione Originalmente inviato da JoErNanO
    Codice PHP:
    if($_SESSION['password'] == $pass['password']
    Non ha senso. Una volta eseguita la query devi usare mysql_fetch_array() per avere il valore da confrontare con la password inviata.
    come ho modifcato non va bene?
    la rig che critichi è stata commentata..

  26. #26
    Guest

    Predefinito

    Ho editato il post.

  27. #27
    Guest

    Predefinito

    Citazione Originalmente inviato da JoErNanO
    Ho editato il post.
    questa tua modifica DOVE devo inserirla?
    fino ad ora, senza la tua, mi sembra funzioni tutto...
    aggiungo una domanda: come faccio scadere la sessione se l'utente non si slogga da solo?
    Ultima modifica di lsdforum : 21-03-2006 alle ore 02.47.04

  28. #28
    Guest

    Predefinito

    La sessione scade quando l'utente chiude il browser da cui l'ha attivata.

    Il codice che ti ho postato è per darti un'idea di come dovresti fare per estrapolare i dati dal database e poi confrontarli con quelli inviati dall'utente dopo il login. Hai un controllo da qualche parte vero?

  29. #29
    Guest

    Predefinito

    in login.php mi pare ci sia un controllo o non basta?
    il fatto è così come ti ho postato i file, con la modifica in check_login.php il sito funziona: le parti occultate non sono visibili, alcune aree nemmeno, e se all'inizio nalla home delle opzioni non sono visibili, quando ci si logga gli IF vengono rispettati, per cui mi apre funzioni tutto...

  30. #30
    Guest

    Predefinito

    Allora eri tu che ripetevi il controllo sulla password sia su controllo_login che su main.php.
    Impostato così il tuo login funziona senza problemi.

Pagina 1 di 2 12 UltimoUltimo

Regole di scrittura

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