• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

PHP - Kontaktformular

Hallo rasputin,

vielen Dank für Deine Bemühungen mir zu helfen. Trotzdem tue ich mich schwer, aus den Anleitungen einen Lösungsansatz zu finden. Vielleicht könntest Du meinen Quellcode noch einmal etwas genauer unter die Lupe nehmen? Eigentlich kann nicht mhr viel fehlen, um eine Antwortseite aufzurufen.

Gruß, Michael
 
Ich hätte ja nach dem Senden ein echo mit einer Javascriptzeile fabriziert:

echo "<script language=\"javascript\" type=\"text/javascript\">location.href=\"naechste_seite.htm\"</script>\n";
 
warum soll man JS verwenden und damit möglicherweise User ausgrenzen wenn man es auch anders machen kann :rolleyes:
 
wieso js? wenn jemand ohne js das formular abschickt, bleibt er dann sitzen.

@michael: ich würde das script noch auf "register_globals = off" und "error_reporting(E_ALL);" umschreiben.

die änderungen habe ich nur mal aus dem kopf gemacht, es ist nicht getestet:
PHP:
<?php // muss unbedingt in der ersten zeile der datei stehen
if($action=="senden") {
  $betreff = trim(stripslashes($betreff));
  $name = trim(stripslashes($name));
  $vorname = trim(stripslashes($vorname));
  $strasse = trim(stripslashes($strasse));
  $plz = trim(stripslashes($plz));
  $wohnort = trim(stripslashes($wohnort));
  $mail = trim(stripslashes($mail));
  $inhalt = trim(stripslashes($inhalt));

// Prüfung der Angaben nach dem Senden
  $fehler = array();
  if(!$name) $fehler[] = "Bitte geben Sie Ihren Namen ein.";
  if(!$vorname) $fehler[] = "Bitte geben Sie Ihren Vornamen ein.";
  if(!$strasse) $fehler[] = "Bitte geben Sie Ihre Strasse ein";
  if(!$plz) $fehler[] = "Bitte geben Sie Ihre Postleitzahl ein";
  if(!$wohnort) $fehler[] = "Bitte geben Sie Ihren Wohnort ein";
  if(!$mail) $fehler[] = "Bite geben Sie Ihre E-Mailadresse ein";
  if(!$inhalt) $fehler[] = "Bitte gebe Sie Ihre Nachricht ein.";

  if(!count($fehler)) { // Sendet Email, wenn Pr¸fung "ok"

    $an = "adresse@domain.tld"; // adresse mir nicht mehr verschickt
    $content = "$vorname $name\n$strasse\n\n$plz $wohnort\n\n\n$inhalt";
    $from = "From: $vorname $name <$mail>";
    mail($an,$betreff,$content,$from);
    header("Location: http://www.meine_seite.de/kontakt_antwort.html"); 
    exit;
  }
}

?>
<html>
<head>
<link href="../../stylesheet.css" rel="stylesheet" media="screen">
<!--
sonstige header...
-->
</head>
<body bgcolor="#de0000" leftmargin="0" marginheight="0" marginwidth="0" topmargin="0">
<?php
if(count($fehler) > 0){ 
  echo "Beim Senden traten folgender Fehler auf:";
  echo "<ul><li>".implode("<li>",$fehler)."</ul>";
}
?>
<table width="410" border="0" cellspacing="0" cellpadding="0" bgcolor="white" height="466">
<tr height="18">
<td bgcolor="#fcdad0" width="410" height="18"><br>
</td>
</tr>
<tr height="31">
<td class="ueberschrift" width="410" height="31">Kontakt</td>
</tr>
<tr height="386">
<td class="tabelle_abstand" valign="top" width="410" height="386">
<form action="<?php echo $PHP_SELF; ?>" method="post">
<input type="hidden" name="action" value="senden">
<table width="376" border="0" cellspacing="0" cellpadding="0">
<tr height="21">
<td class="schrift_inhalt_fett" width="115" height="21">E-Mail an:</td>
<td width="261" height="21"></td>
</tr>
<tr height="21">
<td class="schrift_inhalt_fett" width="115" height="21">Name</td>
<td width="261" height="21"><input name="name" value="<?php echo $name; ?>" size="35" maxlength="35"></td>
</tr>
<tr height="21">
<td class="schrift_inhalt_fett" width="115" height="21"><b><font size="2" face="Arial, Helvetica">Vorname:</font></b></td>
<td width="261" height="21"><input name="vorname" value="<?php echo $vorname; ?>" size="35" maxlength="35"></td>
</tr>
<tr height="21">
<td class="schrift_inhalt_fett" width="115" height="21"><b><font size="2" face="Arial, Helvetica,">Straße</font></b></td>
<td width="261" height="21"><input name="strasse" value="<?php echo $strasse; ?>" size="35" maxlength="35"></td>
</tr>
<tr height="21">
<td class="schrift_inhalt_fett" width="115" height="21"><b><font size="2" face="Arial, Helvetica">PLZ:</font></b></td>
<td width="261" height="21"><input name="plz" value="<?php echo $plz; ?>" size="35" maxlength="35"></td>
</tr>
<tr height="21">
<td class="schrift_inhalt_fett" width="115" height="21">Wohnort</td>
<td width="261" height="21"><input name="wohnort" value="<?php echo $wohnort; ?>" size="35" maxlength="35"></td>
</tr>
<tr height="21">
<td class="schrift_inhalt_fett" width="115" height="21">Email</td>
<td width="261" height="21"><input name="mail" value="<?php echo $mail; ?>" size="35" maxlength="35"></td>
</tr>
<tr>
<td width="115"></td>
<td width="261"><input name="betreff" type="hidden" value="der betreff"></td>
</tr>
<tr height="110">
<td class="schrift_inhalt_fett" valign="top" width="115" height="110">Ihre Nachricht</td>
<td width="261" height="110"><textarea name="inhalt" rows="8" cols="33"><?php echo $inhalt; ?></textarea></td>
</tr>
<tr>
<td width="115"></td>
<td width="261"><input type="submit" value="Abschicken"> <input type="reset" name="Button2" value="Zurücksetzen"></td>
</tr>
</table>
</form>
</td>
</tr>
<tr height="31">
<td class="linie_absatzende_links" width="410" height="31"></td>
</tr>
</table>
</body>
 
