perchè la ricevo 5 volte??????

Stato
Chiusa ad ulteriori risposte.

ertrottola

Utente Attivo
10 Ago 2011
81
0
0
Salve a tutti potete illuminarmi perchè ricevo l'email 5 volte!!!!!!!!!


PHP:
<form id="form1" name="prova_gratis" method="POST" action="<?php echo $editFormAction; ?>">
    <span id="sprytextfield1">
      <label for="nome">Nome</label>
      <br />
<input type="text" name="nome" id="nome"/>
      <span class="textfieldRequiredMsg">È obbligatorio specificare un valore.</span></span><span id="sprytextfield2">
      <label for="cognome">Cognome</label>
      <input type="text" name="cognome" id="cognome" />
      <span class="textfieldRequiredMsg">È obbligatorio specificare un valore.</span></span><span id="sprytextfield3">
      <label for="email"><br />
      Email</label>
      <br />
      <input type="text" name="email" id="email" />
      <br />
      <span class="textfieldRequiredMsg">È obbligatorio specificare un valore.</span></span><span id="sprytextfield4">
      <label for="telefono">Telefono</label>
      <br />
<input type="text" name="telefono" id="telefono" />
      <span class="textfieldRequiredMsg">È obbligatorio specificare un valore.</span></span><span id="spryselect1">
      <label for="attivita"><br />
      Attività<br />
      </label>
      <select name="attivita" id="attivita">
      <option value="">Scegli.......</option>
      <option value="Stretching">Stretching</option>
<option value="Total Body">Total Body</option>
<option value="Soft Pilates">Soft Pilates</option>
<option value="Tone Pilates">Tone Pilates</option>
<option value="Pilates">Pilates</option>
<option value="Gym Soft">Gym Soft</option>

<option value="Yoga - (De Rose)">Yoga - (De Rose)</option>
<option value="Ginnastica Posturale">Ginnastica Posturale</option>
<option value="Spinning">Spinning</option>
<option value="Tonificazione">Tonificazione</option>
<option value="Interval Training">Interval Training</option>
<option value="Total Work Out">Total Work Out</option>
<option value="Body Sculpt">Body Sculpt</option>
<option value="Total Body">Total Body</option>
<option value="Step Coreografico">Step Coreografico</option>

<option value="Corpo Libero">Corpo Libero</option>
<option value="G.a.g.">G.a.g.</option>
      </select>
      <br />
      <br />
      <span class="selectRequiredMsg">Selezionate una voce.</span></span>
      <input type="submit" name="invia" id="invia" value="Prenotati..." />
      <input type="hidden" name="MM_insert" value="prova_gratis" />
      <?php
 // L'INDIRIZZO DEL DESTINATARIO DELLA MAIL
 $to = "[email protected]";
 
 // IL SOGGETTO DELLA MAIL
 $subject = "Richiesta prova gratuita";
 
 // COSTRUZIONE DEL CORPO DEL MESSAGGIO
 $body = "Contenuto del modulo:\n\n";
 
 @$body .= "Dati personali ;<br>nome: " . trim(stripslashes($_POST["nome"])) . "\n";
 @$body .= "cognome: " . trim(stripslashes($_POST["cognome"])) . "\n"; 
 @$body .= "Telefono: " . trim(stripslashes($_POST["telefono"])) . "\n";
 @$body .= "E-Mail: " . trim(stripslashes($_POST["email"])) . "\n";
 @$body .= "Attività: " . trim(stripslashes($_POST["attivita"])) . "\n";
 // INTESTAZIONI SUPPLEMENTARI
 $headers = "From: [email protected]>";
 
 // INVIO DELLA MAIL
 if(@mail($to, $subject, $body, $headers)) { // SE L'INOLTRO E' ANDATO A BUON FINE...
 
 echo "La mail è stata inoltrata con successo.";
 
 } else {// ALTRIMENTI...
 
 echo "Si sono verificati dei problemi nell'invio della mail.";
 
 }
 
 ?>
  </form>
 
ho riscontrato altri problemi:incazz2: come aggiorno la pagina con f5 o col pulsante aggiorna mi invia l'email da solo...
ho il php posseduto:evil:
 
ciao
alcune cose:
a quale pagina punta il form? cioè cosa c'è
<form id="form1" name="prova_gratis" method="POST" action="<?php echo $editFormAction; ?>">
dentro la variabile $editFormAction?
il form punta ad un'altra pagina o a se stessa?

perchè hai messo la parte di invio php all'interno dei tag <form>.....</form>?

senza contare che non hai messo un controllo del submit quindi quando chiami la pagina comunque la parte php invia l'email.
inoltre vedo che hai indicato i campi del form come obbligatori, ma poi non fai un controllo (se compilati e/o compilati giusti) quindi possono comunque inviarti qualsiasi cosa

intanto rispondimi a questo, poi eventualmente ci rimettiamo le mani (senza far inorridire alex)
 
il form una volta che do invio, scrive i dati nel database action="<?php echo $editFormAction; ?> e funziona.
Poi dovrebbe inviare l'email ma me ne invia 5 di fila 1 piena le altre vuote.
alla fine di questo va su un'altra pagina dove c'e un testo dove ci sono le variabili nome cognome e attivita che l'utente stampa e qui funzioni.. dico ni perchè ci sto finendo di mettere le mani.. e tu dirai fermatiiiiiii non le mettereeeeeeeeeeeeee hehehe
ok sono stato abbastanza chiaro?
ora mi iuti:rolleyes:
 
ho il php posseduto:evil:
no non hai php posseduto.
ricordati un principio: "ogni script non fa quello che pensi che debba fare, ma fa QUELLO CHE GLI DICI DI FARE"
nello script che hai fatto succede questo (è quello chi gli dici di fare):
1. visualizza il form
2. invia l'email (vuota la prima volta perche i campi sono vuoti)
3. poi aspetta il tuoi submit e continua a riinviare ogni volta che ti muovi

quando premi f5 non fai altro che fargli ripetere le operazioni da 1.
secondo me dovresti mettere tutto l'ambaradan (togliendolo dal form) di invio dell'email nella pagina (probabilmente verso l'inizio) in cui fai l'inserimento dei dati, in quella pagina non ricevi i post del form?
 
scusami, tanto ormai lo sà tutto il forum che sono imbranata......
ma io non ho capito nulla di quello che hai detto.....
 
Basta che cambi la parte PHP in:
PHP:
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
    return;
}

 // L'INDIRIZZO DEL DESTINATARIO DELLA MAIL
 $to = "[email protected]";
 
 // IL SOGGETTO DELLA MAIL
 $subject = "Richiesta prova gratuita";
 
 // COSTRUZIONE DEL CORPO DEL MESSAGGIO
 $body = "Contenuto del modulo:\n\n";
 
 @$body .= "Dati personali ;<br>nome: " . trim(stripslashes($_POST["nome"])) . "\n";
 @$body .= "cognome: " . trim(stripslashes($_POST["cognome"])) . "\n"; 
 @$body .= "Telefono: " . trim(stripslashes($_POST["telefono"])) . "\n";
 @$body .= "E-Mail: " . trim(stripslashes($_POST["email"])) . "\n";
 @$body .= "Attività: " . trim(stripslashes($_POST["attivita"])) . "\n";
 // INTESTAZIONI SUPPLEMENTARI
 $headers = "From: [email protected]>";
 
 // INVIO DELLA MAIL
 if(@mail($to, $subject, $body, $headers)) { // SE L'INOLTRO E' ANDATO A BUON FINE...
 
 echo "La mail è stata inoltrata con successo.";
 
 } else {// ALTRIMENTI...
 
 echo "Si sono verificati dei problemi nell'invio della mail.";
 
 }
Dovrebbe funzionare.
 
ciao alex
dato che il form punta ad una pagina, da quello che ho capito, che inserisce i dati in un db, non sarebbe meglio spostare l'invio dell'email in tale pagina?
in tale pagina dovrebbero anche esserci anche tutti i vari controlli per impedire la registrazione in caso di invio porcherie.

scusami, tanto ormai lo sà tutto il forum che sono imbranata......
dai che non è vero.
 
