PDA

View Full Version : [PHP] inviare un form via email


fed_cas
22-10-2008, 01:52
finalmente mi sono deciso ad aggiornare un vecchio form che mandava l'email solamente con l'html, mandava un messaggio veramente incomprensibile e bisognava decifrare i codici ascii :asd:

ho scopiazzato da qua se può tornare utile a qualcuno: Form - mail, invio mail php, moduli, posta elettronica (http://guide.solohosting.it/guida.php?id=16&sezione=guide)

Beh funziona tutto benone ma c'è un problema. Quando si preme il tasto invia il browser viene mandato su una pagina tutta bianca (che sarebbe quella php che si occupa di mandare il messaggio) e questa cosa vorrei evitarla, come si fa per far rimanere il visitatore sulle pagine normali del sito e magari dargli qualche tipo di feedback (il classico alert)?
Potrei mettere un alert e poi un redirect, ma non mi piace molto come cosa, come posso fare per evitare tutti questi cambi di pagina, facendo che il messaggio venga inviato e venga visualizzato l'alert sempre nella stessa pagina?


P.S.
sulla guida c'è scritto di fare così:

<?
$messaggio ="Ciao $destinatario";
$messaggio .= "\n";

$messaggio .="$mionome ti invia questo messaggio:";
$messaggio .= "\n";

$messaggio .= "$testo";

$messaggio .= "\n";

perchè ripete la variabile per ogni accapo? io ho fatto così e funziona uguale, cambia qualcosa?


<?
$messaggio ="Ciao $destinatario \n";
$messaggio .="$mionome ti invia questo messaggio: \n \n";
$messaggio .= "$testo";
$messaggio .= "\n";

Hal2001
22-10-2008, 02:32
Un'idea molto semplice potrebbe essere quella di aprire un piccolo pop-up per il feedback.

fed_cas
22-10-2008, 14:02
Un'idea molto semplice potrebbe essere quella di aprire un piccolo pop-up per il feedback.

si per quello pensavo appunto a un alert. Il problema principale è che non so come mandare l'email senza indirizzare il browser su un'altra pagina, vorrei riuscire a mandarla rimanendo nella stessa pagina del sito

cionci
22-10-2008, 16:03
La richiesta la devi reindirizzare comunque verso una pagina php, ma puoi aprire un popup, non certo un alert.

fed_cas
22-10-2008, 16:35
eh si mi sa che per quello che volevo fare devo per forza usare l'ajax...
mmh... come mai non si possono più gli alert?

comunque vabbè ho risolto tutto nella maniera più semplice... ho modificato la pagina dove si viene mandati mettendoci dell'html, così ora anzichè apparire vuota viene visualizzato il messaggio stile forum "il messaggio è stato inviato" e dopo 5 secondi si viene redirectati alla pagina precedente ;)

e in effetti è anche meglio di popup e roba del genere che sicuramente creerebbero casini coi popublocker

dany84
22-10-2008, 16:36
Potresti anche indirizzarla alla pagina stessa, mettendo un controllo in cima che verifichi che esistano i dati della form e in caso positivo invii la mail, altrimenti carichi la pagina normalmente.

edit: ho visto che hai risolto

cionci
22-10-2008, 16:38
mmh... come mai non si possono più gli alert?

Non è che non si possono più usare, non si proprio proprio usare in questo caso. Una pagina per inviare la form deve essere caricata e un alert non è una pagina.

fed_cas
22-10-2008, 17:27
Potresti anche indirizzarla alla pagina stessa, mettendo un controllo in cima che verifichi che esistano i dati della form e in caso positivo invii la mail, altrimenti carichi la pagina normalmente.

edit: ho visto che hai risolto

buona idea, ma ormai lascio così non vorrei incasinarmi... grazie comunque ;)

Non è che non si possono più usare, non si proprio proprio usare in questo caso. Una pagina per inviare la form deve essere caricata e un alert non è una pagina.

ah ok ora ho capito. Si nel caso pensavo di lanciare l'alert dalla pagina php che manda l'email, ma vabbè come ho fatto ora forse è anche meglio