Hallo,

leider tritt nun bim Aufrufen der Seite ein Fehler auf:

Parse error : parse error in /mnt/be1/06/437/00000008/htdocs//seiten/iframe_inhalte/kontakt.php on line 3

Ich sehe in Zeile 3 jedoch keinen Fehler, soweit ich das beurteilen kann.

Gruß, Michael.

PS: Meint ihr, ich sollte mal den Link ins Netz stellen, damit ihr die Sache besser testen könnt?
 
Hallo nochmal. Ich hab's soweit hingekriegt, auch wenn ich die Sache mit dem "Verschleiern" der eigenen Mailadresse noch nicht eingefügt habe.
Die Auswertung des Skripts habe ich einfach in eine andere Datei verlegt. Jetzt klappt's. Danke nochmals für Eure Hile.

@rasputin:
Kannst Du Dir die Sache mit "register_globals = off" noch mal anschauen? Da muss noch ein kliner Fehler vorhanden sein.


<form action="http://seiten/iframe_inhalte/kontakt_antwort.php" method="post">


Ansonsten nochmals vieeeeelen Dank. Ihr seid spitze.

Gruß, Michael
 
ich meinte, wenn ich dich wäre, würde ich das umschreiben... das kannst du selber machen, ist nicht so schwer.
 
hallo zusammen,

ich habe mir das kontaktformular auch zu eigen gemacht.
ist es möglich, dass ich nachdem der benutzer senden gedrückt, nicht auf einer antwortseite lande, sondern, dass ich das fenster schließt?

Grüße Fjoerdman
 
also, wenn ich dich richtig verstanden habe, soll ich anstatt:

header("Location: http://www.google.de");

die syntax window.close();

schreiben?

Vielleicht hab ich´s nicht richtig verstanden, aber so wie ich´s jetzt gepostet habe funktioniert es nicht.

Grüße Fjoerdman
 
also statt die weiterleitung schreibst du einfach ein javascript, welches das fenster schließt...dann kommst du nicht auf eine dankesseite, sondern das fenster schließt sich...das wolltest du doch, oder hab ich was alsch verstanden?
 
das wird so nicht funktionieren weil der header muss an erster Stelle gesendet werden das JavaScript jedoch nicht. dem zufolge muss das JavaScript erst später ausgegeben werden.
 
also nur mal vorweg: wir sind doch jetzt bei dem script welches rasputin gepostet hat? richtig?
gut und rasputin hat da eine weiterlietung auf eine dankesseite mit location:....(usw...)

und fjoerdman möchte diese weiterleitung raus haben und das fenster gleich schließen, hab ich das auch richtig verstanden?

wenn das alles richtig ist, dann kann er doch statt des location: blabla ein javascript schreiben, dann muß in dem ganzen script kein header gesetzt werden...
 
ist schon richtig aber er muss das Script verschieben, er kann ja nicht ein javascript for dem <html> tag ausgeben.
 
jetzt hätte ich dann doch noch eine frage:
ich möchte gerne ein spezielles jpg hintergrundbild verwenden.
wie baue ich dies jetzt noch in die php datei ein?

grüße fjoerdman
 
Zurück
Oben