Visualizzazione risultati 1 fino 11 di 11

Discussione: Invio mail con i dati e generazione di due link

  1. #1
    Guest

    Question Invio mail con i dati e generazione di due link

    Ciao sono quasi alla fine....
    di creare uno script....
    e dovrei fare che dopo l'utente mette i dati...
    riceva una mail con i propri dati
    nome:
    mail...
    e alla fine due link
    uno che serve per confermare l'avvenuta iscrizione e l'altra per annullarla ma non sono come fare
    tipo
    sito.altervista.org/ciao/ssasda.php?conferma=SAddasadsa
    sito.altervista.org/ciao/ssasda.php?annulla=daasdda

    si puo fare....il testo dopo conferma e annulla deve essere generato casualmente...

  2. #2
    Guest

    Predefinito

    che te ne pare?
    Codice PHP:
    // Genero una stringa casuale di Attivazione
    $attivazione = '';
    for(
    $x=1; $x<=32; $x++)
    $attivazione.=rand(0,9);
    $attivazione = md5($attivazione);

  3. #3
    Guest

    Predefinito

    ok grazie...
    ho fatto cosi ora come posso fare ad inviarlo tramite mail...
    e poi come posso fare che quel codice che viene generato corrisponde al attivazione e l'altro al annullamento...
    Codice PHP:
    <?php
    $destinatario
    ="desti@hotmail.it";
    $mittente="mitt@hotmail.it";
    $headers .= "From: " .$mittente. "\r\n";
    $headers .= "Reply-To: " .$mittente. "\r\n";


    $attivazione = '';
    for(
    $x=1; $x<=32; $x++)
    $attivazione.=rand(0,9);
    $attivazione = md5($attivazione);

    $annullamento = '';
    for(
    $x=1; $x<=32; $x++)
    $annullamento.=rand(0,9);
    $annullamento = md5($annullamento);

    $oggetto="Conferma Iscrizione!";
    $messaggio="
    Nome:\r\n
    Pass:\r\n
    Link di Attivazione:
    http://hotmailpower.altervista.org/index.php?=
    $attivazione\r\n
    Link di Annullamento:
    http://hotmailpower.altervista.org/index.php?=
    $annullamento";


    /* funzione mail */
    if(mail($destinatario, $oggetto, $messaggio, $headers)){
    echo
    "Email inviata con successo!";
    }else{
    echo
    "Errore";
    }
    ?>
    Ultima modifica di hotmailpower : 24-08-2009 alle ore 00.39.41

  4. #4
    Guest

    Predefinito

    come prima cosa devi creare un campo nella tabellla utenti chiamato attivazione poi metti il codice che hai fatto tu nella pagina di registrazione, per inviarlo per email basta che metti questo alla fine del messaggio:

    Codice PHP:
    link:<br><a href="http://www.tuosito.altervista.org/attivazione.php?code='.$attivazione.'">Attiva account</a>';
    NON TI DIMENTICARE CHE DEVI INVIARE ANCHE IL CODICE DI ATTIVAZIONE AL DB CON UN QUERY qualcosa di questo tipo

    Codice PHP:
    $strSQL = "INSERT INTO utenti ('attivazione')";
    $strSQL .= "VALUES('$attivazione')";
    mysql_query($strSQL) OR die("Errore 000 registrazione, contattare l'amministratore ".mysql_error());
    poi crei un altra pagina e la chiami attivazione.php e dentro metti qualcosa del genere:

    Codice PHP:
    // Dati Inviati dal modulo
    $code = (isset($_GET['code'])) ? trim($_GET['code']) : '';

    // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
    if (!get_magic_quotes_gpc()) {
    $code = addslashes($code);
    }

    // Controllo la validit� del link
    if(strlen($code) != 32)
    die(
    'Codice non valido');

    //prelevo l'id
    $query = " SELECT * FROM utenti WHERE attivazione='$code'";
    $risult = mysql_query($query);
    $row = mysql_fetch_array($risult);
    $id = $row['id'];
    $_SESSION['user'] = $row['user'];

    // Aggiorno il record
    $update = mysql_query("UPDATE utenti SET attivazione = '' WHERE attivazione = '$code' LIMIT 1");

    // Quanti record ha aggiornato la query
    $attivato = mysql_affected_rows();
    Tutto chiaro ora?

  5. #5
    Guest

    Predefinito

    non capisco sta parte come funziona..
    $code = (isset($_GET['code'])) ? trim($_GET['code']) : '';

  6. #6
    Guest

    Predefinito

    controlla se il codice è stato creato nella pagina di registrazione...oppure è stato scritto nella barra degli indirizzi...

  7. #7
    Guest

    Predefinito

    questo l' avevo capito non capisco come fa a sapere che il codice generato corrisponde a quel utente..

  8. #8
    Guest

    Predefinito

    controlla controlla il codice, che l'utente ha premuto, con quello che e nel database precisamente qui

    Codice PHP:
    // Aggiorno il record
    $update = mysql_query("UPDATE utenti SET attivazione = '' WHERE attivazione = '$code' LIMIT 1");

  9. #9
    Guest

    Predefinito

    Ti spiego come dovrebbe funzionare....
    l'utente mette i dati i dati vengono inviati tramite mail al utente
    con scritto:
    nome:nome utente
    eccc.

    poi sotto
    Link di Attivazione:
    http://hotmailpower.altervista.org/a...hp?code=numero a 32 bit
    Link di Annullamento:
    http://hotmailpower.altervista.org/a...hp?code=numero a 32 bit

    se clicca su attivazione l'utente viene inserito nel database con i dati
    nome utente mail ecc...
    se clicca su annullamento l'utente non viene inserito o viene inserito o cancellato subito


    il problema come fare a sapere che quel codice di attivazione o annullamento corrispondono a quel utente...


    si ma non capisco come quei codici generati corrispondono a quella persona...^^

    p.s.
    potresti postare tutto il codice di come deve essere secondo te....
    con anche l'invio del mail...

  10. #10
    Guest

    Predefinito

    io, ti spiego come fare con un solo link perchè con 2 non l'ho mai fatto! io lo fatto solo con attivazione, non ti inserisco tutto il codice di registrazione ma solo la parte che ti interessa!!!

    TABELLA MYSQL:

    CREATE TABLE IF NOT EXISTS `utenti` (
    `id` int(11) NOT NULL auto_increment,
    `user` text NOT NULL,
    `pass` text NOT NULL,
    `mail` text NOT NULL,
    `attivazione` text NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
    PAGINA DI REGISTRAZIONE.PHP
    Codice PHP:
    // Genero una stringa casuale di Attivazione
    $attivazione = '';
    for(
    $x=1; $x<=32; $x++)
    $attivazione.=rand(0,9);
    $attivazione = md5($attivazione);
    $message = 'Benvenuto utente! Ti sei registrato con sucesso su Zomer un fantastico Social Network! Per attivare il suo account e usufruire di tutti i servizi deve visitare il seguente link:<br><a href="http://www.zomer.altervista.org/attivazione.php?code='.$attivazione.'">Attiva account</a>';
    // Header dell'email, per madnarla in formato html
    $headers = "From: Zomer <makingweb.altervista@gmail.com>\r\n";
    $headers .= "Reply-To: makingweb.altervista@gmail.com\r\n";
    $headers .= "Return-Path: makingweb.altervista@gmail.com\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

    // Invio L'email
    mail($mail, 'Registrazione', $message, $headers);

    // Query per l'inserimento dell'utente nel database
    $strSQL = "INSERT INTO utenti (nome,user,pass,mail,t_sesso,attivazione)";
    $strSQL .= "VALUES('$nome', '$user', '$pass', '$mail', '$sesso', '$attivazione')";
    mysql_query($strSQL) OR die("Errore 000 registrazione, contattare l'amministratore ".mysql_error());
    PAGINA DI ATTIVAZIONE.PHP
    Codice PHP:
    <?php
    // Includo la connessione al database
    require('config.ini.php');
    require(
    'errore.php');
    session_start();

    // Dati Inviati dal modulo
    $code = (isset($_GET['code'])) ? trim($_GET['code']) : '';

    // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
    if (!get_magic_quotes_gpc()) {
    $code = addslashes($code);
    }

    // Controllo la validit� del link
    if(strlen($code) != 32)
    die(
    'Codice non valido');

    //prelevo l'id
    $query = " SELECT * FROM utenti WHERE attivazione='$code'";
    $risult = mysql_query($query);
    $row = mysql_fetch_array($risult);
    $id = $row['id'];
    $_SESSION['user'] = $row['user'];

    // Aggiorno il record
    $update = mysql_query("UPDATE utenti SET attivazione = '' WHERE attivazione = '$code' LIMIT 1");

    // Quanti record ha aggiornato la query
    $attivato = mysql_affected_rows();
    <!
    DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <
    html xmlns="http://www.w3.org/1999/xhtml">
    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <
    title>Area privata</title>
    </
    head>
    <
    body>
    <?=(
    $attivato == 1) ? 'Account Attivato' : 'Errore, link non valido' ?><br />
    <br />
    <br />
    <a href="index.php">Homepage</a><br />
    </body>
    </html>
    LOGIN.PHP
    Codice PHP:
    <?php
    // Includo la connessione al database
    require('config.ini.php');


    // Se il modulo viene inviato...
    if(isset($_POST['login']))
    {

    // Dati Inviati dal modulo
    $user = (isset($_POST['user'])) ? trim($_POST['user']) : ''; // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato d� di default ''
    $pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : ''; // Metto nella variabile 'pass' il dato inviato dal modulo, se non viene inviato d� di default ''

    // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
    if (!get_magic_quotes_gpc()) {
    $user = addslashes($user);
    $pass = addslashes($pass);
    }

    // Crypto la password e la confronto con quella nel database
    $pass = md5($pass);

    // Controllo l'utente esiste
    $query = mysql_query("SELECT id,attivazione FROM utenti WHERE user = '$user' AND pass = '$pass' LIMIT 1");

    // Se ha trovato un record
    if(mysql_num_rows($query) == 1)
    {
    // prelevo l'id dal database
    $login = mysql_fetch_array($query);
    // L'account � attivo?
    if($login['attivazione'] == '')
    {
    // Creo una variabile di sessione
    $_SESSION['login'] = $login['id'];

    // reindirizzo l'utente
    header('Location: home.php');
    exit;
    }
    else
    {
    die(
    'Attiva il tuo account!!!');
    }
    }
    // se non esiste da l'errore
    else
    die(
    'Nome Utente o Password errati');
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Login</title>
    </head>

    <body>
    <form action="" method="post">
    <input name="user" type="text" id="user" value="Nome Utente" onfocus="if(this.value=='Nome Utente') this.value='';" />
    <input name="pass" type="password" id="pass" value="Password" onfocus="if(this.value=='Password') this.value='';" />
    <input name="login" type="submit" value="Login" />
    </form>
    </body>
    </html>

  11. #11
    Guest

    Question

    ti ringrazio XD
    ma ci sono alcune cose che non fanno....
    ha me il la pagina login non mi serve...
    ti posto la mia pagina registrazione...
    Codice PHP:
    <?php
    $hostname_temp
    = "localhost";
    $database_temp = "my_hotmailpower"; //my_tuonick
    $username_temp = "hotmailpower"; //metti il tuo username
    $password_temp = ""; //metti la tua password
    $temp = mysql_pconnect($hostname_temp, $username_temp, $password_temp) or trigger_error(mysql_error(),E_USER_ERROR);
    mysql_select_db($database_temp, $temp);
    unset(
    $password_temp);

    $error = false;
    if(isset(
    $_POST['submit'])){
    if(
    trim($_POST['nome']) == ""){
    echo
    '<script type="text/javascript">alert("Campo Nome Vuoto!")</script>';
    $error = true;
    }elseif(
    strlen($_POST['nome']) <= 4){
    echo
    '<script type="text/javascript">alert("Campo Nome deve essere almeno di 5 lettere!")</script>';
    $error = true;
    }elseif(
    trim($_POST['mail']) == ""){
    echo
    '<script type="text/javascript">alert("Campo Mail Vuoto!")</script>';
    $error = true;
    }elseif(!
    eregi("^[a-z0-9][_\.a-z0-9-]+@([a-z0-9][0-9a-z-]+\.)+([a-z]{2,4})", trim($_POST['mail']))){
    echo
    '<script type="text/javascript">alert("Errore! Non hai inserito un indirizzo email valido!")</script>';
    $error = true;
    }elseif(
    trim($_POST['password']) == ""){
    echo
    '<script type="text/javascript">alert("Campo Password Vuoto")</script>';
    $error = true;
    }elseif(
    strlen($_POST['password']) <= 4){
    echo
    '<script type="text/javascript">alert("Campo Password deve essere almeno di 5 lettere!")</script>';
    $error = true;
    }


    if(
    $error == false){
    $query = "SELECT COUNT(*) AS total FROM utenti WHERE nome = '" .$_POST[nome]. "' OR mail = '" .$_POST[mail]. "'";
    $raw = mysql_query($query);
    $row = mysql_fetch_array($raw);
    if(
    $row['total'] > 0){
    echo
    '<script type="text/javascript">alert("I dati inseriti sono già utilizzati!!")</script>';
    $error = true;
    }
    if(
    $error == false){
    foreach(
    $_POST as $key => $value) {
    $_POST[$key] = mysql_real_escape_string($value);
    }
    $query_prova1= "INSERT INTO utenti (
    nome,
    mail,
    password)
    VALUES(
    '"
    .htmlentities($_POST['nome'])."',
    '"
    .htmlentities($_POST['mail'])."',
    '"
    .htmlentities($_POST['password'])."'
    )"
    ;
    }

    if(!(
    $prova1 = mysql_query($query_prova1, $temp))){
    die(
    mysql_error());
    //$row_prova1 = mysql_fetch_assoc($prova1);
    //$totalRows_prova1 = mysql_num_rows($prova1);
    break;
    }else{
    echo
    '<script type="text/javascript">alert("Dati Salvati!!")</script>';

    $destinatario = $_POST['mail'];
    $mittente = "hotmailpower@altervista.org";
    $headers = "From: ".$mittente."\r\n";
    $headers .= "Reply-To: ".$mittente."\r\n";
    $headers .= "Return-Path: ".$mittente."\r\n";

    $attivazione = '';
    for(
    $x=1; $x<=32; $x++)
    $attivazione.=rand(0,9);
    $attivazione = md5($attivazione);

    $annullamento = '';
    for(
    $x=1; $x<=32; $x++)
    $annullamento.=rand(0,9);
    $annullamento = md5($annullamento);

    $oggetto="Conferma Iscrizione!";
    $messaggio="
    Benvenuto Utente! Ti sei registrato con sucesso su hotmailpower un fantastico Social Network!
    nome: "
    .$_POST['nome']."
    mail: "
    .$_POST['mail']."
    Password:"
    .$_POST['password']."

    Link di Attivazione:
    http://hotmailpower.altervista.org/index.php?=
    $attivazione\r\n
    Link di Annullamento:
    http://hotmailpower.altervista.org/index.php?=
    $annullamento";


    /* funzione mail */
    if(mail($destinatario, $oggetto, $messaggio, $headers)){
    }else{
    echo
    "Errore";
    }
    mysql_close($temp);
    }}}
    ?>
    questa e invece la Mysql
    Codice PHP:
    CREATE TABLE `utenti` (
    `
    id` INT(4) NOT NULL AUTO_INCREMENT,
    `
    nome` VARCHAR(65) NOT NULL DEFAULT '',
    `
    mail` VARCHAR(65) NOT NULL DEFAULT '',
    `
    password` VARCHAR(65) NOT NULL DEFAULT '',
    PRIMARY KEY (`id`)
    )
    TYPE=MyISAM AUTO_INCREMENT=1 ;
    ti spiego come secondo me deve essere perche io non ci sto capendo più....
    dopo che l'utente mette i dati e sono corretti vengo inviati tramite mail al utente con due link uno di attivazione e uno di non attivazione se clicca sul link di attivazione viene attivato e linka sul altro link non viene inserito nel db
    Ultima modifica di hotmailpower : 07-09-2009 alle ore 11.05.40

Regole di scrittura

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