Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Validazione tramite e-mail

    Ciao Raga,
    Qualcuno mi saprebbe idare indicazione per strutturare un flusso di trasferimento dati cosi come impostato su www.bakeca.it ?

    M'interessa inviare e-mail in automatico all'inserzionista in modo che l'utente confermi e si pubblichi dalla sua casella di posta la sua inserzione.


    Grazie 1000







    .

  2. #2
    Semplicemente quando fai il form per la pubblicazione dell'annuncio, fa in modo che al submit i dati inseriti vengano salvati nel database, nella tabella annunci, in uno stato "non attivo" (è sufficiente inserire nella tabella una colonna status con valori 0 o 1). Nello stesso momento invii una email all'indirizzo di posta di chi ha inserito l'annuncio, contenente un link alla pagina che elaborerà lo script, con le variabili get['id'] che indica l'id dell'annuncio, e get['confirm']=yes che indica che l'annuncio è stato confermato (ti consiglio anche di inserire nel link un qualche codice di sicurezza, per esempio una stringa alfanumerica che hai salvato nel database o simile).
    Nella pagina che elabora lo script non fai altro che rilevare l'id dell'annuncio e il fatto che il confirm sia uguale a yes, in quel caso fai un update della tabella annunci settando lo stato dell'annuncio su "attivo".

  3. #3
    Grazie elysaweb,
    Il primo dubbio che mi viene in mente è relativo al codice di sicurezza, intendi predisporre un campo in tabella dove inserire un codice alfanumerico ?
    Mi aiuti a capire come fare a creare un codice alfanumerico ?


    In ogni caso comincio con quello che ho capito, seguo il flusso secondo le tue preziose indicazioni, e ti faccio sapè



    10ks


    .

  4. #4
    sì, io per esempio metterei un campo nel database, dove cripti con md5 un valore qualsiasi, ad esempio la prima parola del titolo dell'annuncio, oppure crei una sequenza casuale di numeri

    questo per evitare che qualcuno possa confermare l'annuncio semplicemente scrivendo l'url nel proprio browser

  5. #5
    OK

    Non fà una grinza !

    Grazie 1000 per la dritta












    .

  6. #6
    Scusa elysaweb,
    Sono in crisi, utilizzando del codice che ho trovatpo nel forum ho impostato cosi la pagina che inserisce i dati nel db e che invia il link alla mailbox dell'utente.
    Adesso ho il problema della pagina che riceve i dati dal link dell'email non riesco ad aggiornare il campo nel db che ho chiamato mk_reg su 1.

    Anche senza utilizzare la variabile confirm=yes se l'utente invia il link con l'id e il relativo codice alfanumerico per quanto riguarda la sicurezza dovrebbe essere ok, giusto ?

    Cmq mi funziona tutto, il link arriva dalla e-mail fino alla pagina confirm.php sia con l'id sia con il codice alfanumerico, ma a questo punto potrei semplicemente Upgradare il campo mk_reg direttamente con valore 1 senza nessun IF ho sbaglio qualcosa ?

    Qualcuno mi aiuti !!




    Codice PHP:
    <?php 
    require('dbconn.inc.php'); 


    $emailutente $_POST["email"]; 
    $name $_POST["nome"]; 

    // Genero un codice 
    $codice md5(time()); //uso questo metodo giusto per avere un codice sempre diverso e piuttosto difficile da indovinare 

    // Ora devo scrivere da qualche parte i dati per poterli controllare al momento dell'attivazione, supponiamo di farlo in un dabatase 
    $sql "INSERT INTO mkins (mk_nome,  mk_email,  mk_code)  VALUES  ('$name', '$emailutente', '$codice')";         
           
    $users mysql_query($sql) or die(mysql_error()); 
           
    $id mysql_insert_id(); // recuperiamo l'id (contenuto nel campo user_id) dell'utente appena inserito 

    /*Arrivati a questo punto spedisco l’email all'utente (all'indirizzo da lui fornito) 
    con il link alla pagina confirm.php */ 

    $subject "Completa e pubblica il tuo annuncio"


    //Definiamo la classe che definisce il corpo del messaggio ($message) e le intestazione del messaggio ($headers) 
    $boundary "==MP_Bound_xyccr948x=="
    $headers "MIME-Version: 1.0\r\n"
    $headers .= "Content-type: multipart/alternative; boundary=\"$boundary\"\r\n"
    $headers .= "From: [email]info@nomesito.it[/email]\r\n"//inseriamo l'indirizzo email del mittente, cioè il nostro 
    $html_msg "<center>"
    $html_msg .= "<table width=\"500\" border=0 cellpadding=\"4\">"
    $html_msg .= "<tr><td align=\"center\">"
    $html_msg .= "</td></tr>"
    $html_msg .= "</td></tr><tr><td align=\"center\">"
    $html_msg .= "</td></tr></table></center>"
    $confirmmessage "Salve " $name ",\n\n"
    $confirmmessage .= "Per confermare l'inserimento del tuo annuncio e quindi confermare la pubblicazione devi cliccare sul link sottostante:\n\n"
    $confirmmessage .= $html_msg "\n\n"

    // Attenzione! Qui sotto dobbiamo inserire il percorso esatto che porta alla nostra pagina confirm.php 
    $confirmmessage .= "<a href=\"http://www.nomesito.it/test3/confirm.php?id=$id&mk_code=$codice\">Clicca qui per attivare l'annuncio »</a>"
    $message "This is a Multipart Message in MIME format\n"
    $message .= "--$boundary\n"
    $message .= "Content-type: text/html; charset=iso-8859-1\n"
    $message .= "Content-Transfer-Encoding: 7bit\n\n"
    $message .= $confirmmessage "\n"
    $message .= "--$boundary--"
    $mailsent mail($emailutente$subject$message$headers); 
    if (
    $mailsent

      echo 
    "Salve " .  $name ",
    "

      echo 
    "Un messaggio è stato inviato all'indirizzo [b]" $emailutente "[/b] da te fornito.

    "

      echo 
    "IMPORTANTE:
    "

      echo 
    "Per completare la pubblicazione e quindi attivare l'annuncio inserito devi aprire la tua casella e-mail, leggere il messaggio di conferma e cliccare sul link che troverai all'interno.

    "

    } else { 
      echo 
    "Errore durante l'invio dell'e-mail."


    ?>

  7. #7
    UP :quote:

    Please




    .

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.