PhpMailer SELECT e OPTION

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
secondo me dovrebbe essere a posto.
una cosa nelle select della squadra correggi la prima option (non mettere spazio), ti faccio l'es delle prima
HTML:
  <td><select name="N_Portieri">
    <optgroup label="Por">
    <option value=""></option>
come al solito dai un occhio ai commenti
 

Allegati

  • allegato_1.zip
    5,4 KB · Visite: 182

newanfa

Utente Attivo
12 Mag 2010
131
0
0
Allora le SELECT le ho sistemate...ma scusa una cosa...Non abbiamo detto che team_MAIL lo mettiamo come indirizzo fisso? Cioè non capisco questa parte di codice...
PHP:
if(filter_var($_POST['team_MAIL'], FILTER_VALIDATE_EMAIL) == FALSE){
	$ok_ko.="non hai inserito il tuo indirizzo o indirizzo non valido<br>";
}else{
	$team_mail=$_POST['team_MAIL'];
}
unset($_POST['team_MAIL']);
//se vuoi, per motivi grafici, puoi lasciare il campo così come è
Cioè per come è il codice non significa:"se la mail è "team_MAIL OK altrimenti da errore?

E non ho capito che fà qua:
PHP:
$mail_presidente="[email protected]";//se errato mette quello del del presidente
//se lo togli e scrivi solo il testo toli o commenta la riga sotto
unset($_POST['Mail_Presidente']);

Cioè in sostanza...nel form HTML i valori Mail_Presidente e team_MAIL li devo mettere nel "value" o come avevamo deciso NO?

Spiegami bene queste cose che ormai ci siamo! Grazie infinite!





ciao
secondo me dovrebbe essere a posto.
una cosa nelle select della squadra correggi la prima option (non mettere spazio), ti faccio l'es delle prima
HTML:
  <td><select name="N_Portieri">
    <optgroup label="Por">
    <option value=""></option>
come al solito dai un occhio ai commenti
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
da quello che mi hai detto
1. l'indirizzo email del campo team_MAIL è l'indirizzo del mittente (cioè di chi invia) quindi se è così chi invia deve scrivere il suo indirizzo email.
per cui deve essesere verificato e, se errato, deve riscriverlo. come detto altrimenti come fai a sapere chi ti invial l'email?
è evidente che se chi ti scrive scrive un indirizzo fasullo, ma sintatticamenete corretto, non riesci a sapere chi ti ha scritto
2. nell'email del presidedente mi sono dimenticato di togliere il commento //se errato mette quello del del presidente .
comunque come ho fatto in questo modo SEI SICURO che l'email arrivi sempre al presidente
se nel form lasci (per ragioni grafiche) il campo di input con il [email protected] (quindi sembra un campo e formalmente lo è) devo mettere il suo unset
se invece togli dal form il campo devi togliere l'unset($_POST['Mail_Presidente']); perche se non lo togli ti da errore non esistendo il $_POST['Mail_Presidente']
3. nelle selct della squadra tu hai scritto la prima option con degli spazi
<option value=" "> </option>
correggi in
<option value=""></option>
cioe togli lo spazio tra gli apici e tra option /option
è meglio per la verifica se selezionato o no, se non è stata fatta una selezione corretta (numero e nome) trasmette valore vuoto
 

newanfa

Utente Attivo
12 Mag 2010
131
0
0
Allora forse mi sono spiegato male io. Per il punto 1 siccome questo form lo metterò in 7 pagine diverse...Il mittente lo voglio mettere direttamente io in anticipo nel php. (io in pratica farò 7 file php uguali collegati ognuno ai 7 form). E di conseguenza non voglio che lo metta ognuno.
I select li ho sistemati.
Quindi ora manca che mi dici come devo modificare per il mittente fisso che nel caso del nostro esempio deve essere [email protected]. grazie







