• Home
  • Forum
  • Fare Web
  • PHP

Invio email

  • Creatore Discussione Creatore Discussione Z0MB13
  • Data di inizio Data di inizio 2 Mag 2013
Z

Z0MB13

Utente Attivo
30 Mar 2013
34
0
0
  • 2 Mag 2013
  • #1
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!";
					
					}
				
				}
			
			}
			
		}

	?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 2 Mag 2013
  • #2
ciao
per inviare l'email di conferma su cui l'utente deve cliccare intanto devi inviare l'email in formato html, poi abbandona la funzione mail(), se l'utente ha un dirizzo tipo xxxx.libero.it puoi avere dei problemi, quindi usa la classe phpmailler
dai un occhio a
https://www.mrw.it/php/inviare-email-classe-phpmailer_7047.html
 
Z

Z0MB13

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

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 2 Mag 2013
  • #4
ciao
devi cambiare solo la parte di invio, dai un occhio a
http://forum.mrwebmaster.it/php/34537-aggiungere-input-form-php-2.html#post135721
appena fatta (vai verso gli ultimi post)
 
Z

Z0MB13

Utente Attivo
30 Mar 2013
34
0
0
  • 2 Mag 2013
  • #5
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@email.com"; //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.044
150
63
PR
www.borgo-italia.it
  • 2 Mag 2013
  • #6
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
 
Z

Z0MB13

Utente Attivo
30 Mar 2013
34
0
0
  • 2 Mag 2013
  • #7
Puoi scrivere te il codice? Utilizzando sempre il mio però... ^^
 
Devi accedere o registrarti per poter rispondere.

Discussioni simili

M
Invio dati database via email php
  • Maelstrom
  • 23 Nov 2022
  • PHP
Risposte
0
Visite
1K
PHP 23 Nov 2022
Maelstrom
M
Z
PHP.INI - STMP per invio email con PHP
  • z.cristiano
  • 21 Ago 2021
  • Server Dedicati e VPS
Risposte
0
Visite
5K
Server Dedicati e VPS 21 Ago 2021
z.cristiano
Z
M
Invio di email
  • Marco Galli
  • 23 Lug 2021
  • PHP
Risposte
0
Visite
1K
PHP 23 Lug 2021
Marco Galli
M
Upload multiplo con invio allegati per email
  • Cosina
  • 4 Mar 2021
  • PHP
Risposte
0
Visite
962
PHP 4 Mar 2021
Cosina
S
Invio email da form
  • stevc79
  • 12 Mag 2020
  • PHP
Risposte
8
Visite
2K
PHP 13 Mag 2020
stevc79
S
Invio email
  • max1974
  • 10 Mar 2020
  • PHP
Risposte
12
Visite
2K
PHP 13 Mar 2020
max1974
F
Estrazione Email di persone selezionate e attive / facebook + invio di massa!
  • FenixShops
  • 22 Apr 2019
  • Annunci servizi di Social Media Marketing
Risposte
0
Visite
1K
Annunci servizi di Social Media Marketing 22 Apr 2019
FenixShops
F
[PHP] Modulo email invio
  • ANDREA20
  • 15 Apr 2019
  • PHP
Risposte
5
Visite
2K
PHP 22 Apr 2019
curzio.maria
C
Errore invio email con PHP
  • Tommy03
  • 20 Mar 2019
  • PHP
Risposte
1
Visite
1K
PHP 20 Mar 2019
Carnacky79
C
C
[PHP] Problema Invio Email Elseif
  • Claudia1
  • 18 Ago 2018
  • PHP
Risposte
2
Visite
1K
PHP 21 Ago 2018
alankanz
Invio email con PHP
  • Tommy03
  • 7 Giu 2018
  • PHP
Risposte
3
Visite
1K
PHP 8 Giu 2018
borgo italia
[WordPress] Invio email da sito
  • bubino8
  • 11 Ago 2017
  • WordPress
Risposte
2
Visite
2K
WordPress 11 Ago 2017
bubino8
A
[PHP] Invio email quando viene visitata una pagina
  • Alex@1983
  • 31 Lug 2017
  • PHP
Risposte
7
Visite
1K
PHP 1 Ago 2017
zorro
L
  • Bloccata
Settaggio parametri per invio email Ip Cam Sricam
  • Lorenzosn
  • 9 Mag 2017
  • IP Cam e Videosorveglianza
Risposte
13
Visite
24K
IP Cam e Videosorveglianza 19 Dic 2020
m60lazio
M
B
MYSQL-INVIO EMAIL O MESSAGGIO AVVISO
  • blasco46
  • 16 Mar 2017
  • MySQL
Risposte
0
Visite
2K
MySQL 16 Mar 2017
blasco46
B
[PHP][WORDPRESS] Form in Wordpress, creazione PDF con dati del form ed invio tramite email
  • Matteo Lorenzon
  • 2 Mar 2017
  • WordPress
Risposte
1
Visite
6K
WordPress 5 Mar 2017
Astrit
R
PROBLEMA INVIO EMAIL AL CAMBIO DI STATO ORDINE
  • robertaupedown
  • 2 Gen 2017
  • E-Commerce
Risposte
1
Visite
2K
E-Commerce 4 Gen 2017
borgo italia
[MySQL] [PHP] Invio email ordine
  • ANDREA20
  • 26 Nov 2016
  • MySQL
Risposte
12
Visite
3K
MySQL 30 Nov 2016
borgo italia
[PHP] Non riesco ad impostare reset password invio via email
  • ANDREA20
  • 22 Nov 2016
  • PHP
Risposte
6
Visite
4K
PHP 22 Nov 2016
ANDREA20
Y
INVIO AUTOMATICO EMAIL CON PHP
  • yesno
  • 29 Ott 2016
  • PHP
Risposte
4
Visite
2K
PHP 29 Ott 2016
yesno
Y
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?