Visualizzazione risultati 1 fino 7 di 7

Discussione: Help database, mysql, login, registrazione e chi ne ha più ne metta

  1. #1
    Guest

    Predefinito Help database, mysql, login, registrazione e chi ne ha più ne metta

    Allora, anzitutto ciao a tutti, come potete vedere sono nuovo del forum e sono stato incaricato di costruire un sito web per un mio amico. I miei problemi (dal titolo s'intuisce) non sono pochi.
    Premetto che ho già usato il tasto cerca come ogni buon utente dovrebbe fare, ma i risultati che ho trovato non hanno mai funzionato (anche modificandoli di persona).
    Passando al resto vi descrivo la mia situazione:
    Ho queste necessità:
    -Creare uno script PHP che interagisca con il database mysql e il relativo form da utilizzare nelle pagine html (che consenta la registrazione)
    -Creare uno script sempre PHP che interagisca con il database mysql e il relativo form da utilizzare nelle pagine html (che consenta il login)
    Purtroppo non sono un esperto in sessioni e quello che trovo sul web non riesco proprio ad applicarlo.

    Ora la mia idea sarebbe questa:
    creare un form in cui ogni utente registra la propria mail e la propria password. Inoltre devo creare un altro script che sia in grado di far inserire dei dati e modificarli a piacimento dell'utente come uno status, l'utente però ne deve possedere SOLO e SOLAMENTE uno di questi profili, magari associato all'id. Conosco le funzioni insert into e update, semplicemente non so come restringere questa possibilità ad un solo utente e SOLO per il suo profilo.

    Vi ringrazio anticipatamente ^^

  2. #2
    Guest

    Predefinito

    Effettivamente ti mancano parecchie nozioni... vediamo che posso fare...
    Prima di tutto, non ho capito che intendi per

    "non so come restringere questa possibilità ad un solo utente e SOLO per il suo profilo."

    Vuoi che un utente possa creare un profilo e modificarlo con un form (ad esmpio cambiare la password, modificare nfromazioni perosonali, ecc...) con un form, giusto?

    In questo caso, la prima cosa da fare è creare una pagina php "registration_form.php", per il form di registrazione.

    Potrebbe essere strutturata in questo modo:
    Codice HTML:
    <form method="post" name="registration" action="mail.php">
    <table>
    <tr>
    <td>
    E-mail:
    </td>
    <td>
    <input type="text" name="mail" />
    </td>
    </tr>
    <tr>
    <td>
    Password:
    </td>
    <td>
    <input type="password" name="password" />
    </td>
    </tr>
    <tr>
    <td>
    Conferma password:
    </td>
    <td>
    <input type="password" name="re_password" />
    </td>
    </tr>
    <tr>
    <td>
    &nbsp;
    </td>
    <td>
    <input type="submit" name="invia" value="registrati"/>
    </td>
    </tr>
    </table>
    </form>
    Questa pagina è un smeplice form, con un campo "e-mail", e due campi per scegliere e confermare la passsword.

    Ora, il rischio è che qualcuno si registri centinaia di volte per il puro gusto di rovinarti il database, dunque, è meglio creare un sistema che assicuri che l'email inserita dall'utente è vera, per questo, puoi inviargli dinamicamente un'e-mail, con un link che poi inserirà effettivamente l'utente nel database, in questo modo, se l'email non è vera, l'utente non riceverà il link è non potrà registrarsi.

    Per questo, creiamo una pagina mail.php, destinataria del form di registrazione, che invierà la mail, e una pagina confirm.php, destinataria del link, che effettuerà la reistrazione vera e propria.

    mail.php:
    Codice PHP:
    <?php
    //Controllo che siano stati inseriti tutti i dati e che la password corrisponda alla conferma
    if(isset($_POST["mail"])&&isset($_POST["password"])&&$_POST["password"]==$_POST["re_password"])
    {
    //Invio la mail
    $mail = $_POST["mail"];
    $password = md5($_POST["password"]);//codifico la password per questioni di sicurezza
    $code = base64_encode(base64_encode($mail)."|".$password);//Il codice che, dal link, permetterà di recuperare i dati dell'utente. Ho usato base64_encode due volte, per rendre difficile all'utente risalire al contenuto originario del codice
    $to = $_POST["mail"];//Il destinatario è l'indirizzo inserito
    $subject = 'Registrazione effettuata';
    $site = "http://mhtitalia.altervista.org";//indirizzo completo del TUO sito
    $message = "Ciao! grazie di esserti registrato al mio sito web: $site
    Per confermare la registarzione, e poter ottenere un account, clicca sull'indirizzo qui sotto, se l'indirizzo è su più righe, copialo e incollalo nella barra del tuo browser:

    $site/confirm.php?c=$code";
    //Ho scritto il messaggio dell'e-mail, con il link, che, attraverso il codice, permetterà di recuperare e inserire nel database i dati dell'utente.
    $headers = 'From: noreply@mhtitalia.altervista.org . "\r\n" .
    '
    Reply-To: noreply@mhtitalia.altervista.org' . "\r\n" .
    '
    X-Mailer: PHP/' . phpversion();//Alcuni headers

    mail($to, $subject, $message, $headers);//Invio l'
    e-mail
    echo "Registrazione completata! Per attivare il tuo account, clicca sul link nell'e-mail che ti abbiamo inviato!";//Scrivo che la registrazione è andata a buon fine
    }
    ?>
    In questo modo, a meno che non si tratti di qualcuno di particolarmente esperto, sarà difficile per l'utente registrarsi in modo anomalo. Per ulteriori sistemi di sicurezza, servirebbero accorgimenti abbastanza complessi.

    Ora ecco come potrebbe essere la pagina che, verificato il codice del link, registra l'utente.

    confirm.php
    Codice PHP:
    <?php
    $code
    = $_GET["c"];//Recupera il codice
    $code = base64_decode($code);//Decodifico il codice
    list($mail, $password) = explode("|", $code);//Suddivido il codice in mail e password, che erano state separate da |
    $mail = base64_decode($mail);//Decodifico l'e-mail, che era stat codificata all'interno del codice codificato
    //Non posso decodificare la password, per via dell'algoritmo irreversibile usato, ma potrò usarla comunque.
    //Ora mi connetto al database ed inserisco il nuovo utente
    $link = mysql_connect('localhost', 'mhtitalia', '');//Mi connetto a mysql
    mysql_query('INSERT INTO my_mhtitalia.users VALUES ('.$mail.','.$password.')');//Eseguo la query, inserendo e-mail e password nella tabela utenti.
    echo "Registarzione completata";
    ?>
    A qusto punto non ti resta che creare una pagina di login (utilizzando select), a login completato mostri un form e poi, usi update per modificare i campi desiderati

    Spero di esserti stato utile!

  3. #3
    Guest

    Predefinito

    Ok, ho capito perfettamente il tuo esempio (del resto quasi identico al mio). Forse non ho reso bene l'idea come tu hai fatto. Esattamente. Voglio che l'utente abbia una specie di pannello personale collegato ad una variabile primaria (ID) oppure all'id della sessione stessa. Sai darmi info ?

    Grazie mille ^^

    EDIT
    Scusate se doppioposto, ma non riuscivo più ad editare il mio precedente post.
    Allora sono riuscito finalmente a far inviare la mail, nonché ad inserire i dati all'interno della tabella. Adesso io vi chiedo, come faccio a rendere obbligatori tutti i campi nel form di registrazione prima di passare la richiesta al file php ? Inoltre vorrei essere in grado di verificare (al momento della registrazione) se la mail è stata già utilizzata. Comunque rimane il problema del login (che voglio utilizzare con le sessioni, quindi senza cookies).

    Visto che ci sono vi faccio un altro quesito estraneo al problema:
    Io a questo punto avrò il database, il login, la registrazione.

    Voglio che tutti i dati siano stampati in una tabella (e fin qui il fetch row fa il suo sporco dovere), ma la cosa che mi piacerebbe fare, è dividere tutti i risultati in varie pagine. Ossia :

    pagina 1 :
    tizio email username
    caio email username

    --> passa alla prossima pagina

    pagina 2 :
    sempronio email username
    pincopallino email username

    e così dicendo, sapete aituarmi?

    Grazie in anticipo per la cortesia ^^

    EDIT2

    RISOLTO

    Ma manca il problema del login
    Ultima modifica di andreafallico : 14-05-2010 alle ore 19.28.07

  4. #4
    pupax non è connesso Utente giovane
    Data registrazione
    06-05-2010
    Messaggi
    30

    Unhappy Login

    mi potete dire il codice del login nn ne so molto di html

    grazie!!!!

  5. #5
    Guest

    Predefinito

    Salva a tutti,

    Avrei bisogno di una mano per costruire delle pagine protette del mio sito. Ho fatto tutto. La fase di registrazione, la verifica delle due password se coincidono e la verifica dell'utente se è già registrato o meno nel database. la password viene criptata con il metodo sha1. Ho anche fatto la pagina di login. Mi serve a questo punto creare la protezione. Quando un utente registrato, ovviamnete lo deve pescare dal database. Chi mi potrebbe dare una mano per favore ???? Grazie spero di ricevere delle risposte con il codice possibilmente. Perkè sinceramente sull'argoimento sessioni sono a digiuno anche se ho visto i vari esempi. I campi a disposizone nella tabella che ho chiamato "Utenti", sono i seguenti:

    ID = Autoincrement
    Login = Text
    Pass = Text

  6. #6
    L'avatar di memai
    memai non è connesso Utente
    Data registrazione
    10-02-2010
    Residenza
    Bergamo
    Messaggi
    175

    Predefinito

    creo form per il login con metodo anche post, poi:
    Codice PHP:
    if(isset($_POST['submit']) && !empty($_POST['login']) && !empty($_POST['pass'])){
    $login= mysql_real_escape_string($_POST['login']);
    $pass= mysql_real_escape_string(hash(sha1 , $_POST['pass']));
    $query=mysql_query("SELECT * FROM tua_tabella WHERE Login='$login' AND Pass='$pass' ");
    $controllo=mysql_num_rows($query);
    if(
    $controllo == 0){ echo "Non sei loggato"; }
    else{ echo
    "ti sei loggato"; }
    } else if(isset(
    $_POST['submit'])){ echo "I campi non sono stati compilati a dovere!";}
    e' un metodo

  7. #7
    Guest

    Predefinito

    ciao a tutti. ho più o meno lo stesso problema e ha da giorni che cerco risposte ma non ho trovato nessuna soluzione ;( vorrei creare il sito in modo che ogni utente si possa registrare, quindi con login e pass, abbia una sua pagina personale e possa inserire dei documenti in html. Ho cercato in internet, nel forum, e ho scaricato un programma myqsp ma non ho capito come funziona ed ho avuto problemi anche per istallarlo. Mi chiedo quindi si deve necessariamente utilizzare un apporto esterno. Se entro dal pannello di controllo non posso inserire io le pagine e i codici (sempre che riesca a trovarli-.-)? Un'ultima cosa qualcuno sarebbe disposto da aiutarmi?Ovviamente vi ripagherò del tempo "perso" sotto previa retribuzione pubblicitaria (sul sito da realizzare, pagine fb e siti esterni)? grazie mille

Regole di scrittura

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