ciao
da quello che mi hai detto
1. l'indirizzo email del campo team_MAIL è l'indirizzo del mittente (cioè di chi invia) quindi se è così chi invia deve scrivere il suo indirizzo email.
per cui deve essesere verificato e, se errato, deve riscriverlo. come detto altrimenti come fai a sapere chi ti invial l'email?
è evidente che se chi ti scrive scrive un indirizzo fasullo, ma sintatticamenete corretto, non riesci a sapere chi ti ha scritto
2. nell'email del presidedente mi sono dimenticato di togliere il commento //se errato mette quello del del presidente .
comunque come ho fatto in questo modo SEI SICURO che l'email arrivi sempre al presidente
se nel form lasci (per ragioni grafiche) il campo di input con il [email protected] (quindi sembra un campo e formalmente lo è) devo mettere il suo unset
se invece togli dal form il campo devi togliere l'unset($_POST['Mail_Presidente']); perche se non lo togli ti da errore non esistendo il $_POST['Mail_Presidente']
3. nelle selct della squadra tu hai scritto la prima option con degli spazi
<option value=" "> </option>
correggi in
<option value=""></option>
cioe togli lo spazio tra gli apici e tra option /option
è meglio per la verifica se selezionato o no, se non è stata fatta una selezione corretta (numero e nome) trasmette valore vuoto
 

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 al posto di
PHP:
if(filter_var($_POST['team_MAIL'], FILTER_VALIDATE_EMAIL) == FALSE){
	$ok_ko.="non hai inserito il tuo indirizzo o indirizzo non valido<br>";
}else{
	$team_mail=$_POST[''];
}
unset($_POST['team_MAIL']);
tu metta
PHP:
[email protected];
unset($_POST['team_MAIL']);// e qui come per il presidente, se tieni nel form il campo di input team_MAIL, altrimenti lo togli
 

newanfa

Utente Attivo
12 Mag 2010
131
0
0
Ciao, non di dispiacere...un altro pò di pazienza. Ti ho postato i file aggiornati in quanto ho deciso che "Team" sia fisso nel php quindi ManUtd 2003; Mail_Presidente e Team_Mail fisse nel php...Mentre nel form html le metto come semplice testo...come puoi vedere dalla foto seguente...
Form.jpg

Inoltre circa l'invio della mail...i vari $... devono essere rivisti in quanto prima provenivano dal form mentre ora hanno già un valore nel php. E inoltre nell'invio mail c'è sia AdCC che PostReplyto...

Mi riferisco a questa parte:
PHP:
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
	//se vuoi che arrivi una copia anche al mittente lascia AddCC, altimrnti toglilo o commentalo
	$mail->AddCC($team_mail);  //Invio Replay al mittente
	$mail->AddReplyTo($team_mail);
	$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>";
	}

Mi dai l'ultima occhiata generale? Grazie infinite.Vedi l'allegato File.zip
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
nel complesso mi sembra che vada bene, con delle piccole correzioni:
1. elimina o commenta la riga unset($_POST['Team']); il post non esiste più
2. metto gli apici alla riga [email protected]; => $team_mail="[email protected]";
3. togli lo spazio tra la prima otpion /option anche nella select mail avversario
4. le righe
$mail->AddCC($team_mail); //Invio Replay al mittente
$mail->AddReplyTo($team_mail);
se vuoi puoi tenerle entrambe, vedi se ti servono
con la prima arriva un'email a $team_mail
la seconda corrisponde alla funzione (es) di outlook "rispondi" cioè quando usi rispondi risponde all'indirizzo che hai scritto

poi la prova migliore è che tu provi e se funzia come vuoi tu vuol dire che "funzia"
 

newanfa

Utente Attivo
12 Mag 2010
131
0
0
Senti...ma a questo punto in questa parte di codice:
PHP:
<?php
unset($_POST['sub']);
//***** inizio verifiche dai post
$team="ManUTD 2003";
//e man mano elimino i $_post mettendoli in una variabile
//metto un mesaggio di errore a vuoto
$ok_ko="";
$team_mail="[email protected]"; 
$mail_presidente="[email protected]";

$ok_ok=""; può essere tolto vero?

Tanto ormai sia $team, sia $team_mail e sia mail_presidente hanno valori fissi! Vero?
 

newanfa

Utente Attivo
12 Mag 2010
131
0
0
Allora sul fatto degli invii ci siamo...
1) La mail non parte se almeno un campo tra messaggio, formazione o allegato è compilato e non parte nemmeno se ti dimentichi pure un giocatore nelle select.
Perfettissimo!

