Steffi_P
29.03.2006, 16:34:40
Hallo,
Ich bin ein absoluter php-Neuling und habe es nach einigem Herumprobieren endlich geschafft,
ein eigenes Kontaktformular zu programmieren.
Mein Problem: Auf meinem Laptop funktioniert alles bestens, aber wenn ich die Seite auf einem
anderen Rechner betrachte, passiert folgendes:
Sobald auf den Senden-Button geklickt wird, obwohl noch nicht alle Formularfelder ausgefüllt sind,
verschwindet das komplette Formular und es erscheint eine weiße Seite. Normalerweise sollte in
dieser Situation über dem Formular die Meldung erscheinen “Bitte xy ausfüllen“. Wie gesagt, auf
meinem Laptop funktioniert alles…
Sind alle Felder ausgefüllt, funktioniert die Übertragung der Formulardaten übrigens.
Hier mein Skript:
<?php
$submit= $_POST['submit'];
$name= $_POST['name'];
$email= $_POST['email'];
$text= $_POST['text'];
//testen, ob das Formular abgeschickt wurde
if ($submit=="abschicken")
{
//Entfernen von Leerzeichen
$name=trim ($name);
$email=trim ($email);
//Testen, ob alle Felder ausgefüllt wurden und ggf. Fehlermeldungen ausgeben
//und $submit löschen, damit das Formular erneut angezeigt wird
if (!$name AND $email AND $text)
{echo "Bitte geben Sie Ihren Namen an!"; unset($submit);}
if (!$email AND $name AND $text)
{echo "Bitte geben Sie Ihre Email-Adresse an!"; unset($submit);}
if (!$text AND $name AND $email)
{echo "Bitte geben Sie Ihre Nachricht an!"; unset($submit);}
if (!$text AND !$name AND !$email)
{echo "Bitte geben Sie Ihen Namen, Ihe Email-Adresse und Ihre Nachricht an!"; unset($submit);}
if (!$name AND !$email AND $text)
{echo "Bitte geben Sie Ihren Namen und Ihre Email-Adresse an!"; unset($submit);}
if (!$name AND !$text AND $email)
{echo "Bitte geben Sie Ihren Namen und Ihre Nachricht an!"; unset($submit);}
if (!$email AND !$text AND $name)
{echo "Bitte geben Sie Ihre Email-Adresse und Ihre Nachricht an!"; unset($submit);}
}
?>
<?php
//Testen, ob alle Felder ausgefüllt wurden. Wenn ja, die Email vorbereiten und versenden
if ($name AND $email AND $text)
{
//den Nachrichtentext der Email für HTML-Mail zusammenbauen
$message="<html><body>";
$message.="<p>Name: ";
$message.=$name;
$message.="<br>Email: ";
$message.=$email;
$message.="<br>Nachricht: ";
$message.=$text;
$message.="</b></p></body></html>";
//den Header der Email erstellen
$header="\n Content-Type: text/html";
//Email versenden. Wenn kein Fehler auftritt, wird eine Erfolgsmeldung ausgegeben, andernfalls eine Fehlermeldung
if (mail("info@stephaniepankalla.de", "Email von meiner Website", $message, $header))
{
//Erfolgsmeldung ausgeben
echo "<strong><br>Vielen Dank für Ihre Nachricht!</strong><br><br>Ich werde mich schnellstmöglich bei Ihnen melden.";
}
else
{
//Fehlermeldung ausgeben
echo "<strong>Die Informationsübermittlung ist fehlgeschlagen, bite versuchen Sie es später noch einmal.</strong>";
//$submit löschen, damit das Formular erneut angezeigt wird
unset($submit);
}
}
if (!$submit)
{
?>
<div id="formular">
<form action="kontakt.php" method="post">
<input type="hidden" name="sent" value="1">
<fieldset><legend>Ansprechpartner</legend>
Name<br><input type="text" name="name" value="<?php echo $name; ?>" size="20"><br>
Email<br><input type="text" name="email" value="<?php echo $email; ?>"size="20">
</fieldset>
<fieldset id="nachricht"><legend>Text</legend>
Ihre Nachricht<br><textarea input type="text" name="text" rows="10" cols="40"></textarea>
</fieldset>
<fieldset id="senden"><legend>Mail senden</legend>
<button type="submit" name="submit" class="submit" value="abschicken" >Senden</button>
</fieldset>
</form>
</div>
Das Formular findet ihr unter www.stephaniepankalla.de/kontakt.php
Ich hoffe, ihr könnt mir weiterhelfen!
Vielen Dank und Grüße,
Steffi
Ich bin ein absoluter php-Neuling und habe es nach einigem Herumprobieren endlich geschafft,
ein eigenes Kontaktformular zu programmieren.
Mein Problem: Auf meinem Laptop funktioniert alles bestens, aber wenn ich die Seite auf einem
anderen Rechner betrachte, passiert folgendes:
Sobald auf den Senden-Button geklickt wird, obwohl noch nicht alle Formularfelder ausgefüllt sind,
verschwindet das komplette Formular und es erscheint eine weiße Seite. Normalerweise sollte in
dieser Situation über dem Formular die Meldung erscheinen “Bitte xy ausfüllen“. Wie gesagt, auf
meinem Laptop funktioniert alles…
Sind alle Felder ausgefüllt, funktioniert die Übertragung der Formulardaten übrigens.
Hier mein Skript:
<?php
$submit= $_POST['submit'];
$name= $_POST['name'];
$email= $_POST['email'];
$text= $_POST['text'];
//testen, ob das Formular abgeschickt wurde
if ($submit=="abschicken")
{
//Entfernen von Leerzeichen
$name=trim ($name);
$email=trim ($email);
//Testen, ob alle Felder ausgefüllt wurden und ggf. Fehlermeldungen ausgeben
//und $submit löschen, damit das Formular erneut angezeigt wird
if (!$name AND $email AND $text)
{echo "Bitte geben Sie Ihren Namen an!"; unset($submit);}
if (!$email AND $name AND $text)
{echo "Bitte geben Sie Ihre Email-Adresse an!"; unset($submit);}
if (!$text AND $name AND $email)
{echo "Bitte geben Sie Ihre Nachricht an!"; unset($submit);}
if (!$text AND !$name AND !$email)
{echo "Bitte geben Sie Ihen Namen, Ihe Email-Adresse und Ihre Nachricht an!"; unset($submit);}
if (!$name AND !$email AND $text)
{echo "Bitte geben Sie Ihren Namen und Ihre Email-Adresse an!"; unset($submit);}
if (!$name AND !$text AND $email)
{echo "Bitte geben Sie Ihren Namen und Ihre Nachricht an!"; unset($submit);}
if (!$email AND !$text AND $name)
{echo "Bitte geben Sie Ihre Email-Adresse und Ihre Nachricht an!"; unset($submit);}
}
?>
<?php
//Testen, ob alle Felder ausgefüllt wurden. Wenn ja, die Email vorbereiten und versenden
if ($name AND $email AND $text)
{
//den Nachrichtentext der Email für HTML-Mail zusammenbauen
$message="<html><body>";
$message.="<p>Name: ";
$message.=$name;
$message.="<br>Email: ";
$message.=$email;
$message.="<br>Nachricht: ";
$message.=$text;
$message.="</b></p></body></html>";
//den Header der Email erstellen
$header="\n Content-Type: text/html";
//Email versenden. Wenn kein Fehler auftritt, wird eine Erfolgsmeldung ausgegeben, andernfalls eine Fehlermeldung
if (mail("info@stephaniepankalla.de", "Email von meiner Website", $message, $header))
{
//Erfolgsmeldung ausgeben
echo "<strong><br>Vielen Dank für Ihre Nachricht!</strong><br><br>Ich werde mich schnellstmöglich bei Ihnen melden.";
}
else
{
//Fehlermeldung ausgeben
echo "<strong>Die Informationsübermittlung ist fehlgeschlagen, bite versuchen Sie es später noch einmal.</strong>";
//$submit löschen, damit das Formular erneut angezeigt wird
unset($submit);
}
}
if (!$submit)
{
?>
<div id="formular">
<form action="kontakt.php" method="post">
<input type="hidden" name="sent" value="1">
<fieldset><legend>Ansprechpartner</legend>
Name<br><input type="text" name="name" value="<?php echo $name; ?>" size="20"><br>
Email<br><input type="text" name="email" value="<?php echo $email; ?>"size="20">
</fieldset>
<fieldset id="nachricht"><legend>Text</legend>
Ihre Nachricht<br><textarea input type="text" name="text" rows="10" cols="40"></textarea>
</fieldset>
<fieldset id="senden"><legend>Mail senden</legend>
<button type="submit" name="submit" class="submit" value="abschicken" >Senden</button>
</fieldset>
</form>
</div>
Das Formular findet ihr unter www.stephaniepankalla.de/kontakt.php
Ich hoffe, ihr könnt mir weiterhelfen!
Vielen Dank und Grüße,
Steffi