questa è la pagina
benvenuto.php
PHP:
<div id="class_contenuti">
 

  <table align="center" width="750" border="0">
   <tr>
      <td colspan="3" id="intestazione"></td>
   </tr>
   <tr>
      <td valign="top" width="150" id="sinistro">&nbsp;</td>
      <td valign="top" width="450" id="stampa">
      <h3>Valido per una prova omaggio</h3>
        Benvenuto <?php echo $row_Recordset1['nome']; ?> <?php echo $row_Recordset1['cognome']; ?> hai scelto un ingresso omaggio per l'attività <?php echo $row_Recordset1['attivita']; ?>
  Stampa questo tagliando e presentalo all'ingresso della palestra scelta.
  Grazie la Direzione.</td>
      <td valign="top" width="150" id="destro">&nbsp;</td>
   </tr>
   <tr>
     <td valign="top" id="sinistro2">&nbsp;</td>
     <td valign="top" id="stampa2"><a href="javascript:Stampa()">Stampa</a></td>
     <td valign="top" id="destro2">&nbsp;</td>
   </tr>
  </table>
<?php
 $nome=$_POST['nome'];
$cognome=$_POST['cognome'];
 // L'INDIRIZZO DEL DESTINATARIO DELLA MAIL
 $to = "[email protected]";
 
 // IL SOGGETTO DELLA MAIL
 $subject = "Richiesta prova gratuita";
 
 // COSTRUZIONE DEL CORPO DEL MESSAGGIO
 $body = "Contenuto del modulo:\n\n";
 
 @$body .= "Dati personali ;<br>nome: " . trim(stripslashes($_POST["nome"])) . "\n";
 @$body .= "cognome: " . trim(stripslashes($_POST["cognome"])) . "\n"; 
 @$body .= "Telefono: " . trim(stripslashes($_POST["telefono"])) . "\n";
 @$body .= "E-Mail: " . trim(stripslashes($_POST["email"])) . "\n";
 @$body .= "Attività: " . trim(stripslashes($_POST["attivita"])) . "\n";
 // INTESTAZIONI SUPPLEMENTARI
 $headers = "From: [email protected]>";
 
 // INVIO DELLA MAIL
 if(@mail($to, $subject, $body, $headers)) { // SE L'INOLTRO E' ANDATO A BUON FINE...
 
 echo "La mail è stata inoltrata con successo.";
 
 } else {// ALTRIMENTI...
 
 echo "Si sono verificati dei problemi nell'invio della mail.";
 
 }  
 
 ?> 
</div>

e questa è la pagina del form
PHP:
<h3>Prenota la tua prova Gratis</h3>
  </div>
 

  <form id="form1" name="prova_gratis" method="POST" action="<?php echo $editFormAction; ?>">
    <span id="sprytextfield1">
      <label for="nome">Nome</label>
      <br />
<input type="text" name="nome" id="nome"/>
      <span class="textfieldRequiredMsg">È obbligatorio specificare un valore.</span></span><span id="sprytextfield2">
      <label for="cognome">Cognome</label>
      <input type="text" name="cognome" id="cognome" />
      <span class="textfieldRequiredMsg">È obbligatorio specificare un valore.</span></span><span id="sprytextfield3">
      <label for="email"><br />
      Email</label>
      <br />
      <input type="text" name="email" id="email" />
      <br />
      <span class="textfieldRequiredMsg">È obbligatorio specificare un valore.</span></span><span id="sprytextfield4">
      <label for="telefono">Telefono</label>
      <br />
<input type="text" name="telefono" id="telefono" />
      <span class="textfieldRequiredMsg">È obbligatorio specificare un valore.</span></span><span id="spryselect1">
      <label for="attivita"><br />
      Attività<br />
      </label>
      <select name="attivita" id="attivita">
      <option value="">Scegli.......</option>
      <option value="Stretching">Stretching</option>
<option value="Total Body">Total Body</option>
<option value="Soft Pilates">Soft Pilates</option>
<option value="Tone Pilates">Tone Pilates</option>
<option value="Pilates">Pilates</option>
<option value="Gym Soft">Gym Soft</option>

<option value="Yoga - (De Rose)">Yoga - (De Rose)</option>
<option value="Ginnastica Posturale">Ginnastica Posturale</option>
<option value="Spinning">Spinning</option>
<option value="Tonificazione">Tonificazione</option>
<option value="Interval Training">Interval Training</option>
<option value="Total Work Out">Total Work Out</option>
<option value="Body Sculpt">Body Sculpt</option>
<option value="Total Body">Total Body</option>
<option value="Step Coreografico">Step Coreografico</option>

