Zurück   Flashforum > Flash und Server > PHP und MySQL

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 29-06-2004, 12:05   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 48
Problem mir Kontaktformular (PHP)

Hi,

ich habe da ein Problem mit meinem Kontaktformular.
Das Formular ist soweit recht einfach aufgebaut, enthält einige Pflichtfelder, wobei die Fehlermeldung immer direkt über dem Eingabefeld angezeigt wird.

Zu sehen hier

Soweit ist ja auch alle OK. mein Wunsch ist es aber nun nach erfolgreichem Ausfüllen des Formulars den User auf eine Antwortseite zu schicken oder das bisherige Script so zu modifizieren, dass der Hinweissatz auf die Pflichtfelder nicht mehr drinsteht.

Momentan wird auch die "Erfolgsmeldung" auf der kontakt.php angezeigt und drüber steht dann natürlich immer noch der Satz:

"Nutzen Sie unser Kontaktformular:
(Die mit * markierten Zellen müssen ausgefüllt werden)"
Dieser Hinweis ist natürlich nach erfolgreichem Ausfüllen unnötig.

Bin mit PHP noch am Anfang und komm leider nicht weiter.
Vielleicht weiß hier jemand Rat?

Hier der Quellcode:

<div align="left">
<br><br>
<table width="785" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF">
<tr>
<td valign="top" bgcolor="#FFFFFF"><img src="../gfx/abstand.gif" width="1" height="1" border="0"></td>
<td valign="top" bgcolor="#FFFFFF">
<form action="<?php echo $PHP_SELF; ?>" method="POST">
<table width="650" border="0" cellspacing="0" cellpadding="2">
<tr>
<td valign="top" rowspan="20"><img src="../gfx/abstand.gif" width="20" height="1" border="0"></td>
<td valign="top" valign="left" colspan="2"><br>
<p><strong>Wir helfen Ihnen bei allen Fragen schnell und kompetent.</strong></p>
<p>Nutzen Sie unser Kontaktformular:<br>
(Die mit <font color="Red">*</font> markierten Zellen müssen ausgefüllt werden)</p>




PHP:--------------------------------------------------------------------------------
<?php
if(isset($_POST['senden']))
{
if(empty($_POST['name']))
{
$fehler_name = "Bitte geben Sie Ihren Namen ein!<br>";
$fehler=1;
}
if(empty($_POST['phone']))
{
$fehler_phone = "Bitte geben Sie Ihre Telefonnummer an!<br>";
$fehler=1;
}
if(empty($_POST['mail']))
{
$fehler_mail = "Bitte geben Sie Ihre E-Mail-Adresse an!<br>";
$fehler=1;
}
if(empty($_POST['betreff']))
{
$fehler_betreff = "Bitte geben Sie eine Betreff ein!<br>";
$fehler=1;
}
if(empty($_POST['Textfeld']))
{
$fehler_text = "Bitte auch einen Text eingeben!<br>";
$fehler=1;
}
}
if(isset($_POST['senden']) && !isset($fehler)){
$email_to = "mail@test.de";
$header="From:".$_POST['name']."<". $_POST['mail'] .">\n";
$kommentar='Telefon: '.$_POST['phone']."\n";
$kommentar.='Telefax: '.$_POST['fax']."\n\n";
$kommentar.='Nachricht: '.$_POST['Textfeld'];
mail($email_to , $_POST['betreff'] , $kommentar , $header) or die ("Konnte eMail nicht versenden!");
?>

--------------------------------------------------------------------------------


<p>


PHP:--------------------------------------------------------------------------------
<?php
echo "<strong>Vielen Dank ". $_POST['name'] .",</strong><br><br>";
echo "Ihre Email mit dem Betreff \"". $_POST['betreff'] ."\" wurde erfolgreich versendet.<br>";
echo "Wir werden uns so schnell wie möglich darum kümmern.";
}
else
{
?>

--------------------------------------------------------------------------------



</p></td>
<td valign="top" colspan="2"> </td></tr>

<tr>
<td width="100" align="right" valign="middle"> </td>
<td><span class="error"><br><?=$fehler_name ?></span></td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle">Name<font color="Red">*</font>: </td>
<td width="300" align="left"> <input name="name" type="text" size="20" maxlength="30" <?php if(isset($_POST['name'])) { echo "value =\"".$_POST['name']."\""; } ?>></td>
<td> </td>
</tr>

<tr>
<td width="100" align="right" valign="middle"> </td>
<td><span class="error"><br><?=$fehler_phone ?></span></td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle">Telefon<font color="Red">*</font>:</td>
<td width="300" align="left"> <input name="phone" type="text" size="20" maxlength="30"<?php if(isset($_POST['phone'])) { echo "value =\"".$_POST['phone']."\""; } ?>></td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle"> </td>
<td><span class="error"><br><?=$fehler_fax ?></span></td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle">Fax: </td>
<td width="300" align="left"> <input name="fax" type="text" size="20" maxlength="30"<?php if(isset($_POST['fax'])) { echo "value =\"".$_POST['fax']."\""; } ?>></td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle"> </td>
<td><span class="error"><br><?=$fehler_mail ?></span></td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle">E-Mail<font color="Red">*</font>:</td>
<td width="300" align="left"> <input name="mail" type="text" size="20" maxlength="30"<?php if(isset($_POST['mail'])) { echo "value =\"".$_POST['mail']."\""; } ?>></td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle"> </td>
<td><span class="error"><br><?=$fehler_betreff ?></span></td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle">Betreff<font color="Red">*</font>:</td>
<td width="300" align="left"> <input name="betreff" type="text" size="20" maxlength="30" <?php if(isset($_POST['betreff'])) { echo "value =\"".$_POST['betreff']."\""; } ?>></td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle">Ihre Nachricht<font color="Red">*</font>:</td>
<td><span class="error"><br><?=$fehler_text ?></span><br><textarea name="Textfeld" cols="30" rows="8" type="text"><?php if(isset($_POST['Textfeld'])) { echo $_POST['Textfeld']; } ?></textarea></td>
<td> </td>
</tr>
<tr>
<td colspan="3"> </td></tr>
<tr>
<td width="400" colspan="3" align="center"><input type="submit" value="Absenden" name="senden"> <input type="reset" value="Zurücksetzen"></td>
</tr>
<tr>
<td valign="top" colspan="3"><img src="../gfx/abstand.gif" width="1" height="30" border="0"></td>
</tr>
</table>
<?
}
?>
</td>
</tr>
</table>

</div>
clgrimm ist offline   Mit Zitat antworten
Alt 29-06-2004, 12:43   #2 (permalink)
Proll
 
Benutzerbild von Doktor Evil
 
Registriert seit: Sep 2003
Ort: Rock City #1
Beiträge: 284
Hab mal ein wenig gefrickelt:


HTML-Code:
<html>
<head>
</head>
<body>


<?php
if(!empty($_POST['name'])&&!empty($_POST['phone'])&&!empty($_POST['mail'])&&!empty($_POST['Textfeld'])&&!empty($_POST['betreff'])){

    echo "Danke fuer ihre Auskunft!";
    
}else{

    if(empty($_POST['name'])){
        $error_n = true;
    }
    if(empty($_POST['phone'])){
        $error_p = true;
    }
    if(empty($_POST['mail'])){
        $error_m = true;
    }
    if(empty($_POST['Textfeld'])){
        $error_t = true;
    }
    if(empty($_POST['betreff'])){
        $error_b = true;
    }
?>




<p>

<?php
echo "<strong>Vielen Dank ". $_POST['name'] .",</strong><br><br>";
echo "Ihre Email mit dem Betreff \"". $_POST['betreff'] ."\" wurde erfolgreich versendet.<br>";
echo "Wir werden uns so schnell wie möglich darum kümmern.";
?>



<form method="post">
<table>
<tr></td>
<td valign="top" colspan="2"> </td></tr>

<tr>
<td width="100" align="right" valign="middle"> </td>
<td><span class="error"><br><?=$fehler_name ?></span></td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle">Name<font color="Red">*</font>: </td>
<td width="300" align="left"> <input name="name" type="text" size="20" maxlength="30" 
<?php

if(isset($_POST['name'])) { 
echo "value =\"".$_POST['name']."\""; 
} 

echo ">";

if($error_n){
echo "Bitte angeben!";
}

?>

</td>
<td> </td>
</tr>

<tr>
<td width="100" align="right" valign="middle"> </td>
<td><span class="error"><br><?=$fehler_phone ?></span></td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle">Telefon<font color="Red">*</font>:</td>
<td width="300" align="left"> <input name="phone" type="text" size="20" maxlength="30"
<?php

if(isset($_POST['phone'])) { 
echo "value =\"".$_POST['phone']."\""; 
} 

echo ">";

if($error_p){
echo "Bitte angeben!";
} 


?></td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle"> </td>
<td><span class="error"><br><?=$fehler_fax ?></span></td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle">Fax: </td>
<td width="300" align="left"> <input name="fax" type="text" size="20" maxlength="30"
<?php

if(isset($_POST['fax'])) {
echo "value =\"".$_POST['fax']."\""; 
} 

?>></td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle"> </td>
<td><span class="error"><br><?=$fehler_mail ?></span></td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle">E-Mail<font color="Red">*</font>:</td>
<td width="300" align="left"> <input name="mail" type="text" size="20" maxlength="30"
<?php

if(isset($_POST['mail'])) {
echo "value =\"".$_POST['mail']."\""; 
}

echo ">";

if($error_m){
echo "Bitte angeben!";
} 

?>

</td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle"> </td>
<td><span class="error"><br><?=$fehler_betreff ?></span></td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle">Betreff<font color="Red">*</font>:</td>
<td width="300" align="left"> <input name="betreff" type="text" size="20" maxlength="30" 
<?php

if(isset($_POST['betreff'])) { 
echo "value =\"".$_POST['betreff']."\""; 
}

echo ">";

if($error_b){
echo "Bitte angeben!";
}

?>

</td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle">Ihre Nachricht<font color="Red">*</font>:</td>
<td><span class="error"><br><?=$fehler_text ?></span><br><textarea name="Textfeld" cols="30" rows="8" type="text">
<?php 

if(isset($_POST['Textfeld'])) { 
echo $_POST['Textfeld']; 
} ?>

</textarea>

<?php

if($error_p){
echo "Bitte angeben!";
} 

?></td>
<td> </td>
</tr>
<tr>
<td colspan="3"> </td></tr>
<tr>
<td width="400" colspan="3" align="center"><input type="submit" value="Absenden" name="senden"> <input type="reset" value="Zurücksetzen"></td>
</tr>
<tr>
<td valign="top" colspan="3"><img src="../gfx/abstand.gif" width="1" height="30" border="0"></td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</div>

<?
}
?>

</body>
</html>

Ich prüfe halt jeden Fehlerfall ab und gebe eine ensprechende Fehlermeldung hinter den Textfeldern aus. Dafür setze ich die Variablen error_x.
Wenn du ein andere Seite aufrufen willst benutze am Anfang der Seite die PHP-Funktion header unter der verwendung der Fehlerabfrage um den User direkt auf die nächste Seite zu schicken und die POST-Variablen los zu werden.
__________________
this is a rock n roll takeover
Doktor Evil ist offline   Mit Zitat antworten
Alt 29-06-2004, 13:17   #3 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 48
Hi Doc,


herzlichen Dank, damit bin ich schon einen Riesenschritt weiter.

Nur: Bei meiner bisherigen Variante erscheinen die Fehlermeldungen erst dann, wenn wirklich etwas vergessen wurde.
kann man das auch irgendwie noch bewerkstelligen?


Herzlichen Dank nochmals.

Claudia
clgrimm ist offline   Mit Zitat antworten
Alt 29-06-2004, 16:28   #4 (permalink)
mein baby
 
Benutzerbild von mal_anders
 
