• User

    Aiuto con script registrazione utenti

    Ciao a tutti ho un problema con il mio script per la registrazione utenti..
    Vorrei far ricevere, in caso di smarrimento password, un'e-mail con i dati dell'utente ke lo richiede inserendo la sua e-mail nell' apposito campo..questi sono i miei file...

    Questo e' il mio file register.php
    [php]
    <?

    include 'db.php';

    if(!eregi("^[a-z]{5,15}$",$first_name)){
    echo "Nome non valido ";
    echo "<a href="./join_form.php">Torna</a>";
    exit;
    }

    if(!eregi("^[a-z]{5,15}$",$last_name)){
    echo "Cognome non valido ";
    echo "<a href="./join_form.php">Torna</a>";
    exit;
    }

    if (!eregi( "^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$",$email_address)){
    echo "E-mail non valida ";
    echo "<a href="./join_form.php">Torna</a>";
    exit;
    }

    if(!eregi("^[0-9a-z]{4,10}$",$username)){
    echo "Username non valido ";
    echo "<a href="./join_form.php">Torna</a>";
    exit;
    }

    // Define post fields into simple variables
    $first_name = $_POST['first_name'];
    $last_name = $_POST['last_name'];
    $email_address = $_POST['email_address'];
    $username = $_POST['username'];

    /* Lets strip some slashes in case the user entered
    any escaped characters. */

    $first_name = stripslashes($first_name);
    $last_name = stripslashes($last_name);
    $email_address = stripslashes($email_address);
    $username = stripslashes($username);

    /* Let's do some checking and ensure that the user's email address or username
    does not exist in the database */

    $sql_email_check = mysql_query("SELECT email_address FROM users WHERE email_address='$email_address'");
    $sql_username_check = mysql_query("SELECT username FROM users WHERE username='$username'");

    $email_check = mysql_num_rows($sql_email_check);
    $username_check = mysql_num_rows($sql_username_check);

    if(($email_check > 0) || ($username_check > 0)){
    if($email_check > 0){
    echo "<strong>La tua E-mail risulta gia' registrata nel nostro database. Inserisci una diversa E-mail!<br />";
    unset($email_address);
    }
    if($username_check > 0){
    echo "L' Username risulta gia' registrato nel nostro database. Inserisci un diverso Username!<br />";
    unset($username);
    }
    include 'join_form.php'; // Show the form again!
    exit(); // exit the script so that we do not create this account!
    }

    /* Everything has passed both error checks that we have done.
    It's time to create the account! */

    /* Random Password generator.
    http://cimo.altervista.org/file_reg.../passRandom.php

    We'll generate a random password for the
    user and encrypt it, email it and then enter it into the db.
    */

    function makeRandomPassword() {
    bla bla =P
    }

    $random_password = makeRandomPassword();

    $db_password = md5($random_password);

    // Enter info into the Database.
    $info2 = htmlspecialchars($info);
    $sql = mysql_query("INSERT INTO users (first_name, last_name, email_address, username, password, info, signup_date, decrypted_password)
    VALUES('$first_name', '$last_name', '$email_address', '$username', '$db_password', '$info2', now(), '$random_password')") or die (mysql_error());

    if(!$sql){
    echo 'Errore nel creare il tuo account!! Contatta il WebMaster.';
    } else {
    $userid = mysql_insert_id();
    $activatepath = "activate.php?id=$userid&code=$db_password";
    // Let's mail the user!
    $subject = "Richiesta registrazione $sitename";
    $message = "$first_name $last_name,
    Hai inviato la registrazione su $sitepath

    Per attivare il tuo account, clicca qui: $sitepath$activatepath
    
    I tuoi dati:
    Username: $username
    Password: $random_password
    
    CONSERVA QUESTI DATI XCHE' PER LA TUA PRIVACY E QUELLA DEGLI ALTRI I DATI SONO CRIPTATI!!
    
    Grazie!
    WebMaster, $sitename
    
    Questa E-mail viene generata automaticamente quindi non rispondere!";
    
    mail($email_address, $subject, $message, "From: $sitename <$adminemail>\nX-Mailer: PHP/" . phpversion());
    
    echo 'La tua richiesta e' stata inviata alla tua E-mail controlla!';
    

    }
    ?>
    [/php] Questo e' il file rec

    <font size="2">[php]
    <?

    include 'db.php';

    /* Let's do some checking and ensure that the user's email address or username
    does not exist in the database */

    $sql_email_check = mysql_query("SELECT email_address FROM users WHERE email_address='$email_address'");
    $email_check = mysql_num_rows($sql_email_check);

    if($email_check > 0){
    echo "<html>
    <head>
    <meta http-equiv="refresh" content="3;url=./index.htm">
    <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
    <div align="center" class=tit>I dati richiesti sono stati inviati a $email_address</div>
    </body>
    </html>";
    }else{
    echo "Si è verificato un errore<br>non è stato possibile inviare i dati richiesti a $email_address";
    }
    $message="Ciao $username_check,\n ecco i dati di accesso che hai richiesto:\n
    nick: $username\n
    password: $random_password\n
    A presto!!\n
    Staff di $nomesito.\n\n\n\n\n";

    mail($email_address, $subject, $message, "From: $sitename <$adminemail>\nX-Mailer: PHP/" . phpversion());
    ?>
    [/php]Quando vado per inserire l'e-mail mi dice ke nn e' possibile esegurire l'operazione...Nn calcola l'email di striscio..eppure le va' a salvare nel db?!?!

    Ho notato ke in questo pezzo di codice dove verifica se nel db ci sono usernmane e password gia' registrati ( e quindi nega la registrazione se gia' esistenti ) l'username mi funziona ma l'e-mail no...e' allora ho pensato ke nn le va' a cercare proprio nel database...e mi sembra strano xche' e' uguale come l'username ma cambiano solo le variabili ma nn funziona...
    Uff aiutatemi vi prego nn so' piu' dove sbattere la testa...

    [php] $sql_email_check = mysql_query("SELECT email_address FROM users WHERE email_address='$email_address'");
    $sql_username_check = mysql_query("SELECT username FROM users WHERE username='$username'");

    $email_check = mysql_num_rows($sql_email_check);
    $username_check = mysql_num_rows($sql_username_check);

    if(($email_check > 0) || ($username_check > 0)){
    if($email_check > 0){
    echo "<strong>La tua E-mail risulta gia' registrata nel nostro database. Inserisci una diversa E-mail!<br />";
    unset($email_address);
    }
    if($username_check > 0){
    echo "L' Username risulta gia' registrato nel nostro database. Inserisci un diverso Username!<br />";
    unset($username);
    }
    include 'join_form.php'; // Show the form again!
    exit(); // exit the script so that we do not create this account!
    }
    [/php]Tnx 😃


  • User

    Ho risolto tutto ho riffatto tutto d'accapo e ora va'....
    L'unica cosa e' il codice di restituzione della password se viene dimenticata...
    Invia l'e-mail e tutto ma le variabili .. nada...
    Come faccio per richiamarle visto che stanno nel file reg.php
    Questo e' il codice della restituzione password...
    Help tnx 😃

    
    <?
    
    include 'db.php';
    
    $sql_email_check = mysql_query("SELECT email FROM utenti WHERE email='$email'");
    $email_check = mysql_num_rows($sql_email_check);
    
    $sql_username_check = mysql_query("SELECT username FROM utenti WHERE username='$username'");
    $username_check = mysql_num_rows($sql_username_check);
    
    if($email_check > 0){
    echo "<html>
    <head>
    <meta http-equiv=\"refresh\" content=\"3;url=./login.php\">
    <link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\">
    </head>
    <body>
    <div align=\"center\" class=tit>I dati richiesti sono stati inviati a $email</div>
    </body>
    </html>";
    }else{
    echo "Si è verificato un errore<br>non è stato possibile inviare i dati richiesti a $email";
    }
    
    $soggetto = "Richiesta password dimenticata $nomesito";
    $messaggio="Ciao $username,\n ecco i dati di accesso che hai richiesto:\n
    nick: $username_\n
    password: $password_random\n
    A presto\n
    Staff di $nomesito.\n\n\n\n\n";
    
    mail($email, $soggetto, $messaggio, "From: $nomesito <$emailadmin>\nX-Mailer: PHP/" . phpversion());
    
    ?>
    
    

  • User

    Mi puoi spiegare come si fa questa cosa??

    io ho bisogno di un form di registrazione in script ed di un login.

    e di un database dove si inseriscono automaticamente i dati.

    Grazie


  • User Attivo

    Cimo posta i due files come sono ora.

    Lukas_922
    è semplice, crei il form in html poi da php fai una query(se hai problemi a farla chiedi)
    dopodiche devi fare il login. fai il tuo form in html e poi fai una query per controllare gli utenti se esiste e la password è corretta fai $_SESSION['loggato'] = $username; poi per vedere se è "loggato" guardi se esiste $_SESSION['loggato'].

    È molto semplice da fare basta impegnarsi un po e conoscere un po di PHP.
    ciao ciao (ti ho spiegato la teoria, la pratica devi farla te o almeno provarci e poi ti diamo una mano)


  • User

    Ciao ascolta io non ho capito niente di quello che hai detto. Scusa!!

    io la tabella e il query le ho già fatte e anche il login e dopo???

    io vorrei fare in modo che il login si connettesse al mio database, per controllare se esiste l'username e la password del account!!

    Tutto qui!


  • User Attivo

    se hai già fatto le query che problema c'è? 😄

    devi istanziare una connessione mysql(o qualche altro DB) e poi fai la query con i dati presi in post o in get.


  • User

    e quello volevo sapere!!

    il mysql!! come si fà ad instanziare???

    Spiegami la procedura.


  • User Attivo

    puoi cercare qua http://ch2.php.net/manual/it/ref.mysql.php

    pe istanziare una connession mysql devi inserire i tuoi dati così

    
    $connessione = mysql_connect("localhost", "utente_mysql", "password_mysql")
            or die("Connessione non riuscita: " . mysql_error());
    
    

    e le query fai

    
    mysql_query("SELECT * FROM Tabella WHERE username = $_POST['username']");
    
    

  • User

    dove??


  • User Attivo

    nel file.php


  • User

    non mi puoi inviare un esempio??

    a [EMAIL="[email protected]"][email protected][/EMAIL]

    Grazie


  • User Attivo

    ma di cosa?


  • User

    di tutta questa roba!!

    login, database e form per la registrazione...

    grazie!!

    a [EMAIL="[email protected]"][email protected][/EMAIL]


  • User Attivo

    ma scusa impegnati un po 🙂 se te lo faccio io tu non impari nulla


  • User

    eh ma cio provato mille volte...

    alla fine non ci riesco!!

    se mi puoi fare questo!!


  • User

    almeno lo script per il login e la registrazione????

    eh dai!!

    Grazie..


  • User Attivo

    posta il codice che hai fatto che proviamo ad aiutarti


  • User

    questo è per la registrazione: controllate se è tutto ok!!

    creato con frontpage2003.

    <%
    ' FP_ASP File ASP generato automaticamente da un componente di FrontPage. Non modificarlo.
    On Error Resume Next
    Session("FP_OldCodePage") = Session.CodePage
    Session("FP_OldLCID") = Session.LCID
    Session.CodePage = 1252
    Session.LCID = 1040
    Err.Clear
    strErrorUrl = "regerr.htm"
    If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
    If Request.Form("VTI-GROUP") = "0" Then
    Err.Clear
    Set fp_conn = Server.CreateObject("ADODB.Connection")
    FP_DumpError strErrorUrl, "Impossibile creare la connessione."
    Set fp_rs = Server.CreateObject("ADODB.Recordset")
    FP_DumpError strErrorUrl, "Impossibile creare il set di record."
    fp_conn.Open Application("Nuova_pagina_1_ConnectionString")
    FP_DumpError strErrorUrl, "Impossibile aprire il database."
    fp_rs.Open "Risultati", fp_conn, 1, 3, 2 ' adOpenKeySet, adLockOptimistic, adCmdTable
    FP_DumpError strErrorUrl, "Impossibile aprire il set di record."
    fp_rs.AddNew
    FP_DumpError strErrorUrl, "Impossibile aggiungere nuovi set di record al database."
    Dim arFormFields0(4)
    Dim arFormDBFields0(4)
    Dim arFormValues0(4)
    arFormFields0(0) = "Password"
    arFormDBFields0(0) = "Password"
    arFormValues0(0) = Request("Password")
    arFormFields0(1) = "Username"
    arFormDBFields0(1) = "Username"
    arFormValues0(1) = Request("Username")
    arFormFields0(2) = "EmailAddress"
    arFormDBFields0(2) = "EmailAddress"
    arFormValues0(2) = Request("EmailAddress")
    arFormFields0(3) = "PasswordVerify"
    arFormDBFields0(3) = "PasswordVerify"
    arFormValues0(3) = Request("PasswordVerify")
    FP_SaveFormFields fp_rs, arFormFields0, arFormDBFields0

    fp_rs.Update
    FP_DumpError strErrorUrl, "Impossibile aggiornare il database."
    fp_rs.Close
    fp_conn.Close
    Session("FP_SavedFields")=arFormFields0
    Session("FP_SavedValues")=arFormValues0
    Session.CodePage = Session("FP_OldCodePage")
    Session.LCID = Session("FP_OldLCID")
    Response.Redirect "regok.htm"
    End If
    End If
    Session.CodePage = Session("FP_OldCodePage")
    Session.LCID = Session("FP_OldLCID")
    %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <meta http-equiv="Content-Language" content="it">
    <title>Registrazione utente</title>
    </head>
    <body>
    <h1>Registrazione utente</h1>
    <hr>
    <p>Per registrarsi automaticamente come utenti, compilare e inviare il modulo.
    L'accesso è consentito ai soli utenti registrati. Impostare il proprio nome
    utente, ad esempio il proprio cognome, evitando di inserire spazi, e una
    password personale. D'ora in poi sarà possibile accedere tramite questi due
    elementi, che verranno memorizzati in un database di registrazione accessibile
    solo al webmaster.</p>
    <p>Dopo la registrazione, al primo accesso verrà chiesto di digitare il nome
    utente e la password. Il browser conserverà tali informazioni per tutta la
    sessione di lavoro, in modo da consentirvi di accedere a qualsiasi documento
    senza dover fornire nuovamente tali dati.</p>
    <hr>
    <form method="POST" name="Register" action="--WEBBOT-SELF--">
    <!--webbot bot="SaveDatabase" SuggestedExt="asp" S-DataConnection="Nuova_pagina_1" S-RecordSource="Risultati" U-Database-URL="fpdb/Nuova_pagina_1.mdb" U-Confirmation-Url="regok.htm" U-Validation-Error-Url="regerr.htm" S-Form-Fields="Password Username EmailAddress PasswordVerify" S-Form-DBFields="Password Username EmailAddress PasswordVerify" U-ASP-Include-Url="_fpclass/fpdbform.inc" startspan --><input TYPE="hidden" NAME="VTI-GROUP" VALUE="0"><!--#include file="_fpclass/fpdbform.inc"--><!--webbot bot="SaveDatabase" i-checksum="40548" endspan --> <h2>
    Modulo di registrazione</h2>
    <p>Nome utente:<br>
    <input type="text" size="25" maxlength="256" name="Username"> <br>
    Password:<br>
    <input type="password" size="25" maxlength="256" name="Password"> <br>
    Digitate nuovamente la password:<strong><br>
    </strong>
    <input type="password" size="25" maxlength="256" name="PasswordVerify"> <br>
    Digitate il vostro indirizzo di posta elettronica:<strong><br>
    </strong><input type="text" size="25" maxlength="256" name="EmailAddress">
    </p>
    <p><input type="submit" value="Invia registrazione">
    <input type="reset" value="Cancella"></p>
    </form>
    <hr>
    <h5> </h5>
    </body>
    </html>


  • User

    Questo è per il login:

    **<?php
    include "config.php";
    include "funzioni.php";
    $DB = new DB();
    session_start();
    unset($_SESSION['login']);
    unset($_SESSION['psw']);
    // Si connette
    $DB->connect();
    $login = trim(addslashes($_POST[login]));
    $pass = trim(addslashes($_POST[psw]));
    if ($login=='' or $pass==''){
    echo"<form name='login' action='' method='post'>
    <table>
    <tr><td>Login</td><td><input type='text' name='login'></td></tr>
    <tr><td>Password</td><td><input type='password' name='psw'></td></tr>
    <tr><td><input type='submit' name='Accedi' value='Accedi'></td><td></td></tr></table>";}
    else
    {
    $psw_per_db = criptpass($pass);
    $verifico_user = mysql_query("SELECT *
    FROM utenti
    WHERE nick ='$login'
    AND pass = '$psw_per_db' and stato = '1'
    LIMIT 0 , 1");
    $ok_login = mysql_num_rows($verifico_user);
    if($ok_login=="1")
    {
    $_SESSION[login] = $login;
    $_SESSION[psw]= $psw_per_db;
    Echo "<meta http-equiv="Refresh" content="3; URL=set.php">Login effettuato correttamente . <a href=set.php>Clicca qui per entrare</a>";
    }
    else
    {
    Echo "<meta http-equiv="Refresh" content="3; URL=login.php">Login incorretto o utente che non ha ancora completato il processo di registrazione. In questo caso controlla la tua email<a href=login.php>Premi qui per riprovare</a>";
    }
    }
    **


  • User Attivo

    Ciao Lukas_922,

    @Lukas_922 said:

    di tutta questa roba!!

    login, database e form per la registrazione...

    grazie!!

    a [EMAIL="[email protected]"][email protected][/EMAIL]

    Ti faccio notare alcuni punti del regolamento:

    **10. Uso dei Messaggi Privati
    Ogni forumista ha diritto di leggere il forum senza essere tempestato di richieste di assistenza, spam, autopromozione o proposte varie non richieste.
    Domande (e risposte) a tema devono essere fatte sul forum e deve essere rispettata la Privacy degli utenti.
    **
    10.0. Incitazione all'invio di PVT e/o email

    Salvo nelle Aree Annunci o dove specificatamente consentita, è vietata la richiesta di contatto privato in e-mail o pvt.
    Le risposte ed i suggerimenti ai messaggi devono essere pubbliche, in modo da essere d'aiuto a tutta la comunità del forum.Ma sopratutto vorrei ricordare che il forum è condivisione e non help desk: I messaggi devono essere di aiuto a tutta la comunità.

    Grazie a Skyline per la cortesia.

    Continuiamo pure nel rispetto del regolamento.

    :ciauz: