Invio email

Z0MB13

Utente Attivo
30 Mar 2013
34
0
0
Salve, vorrei far inviare l'email di conferma ma non saprei come fare.
Mi potreste aiutare voi? Ecco il codice:

PHP:
<?php 

		if(!isset($_GET['passkey'])){
		
			if(!isset($_POST['invia'])){ ?>
			
				<form method="post" action="#" id="formregistrazione">
					
					<ul>
						<li><label for="username">Username</label>
							<input type="text" name="username" id="username" />
						</li>
						<li>
							<label for="password1">Password</label>
							<input type="password" name="password1" id="password1" />
						</li>
						<li>
							<label for="password2">Ripeti Password</label>
							<input type="password" name="password2" id="password2" />
						</li>
						<li>
							<label for="email">Email</label>
							<input type="text" name="email" id="email" />
						</li>
					</ul>
						<input type="submit" name="invia" id="registrati" value="Registrati" />
				</form>
			
	<?php	} else {
				
				// creazione di un codice di conferma
				$codiceconferma = md5(uniqid(rand()));
				
				// Valori del form
				
				$username = mysql_real_escape_string($_POST['username']);
				$password1 = mysql_real_escape_string($_POST['password1']);
				$password2 = mysql_real_escape_string($_POST['password2']);
				$email = mysql_real_escape_string($_POST['email']);
			
				// controllo campi vuoti e password
				
				if($username == "" || $email == ""){
					echo "Devi riempire tutti i campi";
				}elseif($password1 == "" || $password2 == ""){
					echo "Devi riempire tutti i campi";
				}elseif($password2 != $password1){
					echo "Le password devono coincidere";
				}else{
					
					$recuperauseremail = mysql_query("SELECT id FROM utenti WHERE username='$username' OR email='$email'");	
					$contausermail = mysql_num_rows($recuperauseremail);
					
					if($contausermail > 0){
					
						echo "Nome utente o email già disponibili";
					
					} else {
					
						// Invia dati alla tb utenti_temp
						
						$inviautentitemp = mysql_query("INSERT INTO utenti_temp (codiceconferma, username, password, email) VALUES ('$codiceconferma', '$username', '$password2', '$email')");
						
						if($inviautentitemp){
							
							$to=$email;
							$subject="Conferma la Registrazione";
							$header="Da: Amministratore";
							$message="Ecco il tuo codice di attivazione \r\n";
							$message.="Clicca sul link per confermare la registrazione \r\n";
							$message.="http://127.0.0.1/sito/register.php?passkey=$codiceconferma";
							
							$sentmail=mail($to,$subject,$message,$header);
						
						}
						
						if($sentmail){
						
							echo "Per completare la registrazione controlla la tua casella di posta elettronica e clicca sul link di attivazione.";
							
						}else{
						
							echo "Errore, link di attivazione non inviato.";
						
						}
					
					}
				}
				
			}
		
		} else {
			
			$passkey = $_GET['passkey'];
			
			$sqlrecuperauser = "SELECT * FROM utenti_temp WHERE codiceconferma = '$passkey'";
			$risultatouser = mysql_query($sqlrecuperauser);
			
			if($risultatouser) {
			
				$contauser = mysql_num_rows($risultatouser);
				
				if($contauser == 1){
				
					$rows = mysql_fetch_array($risultatouser);
					$username = $rows['username'];
					$email = $rows['email'];
					$password = $rows ['password'];
					
					$passwordcript = md5($password);
					
					$sqlconfermauser = mysql_query("INSERT INTO utenti (username, password, email) VALUES ('$username', '$passwordcript', '$email')");
					
					if ($sqlconfermauser) {
					
						echo "Il tuo account è stato attivato con successo";
						$sqleliminadati = mysql_query("DELETE FROM utenti_temp WHERE codiceconferma = '$passkey'");
					
					} else {
					
						echo "Errore!";
					
					}
				
				}
			
			}
			
		}

	?>
 

Z0MB13

Utente Attivo
30 Mar 2013
34
0
0
Potresti aggiungere quel codice del sito nel mio codice? Non vorrei abbandonare tutto...
 

Z0MB13

Utente Attivo
30 Mar 2013
34
0
0
Ciao, va bene così il codice? Ho aggiunto quel pezzo che hai dimenticato all'inizio. Sennò dimmi te dove posizionarlo. ^^

PHP:
<!DOCTYPE HTML> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<title>Documento senza titolo</title> 
</head> 
<body> 
<?php 
//.... 
        $testo.="$messaggio<hr>$allegato_si_no"; 
    $Emailmessaggio->Body=$testo;//AGGIUNGI QUESTA 
        //preparo l'allegato se c'è o se non l'ho eliminato 
