PhpMailer SELECT e OPTION

newanfa

Utente Attivo
12 Mag 2010
131
0
0
Uei Uei...Ho risolto...In pratica è bastato mettere una riga vuota tra l'11 giocatore e l'inizio della panchina ed è tutto risolto. Non ho capito il perchè però! Ora rimane l'unica cosa. Se si riusciva a togliere il messaggio che esce quando non si allega niente...

[Quando si riceve la mail e non si è allegato niente sotto esce scritto: allegato non inviato-----------to report abuses or spam please follow this link ecc...
Quel messaggio c'è modo di toglierlo?]
 

newanfa

Utente Attivo
12 Mag 2010
131
0
0
Cioè non ho capito che devo fare...

Io nel codice tengo:

PHP:
echo "Errore: " . $mail->ErrorInfo;

Quello che hai scritto tu lo devo sostituire al mio codice?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
basta che davanti tu aggiunga due slash // facendolo diventare un commento
o se vuoi (io faccio così) sostituirlo con un
PHP:
echo "errore di trasmissione, riprova più tardi";
 

newanfa

Utente Attivo
12 Mag 2010
131
0
0
Ciao. Ho provato sia in un modo sia nell'altro...

Esce sempre questo messaggio:

PHP:
allegato non inviato
------------ To report abuses or spam please follow this link: http://sp.altervista.it/s.php/ZmFiaW9iYXJiYXwvUEhQTWFpbGVyL21haWxNYW5hZ2VySFRNTDIucGhw

Perchè lui vede che non c'è niente di allegato. Credo che lo veda da qualche comando...non so...L'unico era non far vedere al sistema che manca l'allegato...

Poi un'altra cosa...Nel form html nella fase di inserimento dei giocatori da di base il nome e il numero del primo "option" come la foto che ti ho postato. Non c'è il modo di far risultare le caselle senza nome?
Form.jpg

Grazie CIao
 

newanfa

Utente Attivo
12 Mag 2010
131
0
0
Che fesso. Il problema dei select l'ho risolto mettendone uno vuoto su ogni select.

Rimane l'odioso messaggio.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
credo che da quello che dici il messaggio dipenda da altervista quindi penso che tu non possa eliminarlo, se puoi manda un email ad alter per sentire se si puo.
per la seconda domanda vorresti che il form apparisse con le select inizialmente vuote o con un messaggio?
se è cosi metti subito dopo il tag select (ti do l'esempio per uno ma è valido anche per tutte le altre select)

1) prima casella vuota
HTML:
  <td><b>Team:</b></td>
  <td><select name="Portiere">
      <optgroup label="Portieri">
	  <option></option>
      <option value="Andujar">Andujar</option>
      <option value="Curci">Curci</option>
      <option value="Mirante">Mirante</option>
      <option value="Pavarini">Pavarini</option>
      </optgroup>
      </select>
</td></tr>
2) prima casella con messaggio
HTML:
  <td><b>Team:</b></td>
  <td><select name="Portiere">
      <optgroup label="Portieri">
	  <option>-seleziona-</option>
      <option value="Andujar">Andujar</option>
      <option value="Curci">Curci</option>
      <option value="Mirante">Mirante</option>
      <option value="Pavarini">Pavarini</option>
      </optgroup>
      </select>
</td></tr>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
1. problema del ! nei nomi
metti questo (poi lo togli)

PHP:
<?php
//....
 }           
       else{ 
	   var_dump($_POST['Giocatore14']);//poi lo togli                     
              //invio mail          
          $mail = new PHPMailer();
          $mail->IsHTML(true);      // invio mail in formato HTML
//.....
?>
e guarda cosa risulta
se il nome risulta pulito l'errore è nella rga in cui si forma l'email
se risulta sporco è nella select
il problema sarà poi capire il perchè, così a occhio non vedo errori

2. dubbio
se uno non mette un giocatore nessun altro giocatore deve essere inviato? o vuoi ridurre solo quella parte di tabella?
 

newanfa

Utente Attivo
12 Mag 2010
131
0
0
No...no...Stiamo facendo confusione. Quel problema ti avvisai di averlo risolto quando ho messo una riga vuota tra il giocatore 11 e il portiere 2. Magicamente così non da errore nel nome.

Mi riferivo al fatto che ultimamente ti avevo chiesto questo:
In pratica ora nel form uno può scegliere se inviare la formazione riempiendo tutti gli "option" o allegare il file .xml.

Però se invii solo il file xml il corpo della mail si allunga perchè calcola che devono comparire tutti i select anche se lasciati vuoti. Allora ti avevo chiesto se c'era il modo, quando si riceve la mail, di far apparire gli option solo e soltanto se tutti sono compilati mentre se gli option non sono compilati il corpo della mail non gli deve contenere. Grazie.

Naturalmente se uno mette solo un giocatore non deve essere inviato niente. Deve per forza compilare tutti i select sia i numeri che i nomi compreso lo schema.
 

newanfa

Utente Attivo
12 Mag 2010
131
0
0
Eccolo:
PHP:
<?php         
//inizio verifiche dei post
$team=htmlspecialchars(trim($_POST['Team']));
if($team==""){$team="Manutd 2003";}
$team_mail=htmlspecialchars(trim($_POST['team_MAIL']));
if(filter_var($team_mail, FILTER_VALIDATE_EMAIL) == FALSE){$team_mail="[email protected]";}
$mail_presidente=htmlspecialchars(trim($_POST['Mail_Presidente']));
//qui devi decidere cosa fara se uno non la scrive o la scrive errata
if(filter_var($mail_presidente, FILTER_VALIDATE_EMAIL) == FALSE){/*cosa fare????*/;}
$mail_avversario=htmlspecialchars(trim($_POST['Mail_Avversario']));
$oggetto=htmlspecialchars(trim($_POST['oggetto']));
if($oggetto==""){$oggetto="Consegna Team Manutd 2003";}
$messaggio=htmlspecialchars(trim($_POST['messaggio']));
if($messaggio==""){$messaggio="&nbsp;";}//se vuoto metto a spazio
if($_FILES['allegato']['tmp_name'] !=""){
    $ammessi=array('pdf', 'eps', 'psd', 'rar', 'zip', 'csv', 'xml', 'htm', 'html', 'xlsx', 'xls', 'jpg', 'JPG', 'png', 'gif', 'doc', 'docx', 'docm', 'rtf', 'txt');//aggiungi o togli le estenzioni che ti servono
    $estenzione=pathinfo($_FILES['allegato']['name'], PATHINFO_EXTENSION);
    //inutile mostrare l'errore tanto è assurdo tornare al form e far ripartire da zero l'utente
    $allegato="";
    if(in_array($estenzione,$ammessi)){//è un file consentito
        if (move_uploaded_file($_FILES['allegato']['tmp_name'], $_FILES['allegato']['name'])){
            //inutile mostrare l'errore tanto è assurdo tornare al form e far ripartire da zero l'utente
            $allegato=$_FILES['allegato']['name'];;
            //la variabile $allegato si riempie seolo se l'allegato è valido e caricato
        }
    }
}
//in pratica qui finisco i controlli con una certa sicurezza
//prepato il testo in formato html
$testo_html="<table>";
$testo_html.= "<tr><td colspan='2'>&nbsp;</td>".nl2br($_POST['messaggio'])."</td></tr>";
$testo_html.="<tr><td></td><td  style=\"text-align:center;\">".$_POST['Schema']."</td></tr>";//Schema
$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Portieri']."</td><td>".$_POST['Portiere']."</td></tr>";//Portiere
$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore2']."</td><td>".$_POST['Giocatore2']."</td></tr>";//Giocatore 2
$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore3']."</td><td>".$_POST['Giocatore3']."</td></tr>";//Giocatore 3
$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore4']."</td><td>".$_POST['Giocatore4']."</td></tr>";//Giocatore 4
$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore5']."</td><td>".$_POST['Giocatore5']."</td></tr>";//Giocatore 5
$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore6']."</td><td>".$_POST['Giocatore6']."</td></tr>";//Giocatore 6
$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore7']."</td><td>".$_POST['Giocatore7']."</td></tr>";//Giocatore 7
$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore8']."</td><td>".$_POST['Giocatore8']."</td></tr>";//Giocatore 8
$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore9']."</td><td>".$_POST['Giocatore9']."</td></tr>";//Giocatore 9
$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore10']."</td><td>".$_POST['Giocatore10']."</td></tr>";//Giocatore 10
$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore11']."</td><td>".$_POST['Giocatore11']."</td></tr>";//Giocatore 11
$testo_html.= "<tr><td>&nbsp;</td><td>&nbsp;</td></tr>";//riga vuota la inserisci dove ti interessa
$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Portieri2']."</td><td>".$_POST['Portiere2']."</td></tr>";//Portiere 2
$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Portieri3']."</td><td>".$_POST['Portiere3']."</td></tr>";//Portiere 3
$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore14']."</td><td>".$_POST['Giocatore14']."</td></tr>";//Giocatore 14
$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore15']."</td><td>".$_POST['Giocatore15']."</td></tr>";//Giocatore 15
$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore16']."</td><td>".$_POST['Giocatore16']."</td></tr>";//Giocatore 16
$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore17']."</td><td>".$_POST['Giocatore17']."</td></tr>";//Giocatore 17
$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore18']."</td><td>".$_POST['Giocatore18']."</td></tr>";//Giocatore 18
$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore19']."</td><td>".$_POST['Giocatore19']."</td></tr>";//Giocatore 19
//eccetera sino al giocatore x
$testo_html.="</table>";

require_once('class.phpmailer.php'); 
$mail = new PHPMailer();
$mail->IsHTML(true);      // invio mail in formato HTML
$mail->SetLanguage('it','language/');
$mail->SetFrom($team_mail,$team);  //mittente 
$mail->AddAddress($mail_presidente);     //Mail Presidente
$mail->AddAddress($mail_avversario);     //Mail Avversario 
$mail->AddCC($team_mail);  //Invio Replay al mittente
$mail->Subject = $oggetto;     //oggetto 
$mail->Body = $testo_html;
if($allegato !=""){
    $mail->AddAttachment($allegato);  //allegato appena caricato sul server  se esiste
}
if(!$mail->Send()){
    echo "<p>Mail o Team non inviati! </p>";
    echo "errore di trasmissione, riprova più tardi"; 
    exit;
}else{
    echo "<p>Mail o Team inviati con successo! </p>";
} 
if(file_exists($path.$allegato)) {//verifichi che sia stato caricato
    unlink($path.$allegato);// e lo elimini
}
?>
<!-- QUI INVECE REINDIRIZZO L'UTENTE DOPO 4 SECONDI ALLA PAGINA CHE VOGLIO -->
<script language="JavaScript" type="text/javascript">
window.setTimeout ("location.href=('http://fscg.blogspot.it/p/manutd-2003.html')", 4000);
// -->
</script>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova il file, sappimi dire se è quello che volevi e se funzia (l'ho buttato giù al volo)
 

Allegati

  • MailManagerHTML.zip
    2 KB · Visite: 224

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
a parte il discorso dell'email
in teoria dovrebbe fare quello che dici, se l'utente
1. riempie tutte le select (con o senza allegato): l'email viene inviata con tutti i dati e, se c'è, con l'allegato
2. non riempie tutte le select (con o senza allegato): il corpo dell'email non viene riempito dalla parte relativa alle select e, se c'è, con l'allegato
3. il messaggio viene sempre inviato sia che sia vuoto o pieno
se non funziona così con probabilità ho sbagliato nell'if con < 39 (ho contato male le select) comunque ci ho ripensato e correggi quella parte in questo modo
PHP:
<?php
//...........
//elimino i post inutili per la verifica (SE C'E' UN POST CHE MI SONO DIMENTICATO E CHE NON E' DELLE SLECT AGGIUNGILO
unset($_POST['sub'], $_POST['Team'],$_POST['team_MAIL'],$_POST['Mail_Presidente'],$_POST['Mail_Avversario'],$_POST['oggetto'], $_POST['messaggio']);
//conto i post rimasti
$conteggio=0;
foreach($_POST as $chiave => $valore){
	if(trim($valore) == ""){
		$conteggio++;
		break; //avendo trovato una selct vuota posso anche smettere il controllo del rimanente
	}
}
if($conteggio > 0){ //se è maggiore di 0 c'è almeno una select vuota
	$testo_html.="<tr><td></td><td  style=\"text-align:center;\">".$_POST['Schema']."</td></tr>";//Schema
	//eccetera
}//fine if non inseriti tutti quindi l'email viene inviato solo con il messaggio e se c'è l'allegato
$testo_html.="</table>";
//......
?>
prova
 

newanfa

Utente Attivo
12 Mag 2010
131
0
0
Ci siamo quasi ma non ancora.

1 Errore) La mail parte anche se valorizzi solo 1 select. Es. se metto solo il numero "1" al primo select in alto a sinistra la mail parte lo stesso. Invece non deve partire perchè lo deve fare solo se tutti i select sono selezionati.

Cioè...ho pensato...Se già di base la mail parte se non compili la squadra ne metti allegato...ci dovrebbe essere un controllo che ferifica che se tu ai valorizzato solo 1 select non deve partire l'invio in quanto devi riempire tutti i giocatori mentre se non ne metti nessuno parte la mail contenente sono il messaggio o solo l'allegato o messaggio+allegato.

2) Ho notato che se non compili la mail del destinatario esce il messaggio "invalid address" ma la mail viene inviata cmq agli altri 2 destinatari. Invece la mail deve partire solo se i 3 indirizzi sono validi.