<option value="Corpo Libero">Corpo Libero</option>
<option value="G.a.g.">G.a.g.</option>
      </select>
      <br />
      <br />
      <span class="selectRequiredMsg">Selezionate una voce.</span></span>
     <input type="submit" name="Submit" value="Invia!" />
	<input type="reset" name="Submit2" value="Cancella" />
      <input type="hidden" name="MM_insert" value="prova_gratis" />
     
  </form>
</div>
 
ciao
così ad occhio e croce le due pagine non hanno errori quindi il tutto dovrebbe funzionare.
ma spiegami una cosa:
quando sei nella pagina del form e premi il pulsante di submit visualizzi la pagina benvenuto.php ?
quella famosa variabile dell'action dovrebbe avere come valore
$editFormAction="benvenuto.php"
è così?
perche se è così, come detto, dovrebbe funzionare, ma se in $editFormAction c'è il nome di un'altra pagina non ti invia certo l'email

per fare una prova, metti nella pagina benvenuto.php

PHP:
<?php 
var_dump($_POST['nome']); 
$nome=$_POST['nome']; 
$cognome=$_POST['cognome']; 
 // L'INDIRIZZO DEL DESTINATARIO DELLA MAIL 
 $to = "[email protected]"; 
 //...eccetera...
e posta cosa riporta il var_dump
 
allora si dopo che clicco mi porta sulla pagina di benvenuto

l'email arrivano 2 vuote e sulla pagina ho questo messaggio


Notice: Undefined index: nome in C:\Program Files\EasyPHP-5.3.8.0\www\fitnesscenter\template\benvenuto.php on line 232

null


Notice: Undefined index: nome in C:\Program Files\EasyPHP-5.3.8.0\www\fitnesscenter\template\benvenuto.php on line 233

Notice: Undefined index: cognome in C:\Program Files\EasyPHP-5.3.8.0\www\fitnesscenter\template\benvenuto.php on line 234
La mail è stata inoltrata con successo.
 
ciao
per prima cosa: il null sul var_dump vuol dire che la pagina del form non trasmette o la pag di benvenuto non riceve.
sei sicura che il form punti alla pag benvenuto? non è che punti ad un'altra e poi ci sia un reindirizzamento di cui non ti accorgi?
è importante sapere quale è il contenuto di quella benedetta variabile.
fai così:
chiama la pagina del form col tuo bw, ma non dare il submit, poi vai su visualizza origine o html e dovresti vedere in chiaro (lo cerchi scorrendo) quale è l'action

quali sono le righe incriminate?
 
ops......:crying: tu dicevi questo errore..... e come lo risolvo?

PHP:
<form id="form1" name="prova_gratis" method="POST" action="/fitnesscenter/template/index.php?">
 
ho scritto cosi
PHP:
<form id="form1" name="prova_gratis" method="POST" action="<?php echo $editFormAction="benvenuto.php"; ?>">

ma il risultato è questo


Notice: Undefined index: nome in C:\Program Files\EasyPHP-5.3.8.0\www\fitnesscenter\template\benvenuto.php on line 232

null
La mail è stata inoltrata con successo.

però indovina una sola mail vuotaaaaa
 
ora è quasi ok ho tolto il var e ho riprovato ne arrivano2 ma una vuota e una piena dai che ci siamo un piccolo sforzino:rolleyes:
 
ciao
ecco uno degli inghippi
<form id="form1" name="prova_gratis" method="POST" action="/fitnesscenter/template/index.php?">
cioè il form NON punta alla pag benvenuto.php (la visualizzi probabilmente perche in index.php c'è un reindirizzamento), per quello non riceve i post

prova di brutto a correggere nel form
<form id="form1" name="prova_gratis" method="POST" action="/fitnesscenter/template/benvenuto.php">
(verifica il percorso comunque, cioè benvenuto è nella cartella template?)

lascia per ora il var_dump, prova e posta il risultato

oops non avevo visto il tuo post
 
Ultima modifica:
Stato
Chiusa ad ulteriori risposte.

Discussioni simili