Però...ho notato un errore quando non si mette l'indirizzo dell'avversario (cioè nel caso in cui ci si dimentica di metterlo)...e nello stesso tempo ho compilato tutte le select della squadra...
Esce il messaggio sia "A T T E N Z I O N E ! Non hai inserito l'indirizzo dell'avversario! A T T E N D I . . .", ma anche "A T T E N Z I O N E ! ! ! Devi compilare almeno un campo tra MESSAGGIO, SQUADRA o ALLEGATO! Attendi...". Cosa sbagliata...Perchè dovrebbe uscire solo quello dell'indirizzo dell'avversario.

Questo è l'attuale PHP:
PHP:
<?php
unset($_POST['sub']);
//***** inizio verifiche dai post
$team="ManUTD 2003";
//e man mano elimino i $_post mettendoli in una variabile
//metto un mesaggio di errore a vuoto
$ok_ko="";
$team_mail="[email protected]"; 
$mail_presidente="[email protected]";
//verifica dell'email avversario (se hai messo anche l'option vuoto)
if(filter_var($_POST['Mail_Avversario'], FILTER_VALIDATE_EMAIL) == FALSE){
	$ok_ko.="A T T E N Z I O N E ! Non hai inserito l'indirizzo dell'avversario! A T T E N D I . . .<br>";
}else{
	$mail_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 e ti arriva es llluuutttrr
$messaggio=htmlspecialchars(trim($_POST['messaggio']));
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.="Hai 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;
	}
}
if($allegato=="" && $conteggio > 0 && $messaggio ==""){//RIGHE DA MODIFICARE
    $ok_ko.="A T T E N Z I O N E ! ! ! Devi compilare almeno un campo tra MESSAGGIO, SQUADRA o ALLEGATO! Attendi...<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='15; URL=http://fscg.blogspot.it/p/manutd-2003.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($messaggio)."</td></tr>";
	if($conteggio ==0 ){//tutta la squadra è riempita
		$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
	//se vuoi che arrivi una copia anche al mittente lascia AddCC, altimrnti toglilo o commentalo
	$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! A T T E N D I. . . </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='6; URL=http://fscg.blogspot.it/p/manutd-2003.html'>";
}
?>

Aspetto tue delucidazioni...Grazie mille...










ok. allora il codice dovrebbe essere finito. lo provo e ti faccio sapere. grazue mille ancora.
 
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
in teoria dovrebbero essere indipendenti
metti dei var_dump che poi toglierai
PHP:
<?php
//................
//conto i post rimasti
$conteggio=0;
foreach($_POST as $chiave => $valore){
	if(trim($valore) == ""){
		$conteggio++;
		break;
	}
}
var_dump($allegato);echo "<br>";//queste tre righe poi le togli
var_dump($conteggio);echo "<br>";
var_dump($messaggio);echo "<br>";
if($allegato=="" && $conteggio > 0 && $messaggio ==""){//RIGHE DA MODIFICARE
    $ok_ko.="A T T E N Z I O N E ! ! ! Devi compilare almeno un campo tra MESSAGGIO, SQUADRA o ALLEGATO! Attendi...<br>";
} 
//a questo punto (mi sembra) di aver fatto tutti i controlli
//...........
?>
poi
1. complla una email perfettamente con tutto (avversario, messaggio, allegato, squadra) ed invia
2. compila non mettendo email avversario, ma con es compilando messaggio ed inviando allegato e/o provando a fare degli errori
poi dimmi cosa ti riportano i var_dump

p.s.
nel messaggio basta che tu metta un paio di caratteri
 

newanfa

Utente Attivo
12 Mag 2010
131
0
0
1) Allora con la mail compilata in ogni sua parte mi esce:
PHP:
string(26) "Formazione ManUTD 2003.xls"
int(0)
string(44) "Prova messaggio perfettamente funzionante..."

Mail o Team inviati con successo! A T T E N D I. . .
2) Non mettendo avversario e con solo messaggio mi esce:
PHP:
string(0) ""
int(1)
string(4) "Ciao"
A T T E N Z I O N E ! Non hai inserito l'indirizzo dell'avversario! A T T E N D I . . .

Senza avversario e senza compilare niente esce:
PHP:
string(0) ""
int(1)
string(0) ""
A T T E N Z I O N E ! Non hai inserito l'indirizzo dell'avversario! A T T E N D I . . .
A T T E N Z I O N E ! ! ! Devi compilare almeno un campo tra MESSAGGIO, SQUADRA o ALLEGATO! Attendi...

Senza avversario ma con solo allegato:
PHP:
string(26) "Formazione ManUTD 2003.xls"
int(1)
string(0) ""
A T T E N Z I O N E ! Non hai inserito l'indirizzo dell'avversario! A T T E N D I . . .

Con quello che ti dicevo, cioè senza mail avversario e con tutta la squadra compilata:
PHP:
string(0) ""
int(1)
string(0) ""
A T T E N Z I O N E ! Non hai inserito l'indirizzo dell'avversario! A T T E N D I . . .
A T T E N Z I O N E ! ! ! Devi compilare almeno un campo tra MESSAGGIO, SQUADRA o ALLEGATO! Attendi...
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ho visto dove è l'ighippo
int(1)
se compili tutta la squadra manualmente dovrebbe essere int(0), ora cerco di capire perche da 1
eventualmente ti faccio una "piccola" modifica al form
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ho modificato sia il form che il php, non servono piu gli unset (se me ne sono dimanticato qualcuno toglilo).
per ora non buttare il vecchio/i cambiagli solo nome
in questo modo conta solo ed esclusivamente la squadra manuale
quindi l'if
PHP:
if($allegato=="" && $conteggio > 0 && $messaggio ==""){
da il messaggio solo e solo se allegato e messaggio sono vuoti e la squadra non completamente o del tutto compilata, se uno è giusto invia

ho lasciato i var dump, fai delle prove se funzia toglili se non funzia fammi sapere


p.s.
spero di non aver sbagliato a caricare lo zip
verifica nel form dovresti trovare per tutta la squadra (es)
HTML:
<select name="squadra[N_Portieri]">
eccetere
e nel php
PHP:
$testo_html.= "<tr><td style=\"text-align:center;\">".$_POST['squadra']['N_Portieri']."</td><td>".$_POST['squadra']['Portiere']."</td></tr>";//Portiere
eccetera
 

Allegati

  • nuova_versione-01.zip
    5 KB · Visite: 178

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ti rispondo qui perchè potrebbe essere utile a qualcun altro
...Mi spiegheresti perchè e a cosa è servito mettere le quadre ai nomi?
la variabile $_POST è un array globale che come chiave/i assume il nome della casella di input a cui si riferisce
es. se l'input ha name="pinco" con il $_POST['pinco'] leggo il valore corrispondente alla chiave pinco
se ho più campi di input simili che devo (come nel nostro caso) verificare assieme e nel primo name metto (es) name="pinco[pallo]",
nel secondo name="pinco[pallino]"... creo un array di array, per cui poi posso ciclare senza preuccuparmi degli altri eventuali $_POST
perchè facendo il foreach di $_POST['pinco'] vado a leggere $_POST['pinco']['pallo'], $_POST['pinco']['pallino']...
avrei potuto anche mettere name=name="pinco[]" in tal caso avresti letto i valori di $_POST['pinco'][0], $_POST['pinco'][1]..., ma mettendo quella chiave si capisce meglio a cosa si riferisce

veniamo al secondo:
Inoltre vorrei che al posto del refresh tornasse solo indietro. Sai perchè? Cioè se uno ha selezionato tutti i giocatori tranne 1...Mi sembra brutto e stancante se dopo il refresh si trovano a riscrivere tutto da capo...Poi io ti ho detto indietro ma può darsi che esiste un altro metodo. Cioè il concetto è questo...
tornare indietro o rehreshiare ha comunque lo stesso effetto, i valori dei post si perdono.
l'unico metodo per far ricordare alla pagina i valori impostati (esempio far diventare una option selected in funzione della scelta fatta in precedenza) è ricorrere alle sessioni o ai cookie, ma in tal caso oltre a modificare tutto lo script php devi modificare anche la parte del form che, in questo caso, non potrà più essere .htm ma essere .php

spero di essere stato chiaro
 

newanfa

Utente Attivo
12 Mag 2010
131
0
0
chiarissimo come sempre.










ciao
ti rispondo qui perchè potrebbe essere utile a qualcun altro

la variabile $_POST è un array globale che come chiave/i assume il nome della casella di input a cui si riferisce
es. se l'input ha name="pinco" con il $_POST['pinco'] leggo il valore corrispondente alla chiave pinco
se ho più campi di input simili che devo (come nel nostro caso) verificare assieme e nel primo name metto (es) name="pinco[pallo]",
nel secondo name="pinco[pallino]"... creo un array di array, per cui poi posso ciclare senza preuccuparmi degli altri eventuali $_POST
perchè facendo il foreach di $_POST['pinco'] vado a leggere $_POST['pinco']['pallo'], $_POST['pinco']['pallino']...
avrei potuto anche mettere name=name="pinco[]" in tal caso avresti letto i valori di $_POST['pinco'][0], $_POST['pinco'][1]..., ma mettendo quella chiave si capisce meglio a cosa si riferisce

veniamo al secondo:

tornare indietro o rehreshiare ha comunque lo stesso effetto, i valori dei post si perdono.
l'unico metodo per far ricordare alla pagina i valori impostati (esempio far diventare una option selected in funzione della scelta fatta in precedenza) è ricorrere alle sessioni o ai cookie, ma in tal caso oltre a modificare tutto lo script php devi modificare anche la parte del form che, in questo caso, non potrà più essere .htm ma essere .php

spero di essere stato chiaro
 

newanfa

Utente Attivo
12 Mag 2010
131
0
0
Ciao 2 nuove domande.

Ho fatto un nuovo e semplicissimo form HTML collegato allo script PHP che deve solo inviare un file a 6 destinatari fissi. L'oggetto lo inserisce il mittente perchè ogni volta potrebbe variare. (In sostanza tramite questo form il presidente che è il mittente invia ogni settimana i risultati tramite un file .xls).

Sul form html ho messo:
Mittente: Il Presidente (solo testuale perchè lo metto fisso nel php)
Mittente Mail: [email protected] (solo testuale perchè la metto fisso nel php)
Oggetto:(tramite input con name "oggetto")
Messaggio: (tramite input con name "messaggio")
Allega File:
INVIA
CANCELLA

Come Php ho messo così:
PHP:
<?php
//***** inizio verifiche dai post
//metto un mesaggio di errore a vuoto
$ok_ko="";
$mittente="Il Presidente";
$mittente_mail="[email protected]"; 
$oggetto= $_POST['oggetto'];
$messaggio=htmlspecialchars(trim($_POST['messaggio']));
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! A T T E N D I. . .<br>";
		}
    }else{
		$ok_ko.="A T T E N Z I O N E! Hai cercato di inviare un allegato di tipo non valido! A T T E N D I. . .<br>";
	}
}else{
	$allegato="";
}

//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='20; URL=http://fscg.blogspot.it/p/alexander.html'>";
}else{//non ci sono stati errori quindi tutto l'ambaradan di spedizione
    //prepato il testo in formato html	
    require_once('class.phpmailer.php'); 
	$mail = new PHPMailer();
	$mail->IsHTML(true);      // invio mail in formato HTML
	$mail->SetLanguage('it','language/');
	$mail->SetFrom($mittente_mail,$mittente);  //mittente 
	$mail->AddAddress($mail_avversario);     //Mail destinatario
	//se vuoi che arrivi una copia anche al mittente lascia AddCC, altimrnti toglilo o commentalo
	$mail->AddCC($mittente_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>Lo Sguardo o La Giornata inviati con successo! A T T E N D I. . .</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='4; URL=http://fscg.blogspot.it/p/alexander.html'>";
}
?>

Ora i 6 destinatari li metto direttamente in $mail->AddAddress($mail_avversario); ? Come?

E inoltre voglio mettere la possibilità di inviare 2 allegati ma con la possibilità di allegarne soltanto uno senza che ti dia errore.
Mi dai una controllata a quello già fatto e mi dici per i 6 destinatari e per l'allegato? Grazie. Ciao.
 
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