//..... 
?>
<?php 
if(isset($_POST['invia'])){//verifico che sia stato premuto il submit 
    //metto un messaggio di errore a vuoto 
    $ok_ko=""; 
    //leggo i vari input e li verifico 
    $nome=trim(strip_tags($_POST['nome']));//con stip tag tolgo i tag html 
    $cognome=trim(strip_tags($_POST['cognome'])); 
    $mittente=trim(strip_tags($_POST['mittente'])); 
    $oggetto=trim(strip_tags($_POST['oggetto'])); 
    //nel messaggio trasformo gli eventuali \n in br e non li tolgo, gli altri li elimino 
    $messaggio=trim(strip_tags(nl2br($_POST['messaggio']);"<br> <br />")); 
    $allegato_name=$_FILES['allegato']['name']; 
    //inizio i controlli 
    if($nome == ""){ 
        $ok_ko.="il nome &eacute; obbligatorio<br>"; 
    } 
    if($cognome == ""){ 
        $ok_ko.="il cognome &eacute; obbligatorio<br>"; 
    } 
    if(!filter_var($mittente, FILTER_VALIDATE_EMAIL)){ 
        $ok_ko.="l'indirizzo email &eacute; obbligatorio<br>o indirizzo non valido<br>"; 
    } 
    if($messaggio =="" || strlen($messaggio)<10){ 
        $ok_ko.="non hai scritto il messaggio<br>o troppo corto, minimo 10 caratteri<br>"; 
    } 
    $ammessi=array('doc', 'docx', 'pdf', 'txt');//puoi aggiungerne o elimininarne 
    $estensione=pathinfo($allegato_name, PATHINFO_EXTENSION);//ricavo l'estenzione del file 
    if(!in_array($estensione,$ammessi)){//verifico se l'estenzione è tra le ammesse 
        //non c'è quindi vuoto tutto 
        $allegato_name =""; 
        $allegato_si_no="non c'&eacute; allegato"; 
    }else{ 
        //e lo carico (qui se non caricato metto solamente come se fosse vuoto o errato) 
        if(move_uploaded_file($_FILES['allegato']['tmp_name'], $_FILES['allegato']['name'])){ 
            $allegato_si_no="allegato: ".basename($allegato_name); 
        }else{ 
            $allegato_name =""; 
        $allegato_si_no="non c'&eacute; allegato"; 
        } 
    }  
    //a questo punto verifico il messaggio di errore 
    //se è rimasto vuoto non sono stati fatti errori quindi posso iniziare a spedire 
    if($ok_ko==""){ 
        $destinatario="[email protected]"; //qui le tua email 
        require_once "phpmailler/class.phpmailer.php";//richiamo la classe (verifica il percorso) 
        // e comincio ad istanziarla 
        $Emailmessaggio = new PHPmailer(); 
        $Emailmessaggio->SetLanguage('it','language/'); //messo italiano, ma la scelta è vasta 
        $Emailmessaggio->IsHTML(true); // invio l'email in formato HTML 
        $Emailmessaggio->AddAddress($destinatario); 
        $Emailmessaggio->FromName= "mio_sito";//da dove ti arriva il messaggio, cioè dal form del tuo sito 
        $Emailmessaggio->AddReplyTo($mittente,"");//a chi rispondere es. con il rispondi di outlook 
        $Emailmessaggio->Subject=$oggetto;//oggetto dell'email 
        //preparo il testo che ti verrà inviato 
        $testo="<hr>"; 
        $testo.="email inviata da: $nome $cognome<br>"; 
        $testo.= "il ".date("d.m.Y H:i:s")."<hr>"; 
        $testo.="$messaggio<hr>$allegato_si_no"; 
        //preparo l'allegato se c'è o se non l'ho eliminato 
        if($allegato_name !=""){ 
            $Emailmessaggio->AddAttachment($allegato_name); 
        } 
        //ora dovrebbe essere tutto pronto per l'invio 
        if(!$Emailmessaggio->Send()){ //errore di trasmissione 
              $ok_ko="c'&eacute; stato un errore di trasmissione, riprova pi&ugrave; tardi<br>"; 
        }else{ //invio avvenuto 
              $ok_ko="grazie di averci contattato, sarai richiamato al pi&ugrave; presto<br>"; 
        } 
    } 
    //quindi mostro il messaggio di errore o di invio (a te sistemarlo graficamente) 
    echo $ok_ko; 
    //e ritorno, dopo 4 secondi per dare il tempo di leggere il messaggio al form pulito 
    echo "<meta http-equiv='Refresh' content='4; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>"; 
}else{ 
?> 
<form action="<?php htmlspecialchars($_SERVER['PHP_SELF']);?>" method="POST" enctype="multipart/form-data"> 
<table width="51%"  border="0" cellspacing="0" cellpadding="2"> 
  <tr> 
    <td width="14%">nome:</td> 
    <td width="26%"><input type="text" name="nome" /></td> 
    <td width="60%">*</td> 
  </tr> 
  <tr> 
    <td>cognome: </td> 
    <td><input type="text" name="cognome" /></td> 
    <td>*</td> 
  </tr> 
  <tr> 
    <td>email: </td> 
    <td><input type="text" name="mittente" value="" /></td> 
    <td>*</td> 
  </tr> 
  <tr> 
    <td>oggetto: </td> 
    <td><input type="text" name="oggetto" value="" /></td> 
    <td>*</td> 
  </tr> 
  <tr> 
    <td>testo: </td> 
    <td><textarea cols="40" rows="4" name="messaggio"></textarea></td> 
    <td>* minimo 10 caratteri </td> 
  </tr> 
  <tr> 
    <td>allegato</td> 
    <td><input type="file" name="allegato" /></td> 
    <td>file ammessi: .doc, .pdf, .txt</td> 
  </tr> 
  <tr> 
    <td>&nbsp;</td> 
    <td><div align="right">*</div></td> 
    <td>campi obbligatori </td> 
  </tr> 
    <tr> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    <td><input type="submit" name ="invia" value="Invia" /></td> 
  </tr> 
</table> 
</form> 
<!--qui ci andrebbe un link per uscire dalla pagina --> 
<?php 
} 
?> 
</body> 
</html>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
no, no
va messo tra queste due righe
PHP:
<?php
//..................
        $testo.="$messaggio<hr>$allegato_si_no";
		$Emailmessaggio->Body=$testo;//AGGIUNGI QUESTA  
        //preparo l'allegato se c'è o se non l'ho eliminato 
//...................
?>
comunque a cosa ti serve l'allegato e il teso, non volevi inviare l'email di conferma?
guarda che devi adattarlo alle tue esigenze.
prova poi appena ho un minuto ci do un occhio
 
Discussioni simili
Autore Titolo Forum Risposte Data
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
M Invio di email PHP 0
Cosina Upload multiplo con invio allegati per email PHP 0
S Invio email da form PHP 8
max1974 Invio email PHP 12
F Estrazione Email di persone selezionate e attive / facebook + invio di massa! Annunci servizi di Social Media Marketing 0
ANDREA20 [PHP] Modulo email invio PHP 5
Tommy03 Errore invio email con PHP PHP 1
C [PHP] Problema Invio Email Elseif PHP 2
Tommy03 Invio email con PHP PHP 3
bubino8 [WordPress] Invio email da sito WordPress 2
A [PHP] Invio email quando viene visitata una pagina PHP 7
L Settaggio parametri per invio email Ip Cam Sricam IP Cam e Videosorveglianza 13
B MYSQL-INVIO EMAIL O MESSAGGIO AVVISO MySQL 0
Matteo Lorenzon [PHP][WORDPRESS] Form in Wordpress, creazione PDF con dati del form ed invio tramite email WordPress 1
R PROBLEMA INVIO EMAIL AL CAMBIO DI STATO ORDINE E-Commerce 1
ANDREA20 [MySQL] [PHP] Invio email ordine MySQL 12
ANDREA20 [PHP] Non riesco ad impostare reset password invio via email PHP 6
Y INVIO AUTOMATICO EMAIL CON PHP PHP 4
ANDREA20 [PHP] Invio ordine via email PHP 14
P problemi invio email con phpmailer PHP 47
L invio smtp con phpmailer - problema invia due volte la email allo stesso utente PHP 0
Monital Invio email con dati di una funzione JS PHP 1
A Invio Email alla connessione di un Client su Lan Reti LAN e Wireless 2
B Invio email multiple PHPMAILER PHP 5
asevenx problema invio email tramite form PHP 3
Y Invio email automatico database background Database 1
S creazione test con invio risposta a una email prescelta PHP 4
A invio email con immagine inline senza clips PHP 0
J Scritp invio email convalida indirizzo PHP 13
R invio email php con allegato PHP 1
P Problemi con phpmail ed invio email PHP 0
A invio email dove sbaglio PHP 1
Task Mc Problema form invio email da sito ç__ç PHP 4
J while dentro while per invio email blocchi PHP 0
L Aiuto per ultimazione form invio email PHP 3
T invio email Classic ASP 4
F Problema form invio email php PHP 3
F form invio email php PHP 5
N Invio email a blocchi PHP 9
A problema con l'invio della password tramite email PHP 23
P Eroore su invio email PHP 6
P Invio email e richiamo di una funzione PHP 11
V invio automatico email PHP 11
P Problema invio email da php PHP 9
E Invio email (era: phpmailer) PHP 52
S Invio Email Tramite Php PHP 2
M invio email con più di un allegato PHP 1
A php msql invio dati per email PHP 2
K invio email programmato... PHP 15

Discussioni simili