Cio
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
al tuo 1 errore) sorry ho sbagliato io
correggi
PHP:
if($conteggio > 0){
in
PHP:
if($conteggio == 0){//cioè il contatore è rimasto a zero perchè non ha trovato select vuote
per il resto bisogna rimettere le mani su tutto lo script in quanto prima di preparare l'email e inviarla si devono fare tutti i controlli.
poi come ti ho detto se uno nei campi email mette degli indirizzi formalmente validi anche se tu gli hai dato un value le email arrivano agli indirizzi che inputa l'utente.
senza contare che uno, come già detto, compilando tutte le select può sbagliare (o divertirsi a farlo) mettendo i numeri diversi da quelli dei nomi.
per ogni coppia di select dovresti verificare se il numero imputato corrisponda a quello del nome E' UNA BIBBIA.
quindi se vuoi essere "abbastanza sicuro" che non ti inviino ca...te o che l'utente non si rompa i co..ni deve rimettere le mani anche al form
 

newanfa

Utente Attivo
12 Mag 2010
131
0
0
Dunque ora ci siamo. Ma comunque se metti solo qualche select manda la mail senza includere nessun select. Io vorrei che nel caso uno non compili tutti i select la mail non parta proprio e magari esca un messaggio di errore.

Per quanto riguarda gli indirizzi io vorrei solo un controllo su mail Avversario. Cioè quello deve essere valorizzato altrimenti la mail non parte anche perchè ti ho detto che Mail Presidente e Mail team le metto io di base.

Con queste 2 correzioni è perfetto.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
Dunque ora ci siamo. Ma comunque se metti solo qualche select manda la mail senza includere nessun select. Io vorrei che nel caso uno non compili tutti i select la mail non parta proprio e magari esca un messaggio di errore.
questo si puo fare con alcune modifiche, ma non avevi detto che se uno invia l'allegato e non riempie l'email deve partire?

ti ribadisco che se tu per "le metto io di base" intendi che nel campo di input metti il value (es)
HTML:
<input name="team_MAIL" style="font-size: 13px; height: 27px; width: 300px;" type="text" value="[email protected]" />
analogamente al
HTML:
<input name="Mail_Presidente" style="font-size: 13px; height: 27px; width: 300px;" type="text" value="[email protected]" />
se io o qualsiasi utente scrive
nel campo team_MAIL: borgo@mio_sito.it
e nel campo Mail_Presidente: criric@suo_sito.org
le email NON arrivano ne al team ne al presidente, ma a me e a criric anche se tu hai messo il value
per essere sicuro che sempre arrivino al team o al presidente devi imputarle nella parte php
toglere
PHP:
$team_mail=htmlspecialchars(trim($_POST['team_MAIL']));
e la sua verifica che non serve più e mettere
PHP:
$team_mail="[email protected]";
analogo per il presidente
per la verifica del Mail_Avversario devi aggiungere alle option un campo vuoto
HTML:
<option></option>
prima delle altre email, perche se non lo metti prende di default il primo valore e non risulta mai vuota

p.s.
non stare a riempire le caselle degli mp
 

newanfa

Utente Attivo
12 Mag 2010
131
0
0
Allora...lasciamo stare il discorso delle mail che l'ho capito abbastanza bene ma lo voglio lasciare così.

Per quanto riguarda la mail tu hai ragione... io ti ho detto...la mail deve partire anche se uno non mette nessun giocatore e non allega niente e questo lo fa.

Ora facciamo un esempio. Uno schiera gli 11 giocatori, lo schema, e alposto di 8 panchinari ne schiera 7. Arriverebbe una mail errata e lui pensando di aver fatto la cosa giusta pensa che sia tutto ok.

Allora io dico: ci dovrebbe essere un controllo che se uno comincia a riempire pure 1 select (tanto o 1 o 338-37-36 non cambia niente in quanto sempre errore è) ed invia la mail dovrebbe dargli errore in quanto li deve riempire tutti. Ora è più chiaro? Sempre se si può fare. Grazie 1000.


P.S. Ma un controllo su mail avversario si può mettere? Cioè se uno la seleziona la mail e tutto l'ambaradan parte altrimenti esce un errore che ti dice che devi selzionare l'avversario. Grazie ancora.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova se funzia (comunque per ora tieni sempre copia degli altri)
PHP:
<?php
unset($_POST['sub']);
//***** inizio verifiche dei post
$team=htmlspecialchars(trim($_POST['Team']));
if($team==""){$team="Manutd 2003";}
unset($_POST['Team']);
//e man mano elimino i $_post mettendoli in una variabile
//metto un mesaggio di errore a vuoto
$ok_ko="";
//e visto che ti ostini a tenerli comunque devo unsettari
$team_mail="[email protected]"; unset($_POST['team_MAIL']);
$mail_presidente="[email protected]"; unset($_POST['Mail_Presidente']);
//verifica dell'email avversario (se hai messo anche l'option vuoto)
if(filter_var($_POST['Mail_Avversario'], FILTER_VALIDATE_EMAIL) == FALSE){
	$ok_ko.="non hai inserito l'indirizzo dell'avversario<br>";
}else{
	$email_avversario=$_POST['Mail_Avversario'];
	unset($_POST['Mail_Avversario']);
}
$oggetto=htmlspecialchars(trim($_POST['oggetto']));
if($oggetto==""){$oggetto="Consegna Team Manutd 2003";}//anche qui uno può scrvere quello che vuole e ti arriva es llluuutttrr
//io fare come le email team e presidente
$messaggio=htmlspecialchars(trim($_POST['messaggio']));
if($messaggio==""){$messaggio="&nbsp;";}//se vuoto metto a spazio
if($_FILES['allegato']['tmp_name'] !=""){
	$ammessi=array('pdf', 'eps', 'psd', 'rar', 'zip', 'csv', 'xml', 'htm', 'html', 'xlsx', 'xls', 'jpg', 'JPG', 'png', 'gif', 'doc', 'docx', 'docm', 'rtf', 'txt');//aggiungi o togli le estenzioni che ti servono
    $estenzione=pathinfo($_FILES['allegato']['name'], PATHINFO_EXTENSION);
	if(in_array($estenzione,$ammessi)){//è un file consentito
        if (move_uploaded_file($_FILES['allegato']['tmp_name'], $_FILES['allegato']['name'])){
            $allegato=$_FILES['allegato']['name'];;
            //la variabile $allegato si riempie seolo se l'allegato è valido e caricato
        }else{
			$ok_ko.="errore nel caricamento, riprova piu tardi<br>";
		}
    }else{
		$ok_ko.="ai cercato di inviare un allegato di tipo non valido<br>";
	}
}else{
	$allegato="";
}
//verifico che TUTTE le select siano state riempite
//conto i post rimasti
$conteggio=0;
foreach($_POST as $chiave => $valore){
	if(trim($valore) == ""){
		$conteggio++;
		break;
	}
}
//verificati questa: qui o uno riempie tutta la squadra o invia l'allegato o può entrambe
if($allegato=="" && $conteggio > 0){
	$ok_ko.="se non invii l'allegato devi completare manualmente tutta la squadra<br>
	se non completi manualmente tutta la squadra devi inviare l'allegato<br>";
}
//a questo punto (mi sembra) di aver fatto tutti i controlli
if($ok_ko != ""){//il messaggio di errore non è vuoto
	//mostro il messaggio e torno alla pagina del form dopo 3 secondi
	echo $ok_ko;
	echo "<meta http-equiv='Refresh' content='3; URL=Form.html'>";
}else{//non ci sono stati errori quindi tutto l'ambaradan di spedizione
	//prepato il testo in formato html
	$testo_html="<table>";
	$testo_html.= "<tr><td colspan='2'>".nl2br($messaggio)."</td></tr>";
	if($conteggio ==0 ){//tutta la squadra è riempita
		$testo_html.="<tr><td  colspan='2' style=\"text-align:center;\">".$_POST['Schema']."</td></tr>";//Schema
		$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Portieri']."</td><td>".$_POST['Portiere']."</td></tr>";//Portiere
		$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore2']."</td><td>".$_POST['Giocatore2']."</td></tr>";//Giocatore 2
		$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore3']."</td><td>".$_POST['Giocatore3']."</td></tr>";//Giocatore 3
		$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore4']."</td><td>".$_POST['Giocatore4']."</td></tr>";//Giocatore 4
		$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore5']."</td><td>".$_POST['Giocatore5']."</td></tr>";//Giocatore 5
		//aggiungi i rimenenti giocatori
	}
	$testo_html.="</table>";
	require_once('class.phpmailer.php'); 
	$mail = new PHPMailer();
	$mail->IsHTML(true);      // invio mail in formato HTML
	$mail->SetLanguage('it','language/');
	$mail->SetFrom($team_mail,$team);  //mittente 
	$mail->AddAddress($mail_presidente);     //Mail Presidente
	$mail->AddAddress($mail_avversario);     //Mail Avversario 
	$mail->AddCC($team_mail);  //Invio Replay al mittente
	$mail->Subject = $oggetto;     //oggetto 
	$mail->Body = $testo_html;
	if($allegato !=""){
    	$mail->AddAttachment($allegato);  //allegato appena caricato sul server  se esiste
	}
	if(!$mail->Send()){
    	echo "errore di trasmissione, riprova più tardi"; 
	}else{
    	echo "<p>Mail o Team inviati con successo! </p>";
	} 
	if(file_exists($path.$allegato)) {//verifichi che sia stato caricato
    	unlink($path.$allegato);// e lo elimini
	}
	//e torni al for, se vuoi da qualche altra parte cambia il nome del file
	echo "<meta http-equiv='Refresh' content='3; URL=Form.html'>";
}
?>
come gia detto metti per verificare se è stata selezionata
HTML:
<tr><td><b>Mail Avversario:</b></td>   <td><select name="Mail_Avversario">
      <option value="">seleziona avversario</option>
	  <option value="[email protected]">Alexander</option>
      <option value="[email protected]">Black Queen</option>
      <option value="[email protected]">El Guapo</option>
      <option value="[email protected]">Felix</option>
      <option value="[email protected]">Kalè Polis</option>
      <option value="[email protected]">Kenzia</option>
      <option value="[email protected]">Scorpion '88</option>
      </select></td>  </tr>
oppure se preferisci
HTML:
<tr><td><b>Mail Avversario:</b></td>   <td><select name="Mail_Avversario">
      <option></option>
	  <option value="[email protected]">Alexander</option>
      <option value="[email protected]">Black Queen</option>
      <option value="[email protected]">El Guapo</option>
      <option value="[email protected]">Felix</option>
      <option value="[email protected]">Kalè Polis</option>
      <option value="[email protected]">Kenzia</option>
      <option value="[email protected]">Scorpion '88</option>
      </select></td>  </tr>
 

newanfa

Utente Attivo
12 Mag 2010
131
0
0
Adesso il codice che ho è:
PHP:
<?php
unset($_POST['sub']);
//***** inizio verifiche dei post
$team=htmlspecialchars(trim($_POST['Team']));
if($team==""){$team="Manutd 2003";}
unset($_POST['Team']);
//e man mano elimino i $_post mettendoli in una variabile
//metto un mesaggio di errore a vuoto
$ok_ko="";
//e visto che ti ostini a tenerli comunque devo unsettari
$team_mail="[email protected]"; unset($_POST['team_MAIL']);
$mail_presidente="[email protected]"; unset($_POST['Mail_Presidente']);
//verifica dell'email avversario (se hai messo anche l'option vuoto)
if(filter_var($_POST['Mail_Avversario'], FILTER_VALIDATE_EMAIL) == FALSE){
    $ok_ko.="non hai inserito l'indirizzo dell'avversario<br>";
}else{
    $email_avversario=$_POST['Mail_Avversario'];
    unset($_POST['Mail_Avversario']);
}
$oggetto=htmlspecialchars(trim($_POST['oggetto']));
if($oggetto==""){$oggetto="Consegna Team Manutd 2003";}//anche qui uno può scrvere quello che vuole e ti arriva es llluuutttrr
//io fare come le email team e presidente
$messaggio=htmlspecialchars(trim($_POST['messaggio']));
if($messaggio==""){$messaggio="&nbsp;";}//se vuoto metto a spazio
if($_FILES['allegato']['tmp_name'] !=""){
    $ammessi=array('pdf', 'eps', 'psd', 'rar', 'zip', 'csv', 'xml', 'htm', 'html', 'xlsx', 'xls', 'jpg', 'JPG', 'png', 'gif', 'doc', 'docx', 'docm', 'rtf', 'txt');//aggiungi o togli le estenzioni che ti servono
    $estenzione=pathinfo($_FILES['allegato']['name'], PATHINFO_EXTENSION);
    if(in_array($estenzione,$ammessi)){//è un file consentito
        if (move_uploaded_file($_FILES['allegato']['tmp_name'], $_FILES['allegato']['name'])){
            $allegato=$_FILES['allegato']['name'];;
            //la variabile $allegato si riempie seolo se l'allegato è valido e caricato
        }else{
            $ok_ko.="errore nel caricamento, riprova piu tardi<br>";
        }
    }else{
        $ok_ko.="ai cercato di inviare un allegato di tipo non valido<br>";
    }
}else{
    $allegato="";
}
//verifico che TUTTE le select siano state riempite
//conto i post rimasti
$conteggio=0;
foreach($_POST as $chiave => $valore){
    if(trim($valore) == ""){
        $conteggio++;
        break;
    }
}
//verificati questa: qui o uno riempie tutta la squadra o invia l'allegato o può entrambe
if($allegato=="" && $conteggio > 0){
    $ok_ko.="se non invii l'allegato devi completare manualmente tutta la squadra<br>
    se non completi manualmente tutta la squadra devi inviare l'allegato<br>";
}
//a questo punto (mi sembra) di aver fatto tutti i controlli
if($ok_ko != ""){//il messaggio di errore non è vuoto
    //mostro il messaggio e torno alla pagina del form dopo 3 secondi
    echo $ok_ko;
    echo "<meta http-equiv='Refresh' content='3; URL=Form.html'>";
}else{//non ci sono stati errori quindi tutto l'ambaradan di spedizione
    //prepato il testo in formato html 
$testo_html="<table>";
$testo_html.= "<tr><td colspan='2'>&nbsp;</td>".nl2br($_POST['messaggio'])."</td></tr>";
if($conteggio ==0 ){//tutta la squadra è riempita 
//elimino i post inutili per la verifica (SE C'E' UN POST CHE MI SONO DIMENTICATO E CHE NON E' DELLE SLECT AGGIUNGILO
unset($_POST['sub'], $_POST['Team'],$_POST['team_MAIL'],$_POST['Mail_Presidente'],$_POST['Mail_Avversario'],$_POST['oggetto'], $_POST['messaggio']);
//conto i post rimasti
$conteggio=0;
foreach($_POST as $chiave => $valore){
    if(trim($valore) == ""){
        $conteggio++;
        break; //avendo trovato una selct vuota posso anche smettere il controllo del rimanente
    }
}
if($conteggio == 0){//cioè il contatore è rimasto a zero perchè non ha trovato select vuote
	$testo_html.="<tr><td></td><td  style=\"text-align:center;\">".$_POST['Schema']."</td></tr>";//Schema
	$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Portieri']."</td><td>".$_POST['Portiere']."</td></tr>";//Portiere
	$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore2']."</td><td>".$_POST['Giocatore2']."</td></tr>";//Giocatore 2
	$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore3']."</td><td>".$_POST['Giocatore3']."</td></tr>";//Giocatore 3
	$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore4']."</td><td>".$_POST['Giocatore4']."</td></tr>";//Giocatore 4
	$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore5']."</td><td>".$_POST['Giocatore5']."</td></tr>";//Giocatore 5
	$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore6']."</td><td>".$_POST['Giocatore6']."</td></tr>";//Giocatore 6
	$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore7']."</td><td>".$_POST['Giocatore7']."</td></tr>";//Giocatore 7
	$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore8']."</td><td>".$_POST['Giocatore8']."</td></tr>";//Giocatore 8
	$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore9']."</td><td>".$_POST['Giocatore9']."</td></tr>";//Giocatore 9
	$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore10']."</td><td>".$_POST['Giocatore10']."</td></tr>";//Giocatore 10
	$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore11']."</td><td>".$_POST['Giocatore11']."</td></tr>";//Giocatore 11
	$testo_html.= "<tr><td>&nbsp;</td><td>&nbsp;</td></tr>";//riga vuota la inserisci dove ti interessa
	$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Portieri2']."</td><td>".$_POST['Portiere2']."</td></tr>";//Portiere 2
	$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Portieri3']."</td><td>".$_POST['Portiere3']."</td></tr>";//Portiere 3
	$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore14']."</td><td>".$_POST['Giocatore14']."</td></tr>";//Giocatore 14
	$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore15']."</td><td>".$_POST['Giocatore15']."</td></tr>";//Giocatore 15
	$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore16']."</td><td>".$_POST['Giocatore16']."</td></tr>";//Giocatore 16
	$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore17']."</td><td>".$_POST['Giocatore17']."</td></tr>";//Giocatore 17
	$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore18']."</td><td>".$_POST['Giocatore18']."</td></tr>";//Giocatore 18
	$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['N_Giocatore19']."</td><td>".$_POST['Giocatore19']."</td></tr>";//Giocatore 19
//eccetera sino al giocatore x
}//fine if non inseriti tutti quindi l'email viene inviato solo con il messaggio e se c'è l'allegato
$testo_html.="</table>";
    require_once('class.phpmailer.php'); 
    $mail = new PHPMailer();
    $mail->IsHTML(true);      // invio mail in formato HTML
    $mail->SetLanguage('it','language/');
    $mail->SetFrom($team_mail,$team);  //mittente 
    $mail->AddAddress($mail_presidente);     //Mail Presidente
    $mail->AddAddress($mail_avversario);     //Mail Avversario 
    $mail->AddCC($team_mail);  //Invio Replay al mittente
    $mail->Subject = $oggetto;     //oggetto 
    $mail->Body = $testo_html;
    if($allegato !=""){
        $mail->AddAttachment($allegato);  //allegato appena caricato sul server  se esiste
    }
    if(!$mail->Send()){
        echo "errore di trasmissione, riprova più tardi"; 
    }else{
        echo "<p>Mail o Team inviati con successo! </p>";
    } 
    if(file_exists($path.$allegato)) {//verifichi che sia stato caricato
        unlink($path.$allegato);// e lo elimini
    }
?>
<!-- QUI INVECE REINDIRIZZO L'UTENTE DOPO 4 SECONDI ALLA PAGINA CHE VOGLIO -->
<script language="JavaScript" type="text/javascript">
window.setTimeout ("location.href=('http://fscg.blogspot.it/p/manutd-2003.html')", 4000);
// -->
</script>
E non so se ho modificato tutto bene...Semmai vedi un pò tu...
e mi da questo errore...

"Parse error: syntax error, unexpected $end in /membri/fabiobarba/PHPMailer/MailManagerHTMLOk.php on line 126"
 
Discussioni simili
Autore Titolo Forum Risposte Data
G phpmailer e php 8.1 con estensione mysqli PHP 6
E Hosting e phpmailer PHP 0
E PHPMailer PHP 4
D PHPMailer con account gmail PHP 14
I PHPMailer non funziona PHP 13
I Guida/Tutorial configurare PHPMailer per inviare mails tramite contact form? PHP 2
A PHPMAILER e UMLAUTS (lettere tedesche äüäöß) PHP 2
G PHPMailer: SMTP error Gmail PHP 8
M Come usare la nuova versione di phpmailer? PHP 2
P [PHPmailer] SMTP Aruba.. problemi PHP 8
G Invio Mail con PHPMailer, problemi SMTP PHP 7
V PHPMailer PHP 11
V PHPmailer allegato PHP 0
P problemi invio email con phpmailer PHP 47
P phpmailer PHP 0
localhost.nicola File log erroe con phpmailer PHP 3
A problema phpmailer PHP 32
L invio smtp con phpmailer - problema invia due volte la email allo stesso utente PHP 0
O PhpMailer, Composer e Netbeans PHP 1
M Come inviare due mail diverse con phpmailer PHP 6
Z email phpmailer non arrivano PHP 0
B Invio email multiple PHPMAILER PHP 3
L Problema phpmailer,jquery e smtp PHP 1
P Problemi visualizzazione html con phpmailer PHP 6
P phpmailer e file_get_contents PHP 1
P Phpmailer ed wind-infostrada PHP 20
felino PHPMailer: Indirizzo IP e Immagine PHP 6
lsnight Phpmailer per principianti PHP 7
K form con phpmailer PHP 18
P Invio multiplo mail con phpmailer PHP 5
L problema classe phpmailer con la mia classe clsMail PHP 2
G problema con phpmailer 5.2.1 PHP 1
minatore Phpmailer PHP 6
M phpmailer multiplo in più pagine di un sito PHP 5
N PhpMailer e salvataggio allegato sul server PHP 11
R Phpmailer SMTP PHP 23
A problema con phpmailer PHP 10
metalgemini PHPmailer non arriva allegato PHP 10
piccino PHPMailer: inserire allegato PHP 5
E Invio email (era: phpmailer) PHP 52
F Phpmailer e l'indirizzo del mittente PHP 3
F PhpMailer PHP 5
borgo italia phpmailer?? PHP 7
C phpmailer PHP 7
emanuelevt phpmailer e altervista PHP 3
catellostefano Problema con la classe class.phpmailer.php PHP 5
SolidSnake4 PHPmailer errore PHP 4
A classe PHPMailer e mail di Libero PHP 1
S php mail vs phpmailer PHP 0
T Problemi phpmailer x invio ad indirizzi di libero. Aiutatemi! PHP 14

Discussioni simili