Repository 32bit  Forum
Repository 64bit  Wiki

[PHP] Form mail semplice semplice.. [RISOLTO]

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

[PHP] Form mail semplice semplice.. [RISOLTO]

Messaggioda Blallo » dom gen 01, 2012 14:33

Date le mie NULLE conoscenze di PHP, mi sono rivolto alla rete per implementare un form mail che più base non si può.
Codice: Seleziona tutto
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>senderPage</title>
</head>
<body>
<?php
 if ((trim($_POST['object']) != "") && (trim($_POST['body']) != "") && (trim($_POST['mail']) != "")) {
  $to = "savino.liguori@gmail.com";
  $headers = "From: " . $_POST['mail'] . "\n";
  $subject = "Mail da Cretinate 4 Dummies";
  $redirect_1 = "http://cretinate4dummies.blogspot.com/p/graziemail.html";
  $redirect_2 = "http://cretinate4dummies.blogspot.com/p/errore.html";
  $body = "Contenuto del modulo:\n\n";
  $body .= "Inviata da: " . trim(stripslashes($_POST["mail"])) . "\n";
  $body .= "Oggetto: " . trim(stripslashes($_POST["object"])) . "\n";
  $body .= "testo: " . trim(stripslashes($_POST["body"])) . "\n";
  mail($to, $subject, $body, $headers);
   
  echo "<script language=\"JavaScript\">\n";
  echo "window.location.href=(\"$redirect_1\");\n";
  echo "</script>";
  }
  else {
  echo "<script language=\"JavaScript\">\n";
  echo "window.location.href=(\"$redirect_2\");\n";
  echo "</script>";
  }
?>
</body>
</html>


La mia intenzione è riportare la pagina di errore (indicata in $redirect_2) nel caso che anche uno solo dei campi sia vuoto.
Se il form è compilato correttamente, funziona benissimo.
Se forzo un errore, la pagina php va in un loop che non finisce mai e non fa il redirect in $redirect_2
Considerando che l'ho modificato molto "alla bell'è meglio", sapete darmi qualche soluzione?
Ultima modifica di Blallo il dom gen 01, 2012 15:50, modificato 1 volta in totale.
Io sono il detective Arsenio Magret, e porto sempre la camicia TATUATA!
Avatar utente
Blallo
Packager
Packager
 
Messaggi: 3191
Iscritto il: ven ott 12, 2007 10:37
Località: Torino / Torremaggiore (FG)
Nome Cognome: Savino Liguori
Slackware: 14.1 / 12.2
Kernel: 3.12.2-ck
Desktop: Openbox

Re: [PHP] Form mail semplice semplice..

Messaggioda miklos » dom gen 01, 2012 15:22

non ti conviene fare come hai fatto tu.. c'e' una via molto piu' semplice che è quella di mandare un header http particolare che dice al browser di puntare ad un altra pagina.
in php dovresti fare grosso modo cosi'
Codice: Seleziona tutto
header('Location: tuourl');

affinchè tutto funzioni correttamente devi assicurarti che questa istruzione sia lanciata prima di qualunque altro output.
questo perchè gli headers http sono inviati per primi, quindi se nel frattempo hai fatto l'output di anche una sola riga di html hai perso la chance di cambiare gli header al volo

spero di essere stato chiaro :D
ho visto cose che voi astemi non potete immaginare
miklos
Linux 3.x
Linux 3.x
 
Messaggi: 1131
Iscritto il: lun lug 16, 2007 16:39
Località: Roma
Slackware: 14.1 64bit
Kernel: 3.12.6
Desktop: openbox 3.5.2

Re: [PHP] Form mail semplice semplice..

Messaggioda Blallo » dom gen 01, 2012 15:45

Ti ringrazio! Utilissimo! :D
Io sono il detective Arsenio Magret, e porto sempre la camicia TATUATA!
Avatar utente
Blallo
Packager
Packager
 
Messaggi: 3191
Iscritto il: ven ott 12, 2007 10:37
Località: Torino / Torremaggiore (FG)
Nome Cognome: Savino Liguori
Slackware: 14.1 / 12.2
Kernel: 3.12.2-ck
Desktop: Openbox


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite