Form PHP: Messaggio di conferma che compare al caricamento della pagina

Scar991

Utente Attivo
30 Apr 2012
167
0
0
Salve a tutti!
Ho creato un form mail per la sezione contatti dotato di quattro voci. Ho scritto il codice php da inserire nella pagina:

PHP:
<?php 

// Destinatario 
$to = "[email protected]"; 

// Oggetto 
$subject = "Modulo dal sito xxx.altervista.org"; 

// Messaggio 
$msg = "Contenuto del modulo:\n\n"; 
$msg .= "Nome: " . trim(stripslashes($_POST["name"])) . "\n"; 
$msg .= "Cognome: " . trim(stripslashes($_POST["surname"])) . "\n"; 
$msg .= "Email: " . trim(stripslashes($_POST["e-mail"])) . "\n"; 
$msg .= "Messaggio: " . trim(stripslashes($_POST["message"])) . "\n"; 


// Invio 
if(@mail($to, $subject, $msg)) { 

// Inoltro corretto 

echo "Il tuo messaggio è stato inviato con successo, ti risponderemo il prima possibile!"; 

} else {

// Inoltro fallito

echo "Si sono verificati dei problemi nell'inviare il tuo messaggio"; 

} 

?>

Il messaggio di "Inoltro Corretto" compare già al caricamento della pagina. Ho provato a mettere il codice php prima del

Codice:
< !DOCTYPE html PUBLIC [...] >

oppure tra i tag del fieldset, o ancora alla fine della pagina. Il messaggio compare sempre nel punto in cui sposto il codice.
Qualche idea su come fare??
 
Il codice non è delimitato da alcun elemento? (ad esempio un div..)
 
Il codice non è delimitato da alcun elemento? (ad esempio un div..)

Non ti posto tutto il codice della pagina perché è un bordello...
Comunque, ad ora il codice è messo prima della chiusura del tag </form> che mi delimita la struttura del modulo, e il messaggio appare sotto il modulo stesso.
Se lo sposto prima dell'intestazione dell'HTML, mi appare al di sopra di tutto...
Se lo sposto prima della chiusura del body, mi viene sul footer o giù di lì... Sembra una caccia al tesoro!!! :gun:
 
Dovresti verificare prima sei il POST è stato inviato

PHP:
if(isset($_POST["invia"]) {
// tutto il codice che hai postato
}

ho scritto $_POST["invia"] ma dipende dal name che hai dato all input submit del form
 
Dovresti verificare prima sei il POST è stato inviato

PHP:
if(isset($_POST["invia"]) {
// tutto il codice che hai postato
}

ho scritto $_POST["invia"] ma dipende dal name che hai dato all input submit del form

Mi da errore... se metto il tuo codice dopo <?php e prima del resto mi da un errore (non identificato)
 
Ma tu dove vuoi che ti compaia, sotto il form? Perchè in questo caso lo dovresti inserire dopo la chiusura del tag form.
 
Avevo dimenticato una parentesi

cmq intendevo cosi

PHP:
<?php

if(isset($_POST["invia"])) {

// Destinatario 
    $to = "[email protected]";

// Oggetto 
    $subject = "Modulo dal sito xxx.altervista.org";

// Messaggio 
    $msg = "Contenuto del modulo:\n\n";
    $msg .= "Nome: " . trim(stripslashes($_POST["name"])) . "\n";
    $msg .= "Cognome: " . trim(stripslashes($_POST["surname"])) . "\n";
    $msg .= "Email: " . trim(stripslashes($_POST["e-mail"])) . "\n";
    $msg .= "Messaggio: " . trim(stripslashes($_POST["message"])) . "\n";


// Invio 
    if (@mail($to, $subject, $msg)) {

// Inoltro corretto 

        echo "Il tuo messaggio è stato inviato con successo, ti risponderemo il prima possibile!";
    } else {

// Inoltro fallito

        echo "Si sono verificati dei problemi nell'inviare il tuo messaggio";
    }
}
?>
 
Ho copiato il codice di criric... Ora però il messaggio non viene assolutamente visualizzato e nella mail ricevo il messaggio con

Nome:
Cognome
Email:
Messaggio:

e basta, tutto vuoto :S
 
Ultima modifica:
Ecco tutto il form

Codice:
  <div id="Contenuto">
    <form id="Contatti" name="Contatti" method="post" action="contattaci.php">
      <fieldset>
        <legend>Comunica con noi!</legend>
        <p><span id="nome">
        <label for="name">Nome*:</label>
        <input type="text" name="name" id="name" tabindex="10" />
        <br />
        <span class="textfieldRequiredMsg">È obbligatorio specificare un valore.</span><span class="textfieldInvalidFormatMsg">Formato non valido.</span></span></p>
        <p><span id="cognome">
        <label for="surname">Cognome:</label>
        <input type="text" name="surname" id="surname" tabindex="20" />
<span class="textfieldInvalidFormatMsg">Formato non valido.</span></span></p>
        <p><span id="email">
        <label for="e-mail">Email*:</label>
        <input type="text" name="e-mail" id="e-mail" tabindex="30" />
        <br />
        <span class="textfieldRequiredMsg">È obbligatorio specificare un valore.</span><span class="textfieldInvalidFormatMsg">L'indirizzo inserito non è valido.</span></span></p>
        <p><span id="messaggio">
          <label for="message">Messaggio*:</label>
          <textarea name="message" id="message" cols="45" rows="5" tabindex="40"></textarea>
        <span class="textareaRequiredMsg"><br />
        È obbligatorio specificare un valore.</span></span></p>
        <p>
          <input type="submit" name="send" id="send" value="Invia" tabindex="50" />
          <input type="reset" name="reset" id="reset" value="Reset" tabindex="60" />
          <hr />

          <?php 

	if(isset($_POST["invia"])) { 
	
	// Destinatario  
		$to = "[email protected]"; 
	
	// Oggetto  
		$subject = "Modulo dal sito xxx.altervista.org"; 
	
	// Messaggio  
		$msg = "Contenuto del modulo:\n\n"; 
		$msg .= "Nome: " . trim(stripslashes($_POST["name"])) . "\n"; 
		$msg .= "Cognome: " . trim(stripslashes($_POST["surname"])) . "\n"; 
		$msg .= "Email: " . trim(stripslashes($_POST["e-mail"])) . "\n"; 
		$msg .= "Messaggio: " . trim(stripslashes($_POST["message"])) . "\n"; 
	
	
	// Invio  
		if (@mail($to, $subject, $msg)) { 
	
	// Inoltro corretto  
	
			echo "Il tuo messaggio è stato inviato con successo, ti risponderemo il prima possibile!"; 
		} else { 
	
	// Inoltro fallito 
	
			echo "Si sono verificati dei problemi nell'inviare il tuo messaggio"; 
		} 
	} 
?>

        </p>
      </fieldset>
    </form>
 
Visto che hai dato name send al submit

cambia

PHP:
if(isset($_POST["invia"])) {

con

PHP:
if (isset($_POST["send"]) && $_POST["send"] == "Invia") {
 

Discussioni simili