form action und Formmailerproblem

Admi

Erfahrenes Mitglied
Ich hab mir mit den ersten Grundkenntnissen in PHP einen Formmailer gebastelt
Allerdings habe ich da ein Problem!
Wie kann ich es anstellen, das die "echo"-Ausgabe in der hilfe.php angezeigt werden und sich kein extrafenster öffnet, geschweige denn die Seite mit der "echo" Ausgabe überschrieben wird. Geht das auf einfachem Weg, ohne gleich alles umschreiben zu müssen?

in der Hilfe.php

PHP:
  <form action="senden.php" method="post">
  <p><input type="text" size="40" name="user"> Ihr Name</p>
  <p><input type="text" size="40" name="email"> Ihre E-Mail</p>
  <p><input type="text" size="40" name="betreff"> Ihre Betreff</p>  
 <p><textarea name="text" cols="40" rows="7" onFocus="if(this.value=='Your message')this.value='';"></textarea></p>
  <input type="submit" value="senden">
  </form>

in der senden.php

PHP:
  <?
  $HTTP_POST_VARS["user"];
  $HTTP_POST_VARS["email"];
  $HTTP_POST_VARS["betreff"];
  $HTTP_POST_VARS["text"];
  $user = $HTTP_POST_VARS["user"];
  $email = $HTTP_POST_VARS["email"];
  $betreff = $HTTP_POST_VARS["betreff"];
  $text = $HTTP_POST_VARS["text"];
  $empfaenger = "mhm@gmx.de";
  if($user == "")
  {
  	echo "Sie haben keinen Namen eingegeben!";
  }
  elseif($email == "")
  {
  	echo "Sie haben keine E-Mail Adresse angegeben!";
  }
  else
  {
  	echo "Vielen Dank ",$user,", Ihre E-Mail wurde dem Webmaster zugestellt!";
  }
  mail($empfaenger, $betreff, $text, 
  "From: $sender <$email>");
  ?>
 
So:

PHP:
<?
  $HTTP_POST_VARS["user"];
  $HTTP_POST_VARS["email"];
  $HTTP_POST_VARS["betreff"];
  $HTTP_POST_VARS["text"];
  $user = $HTTP_POST_VARS["user"];
  $email = $HTTP_POST_VARS["email"];
  $betreff = $HTTP_POST_VARS["betreff"];
  $text = $HTTP_POST_VARS["text"];
  $empfaenger = "mhm@gmx.de";
  if($user == "")
  {
      $message = 1;
  }
  elseif($email == "")
  {
      $message = 2;
  }
  elseif(mail($empfaenger, $betreff, $text, "From: $sender <$email>"))
  {
      $message = 3;
  }
echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL=hilfe.php?message='.$message.'&user=':$user:'">';
  ?>

Dann machste auf der hilfe.php noch eben:

PHP:
if(isset($_REQUEST['message']){
switch($_REQUEST['message']){ 
case 1: echo 'blasdasd'; break; } 
etc... oder halt mit 
if($_REQUEST['message'] = 1){ 
echo 'asdasd'; 
}
}
 
Ok, danke...ich hab mir gestern noch bis halb 4 ne Birne gemacht und letztenendes diesen Weg gefunden und bei der Gelegenheit gleich noch nen Logikfehler in der Ausgabe beseitigt.
Damit öffnet sich beim Abschicken für 10 Sekunden im selben Fenster die senden.php, gibt die entsprechende Nachricht aus und leitet dann wieder zur Ursprungseite zurück.
Aber danke für die Mühe, probier ich gleich mal aus, wie das bei deinem Vorschlag :)
Außerdem kriegt jetzt der Sender auch ne Kopie seines Schreibens auf seine Emailaddy geschickt, wenn er denn auch die richtige angegeben hat :D

senden.php

PHP:
  <meta http-equiv="refresh" content="10; URL=http://www.xxxxxx.de/faq.php">
  <link rel="stylesheet" type="text/css" href="style.css" />
  <?
  $HTTP_POST_VARS["user"];
  $HTTP_POST_VARS["email"];
  $HTTP_POST_VARS["betreff"];
  $HTTP_POST_VARS["text"];
  $user = $HTTP_POST_VARS["user"];
  $email = $HTTP_POST_VARS["email"];
  $betreff = $HTTP_POST_VARS["betreff"];
  $text = $HTTP_POST_VARS["text"];
  $empfaenger = "xxx@gmx.de";
  if($user == "" and $email == "")
  {
  	echo "<h1>Sie haben weder Ihren Namen noch Ihre E-Mail Adresse eingegeben!</h1>";
  }
  elseif($user == "")
  {
  	echo "<h1>Sie haben keinen Namen angegeben!</h1>";
  }
  elseif($email == "")
  {
  	echo "<h1>Sie haben keine E-Mail Adresse angegeben!</h1>";
  }
  else
  {
 	echo "<h1>Vielen Dank ",$user,", Ihre E-Mail wurde dem Webmaster zugestellt und als Kopie an sie verschickt!</h1>";
  	mail($empfaenger, $betreff, $text, 
  	"From: $sender <$email>");
  	mail($email, $betreff, $text, 
  	"From: $sender <$empfaenger>");
  }
  ?>
  <br>
  <br>
  <h1>Sie werden in 10 Sekunden zurückgeleitet!</h1>
 
Zurück