Mail in php da testo a html

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
Vi posto l'ennesimo ed ultimo problema (almeno spero D: )

Allora ho un form html che gestisce gli allegati, ed ho preso il codice da qui
https://www.mrw.it/php/articoli/inviare-email-allegati-usando-php_497.html

Il fatto è che invia mail in formato solo testuale, cosa devo sostituire per far si che invii mail in html?

Ho provato questa soluzione ma non funziona

PHP:
 // Aggiungo le intestazioni necessarie per l'allegato 
  $headers .= "\nMIME-Version: 1.0\n"; 
  $headers .= "Content-Type: multipart/mixed;\n"; 
  $headers .= " boundary=\"{$mime_boundary}\""; 

  // Definisco il tipo di messaggio (MIME/multi-part) 
  $msg .= "This is a multi-part message in MIME format.\n\n"; 

  // Metto il separatore 
  $msg .= "--{$mime_boundary}\n"; 

  // Questa è la parte "testuale" del messaggio 
  $msg .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
  $msg .= "Content-Transfer-Encoding: 8bit\n\n"; 
$msg="<html><body>";
$msg .="$messaggio";
$msg="</body></html>";

le variabili che recupero dal form sono queste

PHP:
// Recupero il valore dei campi del form
 
$fromname = $_POST['nomedichiinvia'];
$fromemail = $_POST['maildichiinvia'];
$destinatario = "[email protected]ahoo.it"; 
$oggetto = $_POST['oggetto']; 
$messaggio = $_POST['messaggio']; 
$verif_box = $_POST["verif_box"];

Non va, la mail la spedisce sempre in formato testuale, perchè?

Questo
PHP:
 $headers .= "Content-Type: multipart/mixed;\n";
credo di non poterlo toccare altrimenti non invia più l'allegato, giusto?

Vorrei passare al phpmailer, ci ho provato ma non capisco come recuperare i miei campi....
 
Ultima modifica:

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
Mi dai una mano? non riesco a capire come recuperare i campi dal form....
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
In che senso recuperare? Non ricavi gia le variabili $_POST del form?
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
In che senso recuperare? Non ricavi gia le variabili $_POST del form?

Si esatto non capisco come funziona la classe. Cioè senza classe io recupero i valori dal form in questo modo

PHP:
// Recupero il valore dei campi del form
 
$fromname = $_POST['nomedichiinvia'];
$fromemail = $_POST['maildichiinvia'];
$destinatario = "[email protected]"; 
$oggetto = $_POST['oggetto']; 
$messaggio = $_POST['messaggio']; 
$verif_box = $_POST["verif_box"];

Poi li vado a gestire.

Con phpmailer come faccio? Hai percaso un esempio con form e php funzionanti che me lo studio un po?
 
Ultima modifica:

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Si esatto non capisco come funziona la classe. Cioè senza classe io recupero i valori dal form in questo modo

PHP:
// Recupero il valore dei campi del form 
  
$fromname = $_POST['nomedichiinvia']; 
$fromemail = $_POST['maildichiinvia']; 
$destinatario = "[email protected]";  
$oggetto = $_POST['oggetto'];  
$messaggio = $_POST['messaggio'];  
$verif_box = $_POST["verif_box"];

Poi li vado a gestire.

Con phpmailer come faccio? Hai percaso un esempio con form e php funzionanti che me lo studio un po?
Gestisci gli stessi valori nelle funzioni richiamate dopo l'istanza, come vedi negli esempi :faraone:
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
Gestisci gli stessi valori nelle funzioni richiamate dopo l'istanza, come vedi negli esempi :faraone:

Ad es c'è questo php d'esempio:

PHP:
require_once '../class.phpmailer.php';

$mail = new PHPMailer(true); //defaults to using php "mail()"; the true param means it will throw exceptions on errors, which we need to catch

try {
  $mail->AddReplyTo('[email protected]', 'First Last');
  $mail->AddAddress('[email protected]', 'John Doe');
  $mail->SetFrom('[email protected]', 'First Last');
  $mail->AddReplyTo('[email protected]', 'First Last');
  $mail->Subject = 'PHPMailer Test Subject via mail(), advanced';
  $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
  $mail->MsgHTML(file_get_contents('contents.html'));
  $mail->AddAttachment('images/phpmailer.gif');      // attachment
  $mail->AddAttachment('images/phpmailer_mini.gif'); // attachment
  $mail->Send();
  echo "Message Sent OK<p></p>\n";
} catch (phpmailerException $e) {
  echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
  echo $e->getMessage(); //Boring error messages from anything else!
}

Mi disci dove dovrei gestire i miei campi?
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
PHP:
require_once '../class.phpmailer.php'; 

$mail = new PHPMailer(true); //defaults to using php "mail()"; the true param means it will throw exceptions on errors, which we need to catch 

//if(!empty($_POST['variabile']).....) ...controlla tutte le variabili che non devono essere vuote per inviare la mail, e poi settale nulle se inviata o fai un redirect

//vista la situazione non credo ti serva un try catch per gestire le eccezioni
  $mail->AddReplyTo($destinatario, 'Tuo sito'); 
  $mail->AddAddress($_POST['maildichiinvia']; , $_POST['nomedichiinvia']);
  $mail->SetFrom($destinatario, 'Tuo sito'); 
  $mail->Subject = $_POST['oggetto']; 
  $mail->AltBody = 'Usa un editor mail compatibile con l\'html per vedere il messaggio!'; // optional - MsgHTML will create an alternate automatically 
  $mail->MsgHTML($_POST['messaggio']); 
  //$mail->AddAttachment('images/phpmailer.gif');      Ti serve uno o piu allegati?
  if($mail->Send()) {
  echo "Messaggio inviato<p></p>\n"; //...etc..etc...
 }else{
   echo "Errore nell'invio della mail<p></p>\n"; //...etc..etc...
}

Il campo $_POST["verif_box"] cosa sarebbe? Comunque ti ho fatto un esempio col codice che hai postato
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
PHP:
require_once '../class.phpmailer.php'; 

$mail = new PHPMailer(true); //defaults to using php "mail()"; the true param means it will throw exceptions on errors, which we need to catch 

//if(!empty($_POST['variabile']).....) ...controlla tutte le variabili che non devono essere vuote per inviare la mail, e poi settale nulle se inviata o fai un redirect

//vista la situazione non credo ti serva un try catch per gestire le eccezioni
  $mail->AddReplyTo($destinatario, 'Tuo sito'); 
  $mail->AddAddress($_POST['maildichiinvia']; , $_POST['nomedichiinvia']);
  $mail->SetFrom($destinatario, 'Tuo sito'); 
  $mail->Subject = $_POST['oggetto']; 
  $mail->AltBody = 'Usa un editor mail compatibile con l\'html per vedere il messaggio!'; // optional - MsgHTML will create an alternate automatically 
  $mail->MsgHTML($_POST['messaggio']); 
  //$mail->AddAttachment('images/phpmailer.gif');      Ti serve uno o piu allegati?
  if($mail->Send()) {
  echo "Messaggio inviato<p></p>\n"; //...etc..etc...
 }else{
   echo "Errore nell'invio della mail<p></p>\n"; //...etc..etc...
}

Il campo $_POST["verif_box"] cosa sarebbe? Comunque ti ho fatto un esempio col codice che hai postato

E' il campo che controlla che il captcha sia corretto, funziona con l'ausilio dei cookie per far si che la sessione scada e che l'utente non possa reinviare la stessa mail.

Ma una spiegazione di queste (ad es. $mail->AddReplyTo( ) funzioni le trovo nella classe?

Altra cosa, e se io volessi aggiungere ulteriori campi all'header?

//$mail->AddAttachment('images/phpmailer.gif'); Ti serve uno o piu allegati?
Me ne servono di più, due o tre, che consentano l'invio di svariati file poichè gli utenti dovrebber inviarmi o motivi musicali o spartiti o aggiustamenti fatti con dei programmi specifici (quindi i file hanno un estensione non convenzionale). In realtà la molteplicità di allegati vorrei gestirla nella pagina html con questo script: http://api.jquery.com/clone/ però poi ci penso xD
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
Mi ero dimenticato di dirti che il campo che contiene l'allegato è $allegato , successivamente saranno $allegato1 $allegato2 ecc... :mavieni:
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
Ho provato a modificare il php in questo modo

PHP:
require_once '../class.phpmailer.php';  

$mail = new PHPMailer(true); //defaults to using php "mail()"; the true param means it will throw exceptions on errors, which we need to catch  

//settiamo su true il metodo che indica alla classe 
//il formato HTML
$mail->IsHTML(true);

// ...controlla tutte le variabili che non devono essere vuote per inviare la mail, e poi settale nulle se inviata o fai un redirect 
if(!empty($_POST['nomedichiinvia']) && !empty($_POST['emaildichiriceve']) && !empty($_POST['oggetto']) && !empty($_POST['messaggio']) && !empty($_POST['maildichiinvia']) ) {

	header('Location: ops.php');
	
	exit;
	} else {

//vista la situazione non credo ti serva un try catch per gestire le eccezioni 
  $mail->AddReplyTo($destinatario, 'Tuo sito');  
  $mail->AddAddress($_POST['maildichiinvia']; , $_POST['nomedichiinvia']); 
  $mail->SetFrom($destinatario, 'Tuo sito');  
  $mail->Subject = $_POST['oggetto'];  
  $mail->AltBody = 'Usa un editor mail compatibile con l\'html per vedere il messaggio!'; // optional - MsgHTML will create an alternate automatically  
  $mail->MsgHTML($_POST['messaggio']);  
  //$mail->AddAttachment($_FILES['input']['tmp_name'],$_FILES['input']['name']);  //Ti serve uno o piu allegati? 

// controllo se il codice di verifica è corretto
if(md5($verif_box).'a4xn' == $_COOKIE['tntcon']){
	// se il codice di verifica è corretto invio il messaggio
	$mail->Send()
	// cancello il cookie in modo che non può essere inviato nuovamente aggiornando la pagina
	setcookie('tntcon','');
} else if(isset($message) and $message!=""){
	// se il codice di verifica non è corretto o provano ad accedere direttamente alla pagina php mostro l'errore.
} else {

	header('Location: ops.php');
	
	exit;
	}

	} //fine del controllo dei campi vuoti

Solo che mi da un errore alla riga 68 che è
PHP:
  $mail->AddAddress($_POST['maildichiinvia']; , $_POST['nomedichiinvia']);

Che non è altro che il richiamo all'indirizzo mail e al nome di chi mi invia la mail in modo da potergli rispondere.

Il form di prova è questo

http://manutest.site50.net/Form/form.php

Se puoi dai un occhio anche all'allegato vedi se va bene
 
Ultima modifica:

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
Ho risolto, solo che ora ho un problema con questa parte del codice

PHP:
// controllo se il codice di verifica è corretto
if(md5($verif_box).'a4xn' == $_COOKIE['tntcon']){
	// se il codice di verifica è corretto invio il messaggio
	$mail->Send()
	// cancello il cookie in modo che non può essere inviato nuovamente aggiornando la pagina
	setcookie('tntcon','');
} else if(isset($message) and $message!=""){
	// se il codice di verifica non è corretto o provano ad accedere direttamente alla pagina php mostro l'errore.
} else {

	header('Location: ops.php');
	
	exit;
	}

on line 80

questa in particolare

PHP:
	// cancello il cookie in modo che non può essere inviato nuovamente aggiornando la pagina
	setcookie('tntcon','');

EDIT: mi sono accorto di aver lasciato la mail nel mio codice potreste censurarla? Evitiamo che gli spammer facciano festa...... xD
 
Ultima modifica:

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
Mi ero dimenticato un ;

PHP:
$mail->Send();

Solo che quando premo invio mi porta sulla pagina d'errore... messaggi d'errore non me ne porta.... (l'unico è un errore mysql ma quello è perchè non ho creato tabelle, ma questo è ininfluente)
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
E' il campo che controlla che il captcha sia corretto, funziona con l'ausilio dei cookie per far si che la sessione scada e che l'utente non possa reinviare la stessa mail.

Ma una spiegazione di queste (ad es. $mail->AddReplyTo( ) funzioni le trovo nella classe?

Altra cosa, e se io volessi aggiungere ulteriori campi all'header?

//$mail->AddAttachment('images/phpmailer.gif'); Ti serve uno o piu allegati?
Me ne servono di più, due o tre, che consentano l'invio di svariati file poichè gli utenti dovrebber inviarmi o motivi musicali o spartiti o aggiustamenti fatti con dei programmi specifici (quindi i file hanno un estensione non convenzionale). In realtà la molteplicità di allegati vorrei gestirla nella pagina html con questo script: http://api.jquery.com/clone/ però poi ci penso xD
Quella funzione serve per aggiungere uno o piu indirizzi di risposta, in che senso nell'header?

Poi come gestisci attualmente gli allegati? Potresti gestirli tramite un ciclo for ad esempio
PHP:
for($i=1;$i<=3;$i++) if(!empty($_POST['allegato'.$i]))$mail->AddAttachment($_POST['allegato'.$i]);
 
Ultima modifica:

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Mi ero dimenticato un ;

PHP:
$mail->Send();

Solo che quando premo invio mi porta sulla pagina d'errore... messaggi d'errore non me ne porta.... (l'unico è un errore mysql ma quello è perchè non ho creato tabelle, ma questo è ininfluente)

Allora riaggiungi il try catch per gestire le eccezioni e vediamo che ti dice
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
Allora riaggiungi il try catch per gestire le eccezioni e vediamo che ti dice

Perdonami ma non so come si faccia. Ho modificato l'if per il controllo dei campi (sta nel codice postato su), puoi darci un occhiata? Credo però sia corretto... anche perchè se commento l'if di controllo dei campi l'errore esce comunque.
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Perdonami ma non so come si faccia. Ho modificato l'if per il controllo dei campi (sta nel codice postato su), puoi darci un occhiata? Credo però sia corretto... anche perchè se commento l'if di controllo dei campi l'errore esce comunque.
Se l'errore si trova nel controllo, assicurati che md5($verif_box).'a4xn' e $_COOKIE['tntcon'] abbiano il valore da te desiderato
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
Se l'errore si trova nel controllo, assicurati che md5($verif_box).'a4xn' e $_COOKIE['tntcon'] abbiano il valore da te desiderato

Il problema è che non riesco a capire dove sia l'errore........... prima con il vecchio metodo d'invio il form funzionava perfettamente, non ho toccato nulla all'interno del php tranne che la parte della mail.
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Il problema è che non riesco a capire dove sia l'errore........... prima con il vecchio metodo d'invio il form funzionava perfettamente, non ho toccato nulla all'interno del php tranne che la parte della mail.

Che valore hanno le 2 stringhe al confronto? Le hai stampate?

Comunque riaggiungi il try catch
PHP:
try { 
  //settiamo su true il metodo che indica alla classe  
//il formato HTML 
$mail->IsHTML(true); 

// ...controlla tutte le variabili che non devono essere vuote per inviare la mail, e poi settale nulle se inviata o fai un redirect  
if(!empty($_POST['nomedichiinvia']) && !empty($_POST['emaildichiriceve']) && !empty($_POST['oggetto']) && !empty($_POST['messaggio']) && !empty($_POST['maildichiinvia']) ) {

    header('Location: ops.php'); 
     
    exit; 
    } else { 

//vista la situazione non credo ti serva un try catch per gestire le eccezioni  
  $mail->AddReplyTo($destinatario, 'Tuo sito');   
  $mail->AddAddress($_POST['maildichiinvia']; , $_POST['nomedichiinvia']);  
  $mail->SetFrom($destinatario, 'Tuo sito');   
  $mail->Subject = $_POST['oggetto'];   
  $mail->AltBody = 'Usa un editor mail compatibile con l\'html per vedere il messaggio!'; // optional - MsgHTML will create an alternate automatically   
  $mail->MsgHTML($_POST['messaggio']);   
  //$mail->AddAttachment($_FILES['input']['tmp_name'],$_FILES['input']['name']);  //Ti serve uno o piu allegati?  

// controllo se il codice di verifica è corretto 
if(md5($verif_box).'a4xn' == $_COOKIE['tntcon']){ 
    // se il codice di verifica è corretto invio il messaggio 
    $mail->Send() 
    // cancello il cookie in modo che non può essere inviato nuovamente aggiornando la pagina 
    setcookie('tntcon',''); 
} else if(isset($message) and $message!=""){ 
    // se il codice di verifica non è corretto o provano ad accedere direttamente alla pagina php mostro l'errore. 
} else { 

    header('Location: ops.php'); 
     
    exit; 
    } 

    }
} catch (phpmailerException $e) { 
  echo $e->errorMessage(); //Pretty error messages from PHPMailer 
} catch (Exception $e) { 
  echo $e->getMessage(); //Boring error messages from anything else! 
}
Poi ho notato che $destinatario non è settato ma hai messo $_POST['emaildichiriceve'], devi forse sostituirli?
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
Si quegli errori S_POST li avevo già corretti... credo di aver trovato l'errore in maniera un pochino più ortodossa e faticosa.

Ti spiego, in ogni controllo che faccio richiamo la pagina ops.php, così mi son messo a sostituire uno per uno tutti gli errori con un echo ed a provare uno per uno i messaggi d'errore. Ad es. per l'errore dei cookie ho messo "errore 1" e così via....

Il codice d'invio è questo:

PHP:
if ($_POST['Submit'] == 'Invia')
{

//registro l'ip di chi invia la mail su un file php

$file = "logip.php"; 
$open = fopen($file, "a+"); 
$testo = 'Ip mittente: '.$_SERVER['REMOTE_ADDR']. '  - Ora accesso: ' . date("G:i:s Y/m/d") . "<br />\r\n"; 
$write = fwrite ($open, $testo); 
fclose($open); 

// Recupero il valore dei campi del form 
  
$fromname = $_POST['nomedichiinvia']; 
$fromemail = $_POST['maildichiinvia']; 
$destinatario = "[email protected]";  
$oggetto = $_POST['oggetto'];  
$messaggio = $_POST['messaggio'];  
$verif_box = $_POST["verif_box"];  


require_once 'class.phpmailer.php';  

$mail = new PHPMailer(true); //defaults to using php "mail()"; the true param means it will throw exceptions on errors, which we need to catch  

//settiamo su true il metodo che indica alla classe 
//il formato HTML
$mail->IsHTML(true);

// ...controlla tutte le variabili che non devono essere vuote per inviare la mail, e poi settale nulle se inviata o fai un redirect 
if(!empty($fromname) && !empty($fromemail) && !empty($oggetto) && !empty($messaggio)  ) {

	header('Location: ops.php');
	
	exit;
	} else {

//vista la situazione non credo ti serva un try catch per gestire le eccezioni 
  $mail->AddReplyTo($destinatario, 'Tuo sito');  
  $mail->AddAddress($fromemail, $fromname); 
  $mail->SetFrom($destinatario, 'Tuo sito');  
  $mail->Subject = $oggetto;  
  $mail->AltBody = 'Usa un editor mail compatibile con l\'html per vedere il messaggio!'; // optional - MsgHTML will create an alternate automatically  
  $mail->MsgHTML = $messaggio;  
  //$mail->AddAttachment($_FILES['input']['tmp_name'],$_FILES['input']['name']);  //Ti serve uno o piu allegati? 

// controllo se il codice di verifica è corretto
if(md5($verif_box).'a4xn' == $_COOKIE['tntcon']){
	// se il codice di verifica è corretto invio il messaggio
	$mail->Send();
	// cancello il cookie in modo che non può essere inviato nuovamente aggiornando la pagina
	setcookie('tntcon','');
} else if(isset($message) and $message!=""){
	// se il codice di verifica non è corretto o provano ad accedere direttamente alla pagina php mostro l'errore.
} else {

	header('Location: ops.php');
	
	exit;
	}

	} //fine del controllo dei campi vuoti
} //fine dell'invio

L'errore credo sia qui:

PHP:
// ...controlla tutte le variabili che non devono essere vuote per inviare la mail, e poi settale nulle se inviata o fai un redirect 
if(!empty($fromname) && !empty($fromemail) && !empty($oggetto) && !empty($messaggio)  ) {

	header('Location: ops.php');
	
	exit;
	} else {

Secondo me la sintassi non è corretta.
 
Discussioni simili
Autore Titolo Forum Risposte Data
Cosina Andare a capo nel testo della mail ricevuta dal form php PHP 1
U PHP bottone per invio mail o ritorno al form PHP 15
G Invio mail con php da dati prelevati da un database PHP 9
AC1 [PHP] Invio Mail PHP 18
L Problema funzione mail() PHP PHP 3
I [PHP] inviare form con allegato tramite una mail PHP 1
B [PHP] Invio mail automatico dopo compilazione form - db PHP 25
L PopUp tramite PHP se la mail inserita è già registrata nel database PHP 3
G [PHP] Creare mail con allegato nascosto e bottone di richiamo PHP 0
P [PHP] PEAR Mail e Query PHP 3
D [PHP] script che invii una mail automatica dopo risposta ad una discussione di un forum PHP 0
M [PHP] mandare mail usando i cantatti di una lista su mailchimp PHP 7
G [PHP] Creare appuntamento ed inviarlo tramite mail (Outlook e Gmail) PHP 0
A [PHP] Problema invio mail con funzione mail() PHP 3
A Php mail non invia due mail di seguito PHP 3
A [PHP] Inviare mail con piu immagini allegate PHP 6
A [PHP] Modulo mail PHP 3
A [PHP] Formattazione Mail HTML HTML e CSS 5
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
paloppa [PHP] Invio mail da form dubbio PHP 17
B [PHP] Mail di Avvenuta registrazione PHP 4
M [PHP] Componi i file di Excel in e-mail PHP 1
F Form mail php errore invio PHP 5
Punix [PHP] problema script invio e-mail PHP 2
cobra_72 [PHP] problema invio multiplo allegati mail PHP 21
E [PHP] mail inviata anche con campi obbligatori non compilati PHP 9
Z Limite invio newsletter con PHP - mail() PHP 4
F [PHP] Comando mail() e lettere accentate PHP 10
N PHP, mail e outlook PHP 4
Tony Recchia [PHP] Modulo mail HTML PHP 4
allegria [PHP] Ricevo una doppia mail dal form PHP 6
C Sendmail PHP invia mail vuote PHP 14
E Rimuovere "dati in memoria" dopo invio mail [PHP] PHP 18
A [PHP] Blocco mail spam con regex PHP 2
A Non riesco ad inviare una mail attraverso PHP su Xampp PHP 2
V mail php PHP 10
ecosito [PHP] Attivare il form mail di un template PHP 2
utente Form mail php - indirizzo ip PHP 9
F Invio automatico mail php PHP 0
Francesco Polese Errore form invio mail+php PHP 22
R Errore invio mail in php PHP 1
V Spedire mail con PHP: come conosco i dati? PHP 8
felino Joomla 3.x - Configurazione PHP Mail Joomla 0
M Errore invio mail da php Posta Elettronica 5
P invio mail da form con dati php PHP 7
webmachine Come programmare l'invio di una mail in PHP? PHP 1
M Inviare mail con PHP tramite Mozilla PHP 3
M configurazione invio mail php PHP 25
G Piccolo aiuto per php mail PHP 2
S Form invio mail html, con invio tramite file denominato invio.php PHP 8

Discussioni simili