Registriert seit: Jul 2002
Ort: Weimar
Beiträge: 1.443
das sollte soweit gehen, ist zwar sehr unsauber geproggt, aber geht:
PHP-Code:
<?php
echo '<html><head></head><body>';
if(!empty(
$_POST['name'])&&!empty($_POST['phone'])&&!empty($_POST['mail'])&&!empty($_POST['Textfeld'])&&!empty($_POST['betreff'])){

    echo 
"Danke fuer ihre Auskunft!";
    echo 
"<strong>Vielen Dank "$_POST['name'] .",</strong><br><br>";
echo 
"Ihre Email mit dem Betreff \""$_POST['betreff'] ."\" wurde erfolgreich versendet.<br>";
echo 
"Wir werden uns so schnell wie möglich darum kümmern.";
}else{
    
$temp '<b>Bitte f&uuml;llen Sie alle Felder mit dem Sternchen aus!';
    if(empty(
$_POST['name'])){
        
$error_n true;
        
$error $temp;
    }
    if(empty(
$_POST['phone'])){
        
$error_p true;
        
$error $temp;
    }
    if(empty(
$_POST['mail'])){
        
$error_m true;                                                       
        
$error $temp;
    }
    if(empty(
$_POST['Textfeld'])){
        
$error_t true;                                                       
        
$error $temp;
    }
    if(empty(
$_POST['betreff'])){
        
$error_b true;                                                          
        
$error $temp;
    }
?>




<p>

<?php
if (isset($error)){echo $error;}
?>



<form method="post">
<table>
<tr></td>
<td valign="top" colspan="2"> </td></tr>

<tr>
<td width="100" align="right" valign="middle"> </td>
<td><span class="error"><br><?=$fehler_name ?></span></td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle">Name<font color="Red">*</font>: </td>
<td width="300" align="left"> <input name="name" type="text" size="20" maxlength="30" 
<?php

if(isset($_POST['name'])) { 
echo 
"value =\"".$_POST['name']."\""


echo 
">";

if(
$error_n){
echo 
"Bitte angeben!";
}

?>

</td>
<td> </td>
</tr>

<tr>
<td width="100" align="right" valign="middle"> </td>
<td><span class="error"><br><?=$fehler_phone ?></span></td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle">Telefon<font color="Red">*</font>:</td>
<td width="300" align="left"> <input name="phone" type="text" size="20" maxlength="30"
<?php

if(isset($_POST['phone'])) { 
echo 
"value =\"".$_POST['phone']."\""


echo 
">";

if(
$error_p){
echo 
"Bitte angeben!";



?></td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle"> </td>
<td><span class="error"><br><?=$fehler_fax ?></span></td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle">Fax: </td>
<td width="300" align="left"> <input name="fax" type="text" size="20" maxlength="30"
<?php

if(isset($_POST['fax'])) {
echo 
"value =\"".$_POST['fax']."\""


?>></td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle"> </td>
<td><span class="error"><br><?=$fehler_mail ?></span></td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle">E-Mail<font color="Red">*</font>:</td>
<td width="300" align="left"> <input name="mail" type="text" size="20" maxlength="30"
<?php

if(isset($_POST['mail'])) {
echo 
"value =\"".$_POST['mail']."\""
}

echo 
">";

if(
$error_m){
echo 
"Bitte angeben!";


?>

</td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle"> </td>
<td><span class="error"><br><?=$fehler_betreff ?></span></td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle">Betreff<font color="Red">*</font>:</td>
<td width="300" align="left"> <input name="betreff" type="text" size="20" maxlength="30" 
<?php

if(isset($_POST['betreff'])) { 
echo 
"value =\"".$_POST['betreff']."\""
}

echo 
">";

if(
$error_b){
echo 
"Bitte angeben!";
}

?>

</td>
<td> </td>
</tr>
<tr>
<td width="100" align="right" valign="middle">Ihre Nachricht<font color="Red">*</font>:</td>
<td><span class="error"><br><?=$fehler_text ?></span><br><textarea name="Textfeld" cols="30" rows="8" type="text">
<?php 

if(isset($_POST['Textfeld'])) { 
echo 
$_POST['Textfeld']; 
?>

</textarea>

<?php

if($error_p){
echo 
"Bitte angeben!";


?></td>
<td> </td>
</tr>
<tr>
<td colspan="3"> </td></tr>
<tr>
<td width="400" colspan="3" align="center"><input type="submit" value="Absenden" name="senden"> <input type="reset" value="Zurücksetzen"></td>
</tr>
<tr>
<td valign="top" colspan="3"><img src="../gfx/abstand.gif" width="1" height="30" border="0"></td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
<?
}
?>
__________________
musse rühre, musse probiere=>iss a pulsgeber !
mal_anders ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 14:26 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele