Repository 32bit  Forum
Repository 64bit  Wiki

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

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata e la versione del Kernel. Questi dati aiutano le persone che possono rispondere.
2) Specificare sempre il tipo di shell (bash, sh, csh, etc...)
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 dell'ultima regola 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 15: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 16:50, modificato 1 volta in totale.
Io sono il detective Arsenio Magret, e porto sempre la camicia TATUATA!
Avatar utente
Blallo
Packager
Packager
 
Messaggi: 3054
Iscritto il: ven ott 12, 2007 11:37
Località: Torino / Torremaggiore (FG)
Nome Cognome: Savino Liguori
Slackware: 14 x64 / 12.2
Kernel: 3.2.x
Desktop: Xfce

Re: [PHP] Form mail semplice semplice..

Messaggioda miklos » dom gen 01, 2012 16: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 2.6
Linux 2.6
 
Messaggi: 884
Iscritto il: lun lug 16, 2007 17:39
Località: Roma
Slackware: 14 64bit
Kernel: 3.8.6
Desktop: openbox 3.5.0

Re: [PHP] Form mail semplice semplice..

Messaggioda Blallo » dom gen 01, 2012 16:45

Ti ringrazio! Utilissimo! :D
Io sono il detective Arsenio Magret, e porto sempre la camicia TATUATA!
Avatar utente
Blallo
Packager
Packager
 
Messaggi: 3054
Iscritto il: ven ott 12, 2007 11:37
Località: Torino / Torremaggiore (FG)
Nome Cognome: Savino Liguori
Slackware: 14 x64 / 12.2
Kernel: 3.2.x
Desktop: Xfce


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite