Dopo invio del form ritorno alla "base".....

MAX1972

Nuovo Utente
5 Mag 2012
17
0
1
Ormai ho la carogna sulle spalle con sto form e sono arrivato all'epilogo....mi manca l'ultimo sforzo e sarebbe quello di far tornare dopo l'invio e il messaggio di corretto invio del form alla pagina precedente ovvero nella pagina dove si trova il form vuoto pronto ad essere compilato di nuovo....Per essere chiaro ho preferito fare una pagina di prova che ho chiamato prova3.html la trovate QUI sarebbe una versione bozzetto della pagina contatti.html che devo andare a completare...se ora provate a compilare i campi e a fare invio vi apre una pagina successiva tutta bianca con la scritta "Email inoltrata correttamente" in alto a sinitra del monitor e tutto poi si ferma li....Ora il mio problema sta nel fatto che se fosse semplice mi piacerebbe che l'avviso non avvenisse in una nuova pagina ma sempre nella schermata del form cioe' nella pagina contatti.html magari proprio sotto al pulsante SEND....o sarebbe ancor meglio se uscisse un messaggio come quando non viene compilato un campo del form e premendo l'ok l'avviso si chiude gernerando una sorta di refresh della pagina contatti cosi' che il form sarebbe gia pronto per una nuova scrittura....mi aiutate a finire sto incubo???:ilpirata::ilpirata::ilpirata::ilpirata:

Di seguito metto il contenuto php per i comandi del form....Grazie ciao!!!

PHP:
<?php
//Nome e Cognome
$name = $_POST['name'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$message = $_POST['message'];
//Messaggio
$subject = "Richiesta informazioni";
$bodymail = "Name: ".$name." <br />
			  Phone: ".$phone." <br />
			  Email: ".$email." <br />
			  Message: <br /> ".$request." <br />";
//Inclusione della libreria
require_once("phpmailer/class.phpmailer.php");
//Creiamo un oggetto PHPMailer e ne settiamo le variabili
$mail = new PHPMailer();
$mail->From = $email;
$mail->FromName = $name." ".$surname;
$mail->AddAddress("prova@prova.ok");
$mail->IsHTML(true); 
$mail->Subject = $subject;
$mail->Body = $bodymail;
	//Inviamo l'email
	if($mail->Send()){
		echo "Email inoltrata correttamente";		
	}else{
		echo "Errore invio mail";
	}
?>
 
Ho visto lo script di borgo italia, effettivamente sarebbe l'ideale ed avresti il lavoro già fatto, però se vuoi per forza mettere il form su una pagina html e l'invio su una pagina PHP puoi mettere il seguente pulsante sulla pagina PHP
HTML:
<input type="submit" onclick="window.location = 'http://www.tuosito.it/contatti.htm/';" value="Torna indietro">
L'ideale sarebbe quello di evitare la pagina bianca con la scritta "messaggio inviato" quindi o fai il minetrone mettendo PHP e HTML (che del resto è una cosa normalissima) o dovresti fare un redirect dal modulo PHP che invia l'email ad una pagina html che indica messaggio inviato (cosa non tanto normale).
PHP:
    if($mail->Send()){
        echo "Email inoltrata correttamente";        
        header('Location: http://www.tuosito.it/messaggiook.htm');
    }else{
        echo "Errore invio mail";
        header('Location: http://www.tuosito.it/messaggioerrore.htm');
    }

Ciao
 
Ultima modifica:
oppure se non ti da fastidio un alert in javascript puoi fare cosi:

PHP:
if (mail($destinatario, $oggetto, $msg, $headers)) {
    echo "<script type='text/javascript'>";
    echo "alert('Messaggio inviato con successo');";
    echo "location.href='contatti.html';";
    echo "</script>";
}
 
ciao
@salvogi
attento:
PHP:
 if($mail->Send()){
        echo "Email inoltrata correttamente";        
        header('Location: http://www.tuosito.it/messaggiook.htm');
    }else{
        echo "Errore invio mail";
        header('Location: http://www.tuosito.it/messaggioerrore.htm');
    }
l'istruzione header deve venire prima di qualsiasi output html e echo ecc... è un output, salvo modificare il flusso (per quello uso il tag meta)

dimenticavo
anche se funzionasse il redirect è talmente veloce che non vedi il messaggio
 
Ultima modifica:
Forse cosi si riesce ad imbrogliare php
PHP:
<?php
header("refresh:3;url=contatti.html");
echo "email inviata.";
?>

header viene dichiarato prima dell'output ma ritardandolo di 3 secondi si riesce a leggere il messaggio :mavieni:

in locale non se ne accorge ma ......
 
Forse cosi si riesce ad imbrogliare php
PHP:
<?php
header("refresh:3;url=contatti.html");
echo "email inviata.";
?>

header viene dichiarato prima dell'output ma ritardandolo di 3 secondi si riesce a leggere il messaggio :mavieni:

in locale non se ne accorge ma ......

Scusa mi faresti il favore di indicarmi in che posizione mettere quello script nel codice che ho messo all'inizio del mio post...Sto facendo un sacco di tentativi con gli script che mi avete mandato tutti fino ad ora non ottengo nulla, solo errori, appunto perche' non ho una indicazione precisa di dove mettere gli script e vado a tentoni (mea culpa sicuramente sia chiaro)....devo ricordare che io non sono un neofita ma devo proprio ancora nascere in questo campo.... io sono piu' per la grafica e in mezzo a tutto questo mi ci sono trovato forzatamente per cui chiedo scusa per la mia ignoranza ma purtroppo se non vengo "accompagnato per mano" fatico a capire soprattutto in situazioni dove si mastica codice all'inverosimile....Grazie infinita per la comprensione....se arrivo alla fine di tutto questo e' solo merito vostro
 
qui

PHP:
if($mail->Send()){
       header("refresh:3;url=contatti.html");
       echo "email inviata.";       
    }else{
        echo "Errore invio mail";
    }

ma non so se eviti l'errore : cannot modify ..... etc

altrimenti prova quello che ho postato prima in javascript sempre nello stesso posto
 
Ho provato anche su aruba e non se ne è accorto :quote:

PHP:
<?php
header("refresh:3;url=index.php");
?>
<html>
    <head>
        <script type="text/javascript">
        
        </script> 
    </head>
    <body>
        ti ho fregato ah ah ah ah
    </body>
</html>
 
Ho provato anche su aruba e non se ne è accorto :quote:

PHP:
<?php
header("refresh:3;url=index.php");
?>
<html>
    <head>
        <script type="text/javascript">
        
        </script> 
    </head>
    <body>
        ti ho fregato ah ah ah ah
    </body>
</html>

GRANDEEEEEEEEEE!!!!! Ci sono riuscitoooooooooo....E' un sognooooooo finalmente dovrei aver finito.....MioDio.....mi sono svegliato da un incubo....la soluzione ottimale sarebbe stato il messaggio direttamente nella stessa pagina del form magari vicino al tasto SEND ma va benissimo cosi'....grazie infinite....comunque studiero' meglio la soluzione proposta nel file zip in php....Grazie a tutti....:)
 
.o sarebbe ancor meglio se uscisse un messaggio come quando non viene compilato un campo del form e premendo l'ok l'avviso si chiude gernerando una sorta di refresh della pagina contatti

Stavo rileggendo la tua richiesta .....

quello che chiedi in questa frase te lo avevo già postato e fa uso di javascript

PHP:
if($mail->Send()){
    echo "<script type='text/javascript'>";
    echo "alert('Messaggio inviato con successo');";
    echo "location.href='contatti.html';";
    echo "</script>";
}

:byebye:
 
Stavo rileggendo la tua richiesta .....

quello che chiedi in questa frase te lo avevo già postato e fa uso di javascript

PHP:
if($mail->Send()){
    echo "<script type='text/javascript'>";
    echo "alert('Messaggio inviato con successo');";
    echo "location.href='contatti.html';";
    echo "</script>";
}

:byebye:

Grazie...siete stati molto gentili tutti...subito dopo al tuo post avevo fatto capire di non essere molto ferrato nella collocazione dei codici tranne se qualcuno mi indicava dove poterli inserire ....Praticamente io ho provato tutte le soluzioni che mi erano state proposte ma ottenevo solo errori o nessun risultato positivo...oltretutto avete risposto quasi tutti simultaneamente per cui alla fine mi sono affidato al primo che mi ha risolto il problema senza impazzire ulteriormente.... spero non la prendiate a male....Questo argomento sul form sara' senza dubbio utile perche' da' varie soluzioni per impostare quello che ho chiesto e potra' essere di aiuto ad altri....Io sono settimane che ho mal di pancia per colpa di sto form e credo che lo bandiro' dal mio vocabolario....Se proprio devo dirla tutta alla fine non ho ottenuto il risultato che mi ero prefissato ma sono sceso a un compromesso che comunque mi ha risolto il problema e questo e' piu' che sufficiente....A me inizialmente serviva un form che avesse la possibilita' di allegare un file e che avesse avuto i campi di testo obbligatori alla fine se si guarda in questa sezione gli ultimi post riguardanti i form sono tutti miei e seguendo la cronistoria si capisce a cosa mi volevo rivolgere....Avevo detto di essere un profano praticamente da subito ma evidentemente per molti di voi che praticamente li mangiano i codici molte cose sono scontate e banali e alcune domande che ho fatto saranno state pure "assurde"...Comunque questo e' un settore complicato qui per parlare di codici bisogna saperli e averli studiati io mi rendo conto che mi ero imbattuto in qualcosa di piu' grande di me ma almeno quella non totale ignoranza in materia e la vostra pazienza alla fine sono riuscito a risolvere il problema...Grazie ancora...:byebye::byebye::byebye:
 

Discussioni simili