Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    13

    [php help] inserire il login su pagina web

    ciao a tutti, vi prego di darmi una mano perchè vorrei realizzare una pagina personale con registrazione e accesso utenti con login e password, ma non so proprio da dove iniziare. Mi è stato suggerito di usare uno script php, ma non so da dove iniziare. Vi prego di essere più chiari possibile perchè non ho mai studiato il php.

  2. #2
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Ciao,
    il metodo più diffuso ( ma non l'unico ) per creare sezioni protette con php è utilizzare le sessioni. Ovviamente non ti posso insegnare ad utilizzare le sessioni senza che tu abbia le basi del linguaggio, quindi quello che posso consigliarti è di acquisire alcune basi di php ( variabili, array, cicli ecc.. ) seguendo dei tutorial presenti su internet o ancora meglio acquistando un libro.
    Se invece vuoi lanciarti subito nell'impresa prova a scaricare qualche script già fatto, ne puoi trovare un'infinità open source su internet.
    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    13
    ciao, grazie Razorblade, il fatto è che sono proprio un newbie.. nel senso fin'ora ho sempre aperto pagine web statiche al massimo con qualche collegamento ipertestuale a link di notizie. Potresti spiegarmi almeno il funzionamento di una sessione php?
    Ho già letto una guida php ed ho capito che dovrei inserire il codice php all'interno della pagina web, con i tag del php.
    Magari puoi spiegarmi in maniera molto semplice il funzionamento di uno script php per la registrazione ed il login?
    nel senso.. dove tengo la lista degli utenti e delle password già autenticate?? e come controllo se un utente è già registrato o se deve registrarsi al sito ??
    o meglio.. come faccio a "ricordarmi" che quell'utente si è già registrato??

  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    13
    ok grazie, ora vedrò di studiarli.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    13

    non ci sono...

    potresti darmi qualche indirizzo... tipo io al momento ho un file index.html ed una cartella chiamata images che contiene le immagini della home page. ok.

    A questo punto mi sembra il caso di aprire il file index html con la versione di prova di dreamveawer, dopodichè inserisco i controlli per la registrazione ovvero due textbox ed un bottone di conferma.

    A questo punto non mi è chiaro quali script .php dovrei inserire nel codice della home page e come creare i file .php che mi servono per le funzioni di autenticazione e login....

  7. #7
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Ciao,
    ti posto qui di seguito un esempio un po' più concreto ma che sia il più semplice possibile.
    Immagina che tu usi un db e questo db abbia, tra le altre, 2 tabelle, la tabella 'utenti' e la tabella 'sessioni'. La tabella utenti è quella dove sono salvati tutti i tuoi utenti, la tabella sessioni è una tabella volatile diciamo, ovvero al suo interno saranno contenuti dei record in base se l'utente è connesso al sito o meno ( es. mi connetto al sito quindi il mio record viene salvato sulla tabella sessioni ).

    Parlando di php il primo passaggio è l'autenticazione, quindi ticostruisci il tuo bel form con i campi user e pass.Una volta che l'utente li avrà inseriti, manderai questi dati al tuo script che eseguirà la seguente query:

    Codice PHP:
    $sql "select * from utenti where username = '".$posted_username."' and password = MD5('".$posterd_password."') "
    Se la query estrae un record dal db allora procedi all'autenticazione, altrimenti rimendi l'utente al form di autenticazione.

    Se l'utente esiste, ad esempio puoi fare uno script del genere:

    Codice PHP:
    session_start() // da inserire sempre in cima allo script quando si usano le sessioni
    session_register('login'); // registriamo la variabile di sessione
    $_SESSION['login'] == 'ok'
    Quindi se l'utente esisteva nel db, si crea una variabile di sessione (login) che ha come valore 'ok'.

    Infine per distinguere la zona 'riservata' dalla zona pubblica, questo è il codice da inserire nelle tue pagine:


    Codice PHP:
    if(session_is_registered('login') && isset($_SESSION['login']) && $_SESSION['login'] == 'ok' )
    {

      
    // contenuto area riservata
    }
    else
    {
      
    // contenuto area pubblica

    Tutto qui.
    Nell'area riservata ricorda di includere in tastino 'logout' che richiama una pagina con il codice per distruggere la sessione:

    Codice PHP:
    $_SESSION = array();
    session_destroy(); 

    Siccome le sessioni sono dei cookie, una volta che inizializzi la sessione questa sarà disponibile solo nella pagina successiva, quindi successivamente alla creazone della sessione ti consiglio di reindirizzare l'utente in una nuova pagina ( usa header() ad esempio )

    Questo esempio è molto semplice, un po' troppo.
    Però dovrebbe riuscire a farti comprendere il meccanismo.
    Ciao


    ..dimenticavo #1
    Dopo che hai creato la sessione inserisci nella tabella 'sessioni' un record che identifica quell'utente ( inserisci il suo user id e l'id di sessione ).
    Con una query a questa tabella potrai sapere quanti sono connessi al tuo sito.
    Quando l'utente clicca 'logout' elimini da questa tabella il record relativo all'utente.

    Dovresti porti 2 domande adesso.
    1) come faccio a identificare l'utente?
    Risposta: ti salvi il suo id nella sessione

    2) E se l'utente chiude il browser senza clikkare logout?
    Risposta: puoi far girare uno script in ogni pagina del tuo sito che elimina i record più vecchi di tot minuti dalla tabella sessioni. Cosi un qualsiasi utente, a sua insaputa, farà pulizia della tabella ad ogni suo cambio pagina ( attenzione ad una cosa però: ad ogni cambio pagina, il campo che salva la data nella tabella delle sessioni deve essere aggiornato per l'utente connesso.... spero di essermi spiegato )

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    13
    ok, fin qui tutto chiaro:
    -eseguire l'autenticazione verificando i della tabella utenti
    (devo creare un file utenti.txt?)
    -se l'utente esiste (la condizione è if user<0 ?)
    eseguo il login, cioè lo reindirizzo alla home page interna

    altrimenti

    lo reindirizzo alla homepage login.

    Però non ho capito questo:

    quando l'utente clicca sul pulsante accedi, il nome utente e la password contenuti nelle textbox vengono passati allo script.php, un pò come una funzione vb, lo script li prende in ingresso e li utilizza per confrontare i valori degli utenti registrati. fin qui ok.
    ma lo script dove si trova? è un file chiamato scriptlogin.php?
    oppure tutto il codice è inserito nella home page all'interno dei tag $php $. Praticamente fin'ora ho questo codice:

    <label>username
    <input type="text" name="userlogname" id="userlogname">
    </label>



    <label>password
    <input type="text" name="userlogpass" id="userlogpass">
    </label>
    </p>



    <label>accedi</label>
    </p>



    <input type="submit" name="btnlogconfirm" id="btnlogconfirm" value="Accedi">

    #1 inserisco qui il codice per passare i dati??

    </p>


    mi servirebbe l'istruzione che passa i dati dell'username e della password allo script (fammi sapere dove sta lo script) quando si fa clic sul bottone accedi.
    (quindi il codice lo inserisco su #1?)


    scusa se sono domande stupide ma non ho mai studiato il php

  9. #9
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Tranquillo, le domande, se si vuole imparare, non sono mai stupide.
    Però come ti avevo già detto, prima dovresti studiare le basi del linguaggio, non solo php ma anche html.

    Cmq ti spiego brevemente ciò che mi hai chiesto.
    Innanzitutti il form che hai postato non è un form, in quanto non hai mai aperto il tag form, ne l'hai chiuso. Questa sarebbe la versione corretta del form:

    Codice PHP:
    <form name="nomeform" method="POST" action="nomefile.php">
    username
    <input type="text" name="userlogname" id="userlogname">

    password
    <input type="text" name="userlogpass" id="userlogpass">

    <
    input type="submit" name="btnlogconfirm" id="btnlogconfirm" value="Accedi">
    </
    form
    A questo punto, cliccando sul tasto in form viene inviato con il metodo POST (method="POST") alla pagina miofile.php (action="nomefile.php").

    miofile.php può essere lo stesso file in cui esiste il form, quindi:

    Codice PHP:
    if(isset[$_POST])
    {
     
    // analizziamo i dati inviati
    }
    else
    {
      
    // il form 

    Info su POST:
    inviando il form tramite metodo POST, le variabili del form ti ritorneranno allo scritp all'interno dell'array $_POST. Quindi $_POST['userlogname'] ecc..
    Tutti gli input utente vanno filtrati ma non sto ad approfondire adesso (per ulteriori info ricerca a proposito di sicurezza, attacchi xss e sqlInjections)

    Infine, i dati utente non sono salvati su un file di testo, ma su un database mysql.
    Ciao

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    13
    ok ora abbozzo un progetto funzionante e poi ti faccio sapere.

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.