• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Kontaktformular mit pflichtfeld prüfung...

kahly

Neues Mitglied
Hay,
ich hab mal wieder eine frage da ich einfach nicht weiterkomme,
ich bin wiegesagt neuling in php und habe mir mit mühe und viel hilfe aus schon fertigen themen ein kleines kontaktformular erstellt....

das Kontaktformular funktioniert auch komplett sendet alle inhalte so wie ich das haben will...
mein problem ist jetzt die sache mit den pflichtfeldern...

alle felder MÜSSEN ausgefüllt werden und wenn ein feld nicht ausgefüllt wurde soll dadrauf hingewiesen werden,
wenn es machbar ist soll das kontaktformular alle eingegebenden felder mit inhalt behalten nur die die nciht ausgefüllt sind leer wiedergeben und eine fehler meldung ausgeben welches feld noch benötigt wird...


momentan sieht mein php code so aus(weis nich ob ich es vllt auf mehrere seiten legen sollte):

PHP:
<?php

print '<meta http-equiv="refresh" content="5;http:/index.html">';

$link1 = "http://neu.kog-tw-clan.de/index.html";

if (isset($_POST["senden"])) {
$vorname = $_POST['vorname'];
$name = $_POST['name'];
$email = $_POST['email'];
$homepage = $_POST['homepage'];
$button = $_POST['button'];
$nachricht = $_POST['nachricht'];  
$webmaster = "[email protected]" ;

$g_inhalt = "
* * * * * * * * * * * * * * * * * * * * *

Dein angegebener Vorname : $vorname

Dein angegebener Name : $name

Deine angegebene Email Adresse : $email

Deine angegebene HomePage : $homepage

Dein angegebene Button : $button

Deine eingegebene Anfrage : 

$nachricht

* * * * * * * * * * * * * * * * * * * * *
";
$f_nachricht = "
vorname : $vorname
Name : $name
Emailadresse : $email

Homepage : $homepage
Button : $button

Anfrage : $nachricht
";
}
mail($email,"Wir Haben deine Nachricht erhalten.",$g_inhalt,"From: $webmaster") ;
mail($webmaster,"Die Anfrage von $vorname $name",$f_nachricht,"From: $email") ;

echo "

<br><br><br><br><center>Deine Nachricht wurde erfolgreich gesendet!<br/>
Falls automatische Weiterleitung nicht funktioniert klicken sie bitte <a href=\"".$link1."\">Hier</a></center>";

?>

wenn ihr vllt noch mein html code benötigt:
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>1.versuch</title>
<link rel="stylesheet" type="text/css" href="style.css">
<link rel="stylesheet" type="text/css" href="menü.css">
<link rel="stylesheet" type="text/css" href="kontakt.css">
</head>

<body>
<div id="gesamt">

<div id="kopf">
<div id="link"><a href="index.html">Home</a></div>
<div style="text-align:right;background-color:;"><a style="text-decoration:none;border-style:none;color:white;font-family:Verdana, sans-serif;font-size:12px;" target="_blank" href="http://www.schnelle-online.info/Datum-heute.html" id="soidate23683036527">Datum heute</a><font color="white">- </font><a style="text-decoration:none;border-style:none;color:white;font-family:Verdana, sans-serif;font-size:13px;margin-right:15px;" target="_blank" href="http://www.schnelle-online.info/Homepage/Uhr-fuer-die-Homepage.html" id="soitime23683036527">Homepage Uhren</a></div>
<script type="text/javascript">
SOI = (typeof(SOI) != 'undefined') ? SOI : {};(SOI.ac21fs = SOI.ac21fs || []).push(function() {
(new SOI.DateTimeService("23683036527", "DE")).start();});
(function() {if (typeof(SOI.scrAc21) == "undefined") { SOI.scrAc21=document.createElement('script');SOI.scrAc21.type='text/javascript'; SOI.scrAc21.async=true;SOI.scrAc21.src=((document.location.protocol == 'https:') ? 'https://' : 'http://') + 'homepage-tools.schnelle-online.info/Homepage/atomicclock2_1.js';(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(SOI.scrAc21);}})();
</script>

</div>
<div class="menu bubplastic horizontal orange">
    <ul>
        <li><span class="menu_r"><a href="index.html"><span class="menu_ar">Home</span></a></span></li>
        <li><span class="menu_r"><a href=""><span class="menu_ar">Button</span></a></span></li>
        <li><span class="menu_r"><a href=""><span class="menu_ar">Top100</span></a></span></li>
        <li class="highlight"><span class="menu_r"><a href=""><span class="menu_ar"><font color="#ffffff">kontakt</font></span></a></span></li>
    </ul>
    <br class="clearit" />
</div>
<div id="mitte">
<div id="inhalt"> 
<form id="form1" name="form1" method="post" action="kontakt.php">
<fieldset>
<legend>Bitte geben Sie Ihre Kontaktdaten an</legend>
 
  <p><label for="vorname">Vorname:</label> 
  <input type="text" name="vorname" id="vorname" /></p>
  
  <p><label for="name">Name:</label>
  <input type="text" name="name" id="name" /></p>
    
  
   <p><label for="email">Email:</label> 
  <input type="text" name="email" id="email" /></p>
   
<p><label for="homepage">Homepage:</label>
<input type="text" name="homepage" id="homepage" /></p>

<p><label for="button">Button: </label>
<input type="text" name="button" id="button" /></p>

<p><label for="nachricht">Ihre Nachricht:<br /></label>
<textarea name="nachricht" id="nachricht"></textarea>
</p>


 <p><input type="submit" name="senden" id="senden" value="Senden" class="button" />
 <input type="reset" name="löschen" id="löschen" value="Löschen" class="button1" /></p>

 </fieldset>
</form>
</div>
</div>
<div id="fuss"><div id="impressum"><a href="impressum.html">Impressum</a></div><div id="seitenanfang"><a href="index.html">Seiten Anfang</a></div>

</div>
</div>
</body>
</html>



ich hoffe ihr könnt mir helfen und vllt sogar beispiele scheriben die ich dann nur noch auf alle felder erweitern muss....

mit freundlichen grüßen,
marcel Kahlert
 
Du hast doch schon eine Bedingung drinne die genau für sowas gedacht ist:

PHP:
if (isset($_POST["senden"])) {

Das musst Du nur für jedes Pflichtfeld noch ergänzen und negieren (mit einem "!" davor), z.B.:

PHP:
if (!isset($_POST["feldname"])) {
 echo "feld ist nicht ausgefüllt";
}
 
haha cool ich hab schonmal ausprobiert aber klappte i-wie nit xD,


gut also dadurch sollte er die amil nur absenden wenn alles ausgefüllt ist?
und wie bekomme ich es hin das die fehlermeldung dann unten in der html datei ausgegeben wird also unter der anchricht eingabe box....

und das alles was richtig eingegeben wurde wieder im dokument vorhanden ist...

also wenn alles richtig ist nur der name nciht angegeben wurde,
das dann alles wieder da steht nur der name ist frei und da drunter steht halt die fehlermeldung.....

ich weis nicht ob ich zu viel verlange aber ich bin dankbar über jede hilfe...


dann nurnoch eine frage zur anordnung....
PHP:
<?php

print '<meta http-equiv="refresh" content="5;http:/index.html">';

$link1 = "http://neu.kog-tw-clan.de/index.html";

if (isset($_POST["senden"])) {
}

if (!isset($_POST["vorname"])) {
 echo "Vorname nicht angegeben";
}  

if (!isset($_POST["name"])) {
 echo "Name ist nicht angegeben";
}  


$vorname = $_POST['vorname'];
$name = $_POST['name'];
$email = $_POST['email'];
$homepage = $_POST['homepage'];
$button = $_POST['button'];
$nachricht = $_POST['nachricht'];  
$webmaster = "[email protected]" ;

so und dann immer weiter oder habe ich da eine falsche anordnung?
bitte ergänzen wenn möglich da das mein erstes großes werk von php ist stelle ich mcih wohl ein bisschen dumm an....


mfg marcel
 
okay,
ich habe es jetzt soweit hinbekommen das er die fehlermeldung anzeigt wenn ein feld leer gelassen wird.....
dann dachte ich ich habs geschafft.....

doch:

1. er zeigt mir wenn z.b. email freigelassen wurde, trozdem das alle felder frei gelassen wurde.....

2. auch wenn alle felder richtig eingegeben wurde bekomme ich die gleiche nachricht...

3. also cih bin zwar ein neuling aber ich glaube nicht das das der sinnd er sache ist das er mir die else nciht ausspuckt....

hier mein php code:

PHP:
<?php



if (isset($_POST["senden"])) {

if(isset($vorname) or empty($vorname)) {echo "Vorname nicht angegeben";}  

else
{
echo "dat feld hat den inhalt ";
}

if(isset($name) or empty($name)) {echo "Name ist nicht angegeben";}  

else
{
echo "dat feld hat den inhalt ";
}

if(isset($email) or empty($email)) {echo "Email nicht angegeben";}

else
{
echo "dat feld hat den inhalt ";
}

if(isset($homepage) or empty($homepage)) {echo "Homepage ist nicht angegeben";}

else
{
echo "dat feld hat den inhalt ";
}

if(isset($button) or empty($button)) {echo "button ist nicht angegeben";}

else
{
echo "dat feld hat den inhalt ";
}

if(isset($nachricht) or empty($nachricht)) {echo "Nachricht ist nicht angegeben";}

else
{
echo "dat feld hat den inhalt ";
}
}

else
{

print '<meta http-equiv="refresh" content="5;http:/index.html">';

$link1 = "http://neu.kog-tw-clan.de/index.html";





echo 

$vorname = $_POST['vorname'];
$name = $_POST['name'];
$email = $_POST['email'];
$homepage = $_POST['homepage'];
$button = $_POST['button'];
$nachricht = $_POST['nachricht'];  
$webmaster = "[email protected]" ;




$g_inhalt = "
* * * * * * * * * * * * * * * * * * * * *

Dein angegebener Vorname : $vorname

Dein angegebener Name : $name

Deine angegebene Email Adresse : $email

Deine angegebene HomePage : $homepage

Dein angegebene Button : $button

Deine eingegebene Anfrage : 

$nachricht

* * * * * * * * * * * * * * * * * * * * *
";
$f_nachricht = "
vorname : $vorname
Name : $name
Emailadresse : $email

Homepage : $homepage
Button : $button

Anfrage : $nachricht
";

mail($email,"Wir Haben deine Nachricht erhalten.",$g_inhalt,"From: $webmaster") ;
mail($webmaster,"Die Anfrage von $vorname $name",$f_nachricht,"From: $email") ;



echo "

<br><br><br><br><center>Deine Nachricht wurde erfolgreich gesendet!<br/>
Falls automatische Weiterleitung nicht funktioniert klicken sie bitte <a href=\"".$link1."\">Hier</a></center>";




}




?>
 
Wieso so viel Spaghetti Code?

Erstmal musst du auch die Leerzeichen beim abgeschickten String entfernen. Du kannst dafür ltrim, rtrim oder am besten nur trim (entfernt am Anfang und am Ende Leerzeichen) verwenden.


Erhälst du die E-Mails korrekt? Kann ich mir nicht so ganz vorstellen - schau dir mal auf php-einfach.de die Mail FUnktion an und besonders den Abschnitt mit form.



Ob ein Feld leergelassen worden ist überprüfst du einfach mit einer if anweisung! ->

PHP:
<?php
$vorname = trim($_POST['vorname']);
$name = trim($_POST['name']);
$email = trim($_POST['email']);
$homepage = trim($_POST['homepage']);
$button = trim($_POST['button']);
$nachricht = trim($_POST['nachricht']);  
$webmaster = "[email protected]" ;

if($vorname == "" OR $name == "" OR $email == "" OR $homepage == "" OR $button == "" OR $nachricht == "" OR $webmaster == "")
{
echo 'Bitte f&uuml;llen sie alle Felder aus!';
}
else
{
// Den Restlichen Code hier rein
}
?>
 
Zuletzt bearbeitet:
mhh,
das mit dem trim hört sich gut an...

allerdings wollte ich eigt. für jedes feld einzelnt einefehlermeldung ausgeben....
aber ich denke da es kein anmeldeformular is wird das so auch in ordnung sein....

ich werde es dann glich mal testen und screiben ob es geklappt hat....

und ja ich bekomme eine mail,
genau so wie ich das will,
der der mich konaktieren will erhält auch eine mail um zu sehen was er geschrieben hat...
 
ich bedanke mich für eure mühe.....
jez habe ich nurnoch eine sache.......

das kontakformular wird mit css in einer html datei ausgegeben...
di html datei gibt es ja weiter an die php datei.....
nun möchte ich aber das die fehlermeldung im kontaktformular erscheint und nich auf einer leeren seite.....
ich hoffe ihr versteht was ich meine.....
 
Du kannst auch die Datei die den HTML-Code des Formulars enthält zu einer php-Datei machen und die Verarbeitung des Formulars komplett darin abwickeln. Dann kannst Du auch Fehlermeldungen ausgeben.
 
das würde heißen ich müsste nur den anfang und ende php code in die html datei packen die datei dann in kontakt.php umbenennen?
über den html sachen dann die verarbeitung oder wie?
 
okay ich fange bestimmt langsam an zu nerven.....

aber:
ich habe die ganze zeit versucht und wege erfunden/gesucht die beiden datein(html/php)
zu einer zusammen zu kriegen......
ich habe keine ahnung warum aber es hat nie geklappt....

könntet ihr mir bitte den code umschreiben? für euch ist ds doch bestimmt nciht so schwer und vervenzereißend wie für mich....

ich möchte nur das das script im body der htm,l datei ausgegeben wird und die fehlermeldung ebendso da....
das das style aus den 3 css datein gezogen wird damit es zu den anderen seiten passt......

ich hoffe ihr habt lust mir zu helfen.....

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>1.versuch</title>
<link rel="stylesheet" type="text/css" href="style.css">
<link rel="stylesheet" type="text/css" href="menü.css">
<link rel="stylesheet" type="text/css" href="kontakt.css">
</head>

<body>
<div id="gesamt">

<div id="kopf">
<div id="link"><a href="index.html">Home</a></div>
<div style="text-align:right;background-color:;"><a style="text-decoration:none;border-style:none;color:white;font-family:Verdana, sans-serif;font-size:12px;" target="_blank" href="http://www.schnelle-online.info/Datum-heute.html" id="soidate23683036527">Datum heute</a><font color="white">- </font><a style="text-decoration:none;border-style:none;color:white;font-family:Verdana, sans-serif;font-size:13px;margin-right:15px;" target="_blank" href="http://www.schnelle-online.info/Homepage/Uhr-fuer-die-Homepage.html" id="soitime23683036527">Homepage Uhren</a></div>
<script type="text/javascript">
SOI = (typeof(SOI) != 'undefined') ? SOI : {};(SOI.ac21fs = SOI.ac21fs || []).push(function() {
(new SOI.DateTimeService("23683036527", "DE")).start();});
(function() {if (typeof(SOI.scrAc21) == "undefined") { SOI.scrAc21=document.createElement('script');SOI.scrAc21.type='text/javascript'; SOI.scrAc21.async=true;SOI.scrAc21.src=((document.location.protocol == 'https:') ? 'https://' : 'http://') + 'homepage-tools.schnelle-online.info/Homepage/atomicclock2_1.js';(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(SOI.scrAc21);}})();
</script>

</div>
<div class="menu bubplastic horizontal orange">
    <ul>
        <li><span class="menu_r"><a href="index.html"><span class="menu_ar">Home</span></a></span></li>
        <li><span class="menu_r"><a href=""><span class="menu_ar">Button</span></a></span></li>
        <li><span class="menu_r"><a href=""><span class="menu_ar">Top100</span></a></span></li>
        <li class="highlight"><span class="menu_r"><a href=""><span class="menu_ar"><font color="#ffffff">kontakt</font></span></a></span></li>
    </ul>
    <br class="clearit" />
</div>
<div id="mitte">
<div id="inhalt"> 
<form id="form1" name="form1" method="post" action="kontakt.php">
<fieldset>
<legend>Bitte geben Sie Ihre Kontaktdaten an</legend>
 
  <p><label for="vorname">Vorname:</label> 
  <input type="text" name="vorname" id="vorname" /></p>
  
  <p><label for="name">Name:</label>
  <input type="text" name="name" id="name" /></p>
    
  
   <p><label for="email">Email:</label> 
  <input type="text" name="email" id="email" /></p>
   


<p><label for="homepage">Homepage:</label>
<input type="text" name="homepage" id="homepage" /></p>

<p><label for="button">Button: </label>
<input type="text" name="button" id="button" /></p>

<p><label for="nachricht">Ihre Nachricht:<br /></label>
<textarea name="nachricht" id="nachricht"></textarea>
</p>


 <p><input type="submit" name="senden" id="senden" value="Senden" class="button" />
 <input type="reset" name="löschen" id="löschen" value="Löschen" class="button1" /></p>

 </fieldset>
</form>
</div>
</div>
<div id="fuss"><div id="impressum"><a href="impressum.html">Impressum</a></div><div id="seitenanfang"><a href="index.html">Seiten Anfang</a></div>

</div>







</div>
</body>
</html>

PHP:
<?php



if (isset($_POST["senden"])) {

if(isset($vorname) or empty($vorname)) {echo "Vorname nicht angegeben";}  

else
{
echo "dat feld hat den inhalt ";
}

if(isset($name) or empty($name)) {echo "Name ist nicht angegeben";}  

else
{
echo "dat feld hat den inhalt ";
}

if(isset($email) or empty($email)) {echo "Email nicht angegeben";}

else
{
echo "dat feld hat den inhalt ";
}

if(isset($homepage) or empty($homepage)) {echo "Homepage ist nicht angegeben";}

else
{
echo "dat feld hat den inhalt ";
}

if(isset($button) or empty($button)) {echo "button ist nicht angegeben";}

else
{
echo "dat feld hat den inhalt ";
}

if(isset($nachricht) or empty($nachricht)) {echo "Nachricht ist nicht angegeben";}

else
{
echo "dat feld hat den inhalt ";
}


else
{

print '<meta http-equiv="refresh" content="5;http:/index.html">';

$link1 = "http://neu.kog-tw-clan.de/index.html";





echo 

$vorname = $_POST['vorname'];
$name = $_POST['name'];
$email = $_POST['email'];
$homepage = $_POST['homepage'];
$button = $_POST['button'];
$nachricht = $_POST['nachricht'];  
$webmaster = "[email protected]" ;




$g_inhalt = "
* * * * * * * * * * * * * * * * * * * * *

Dein angegebener Vorname : $vorname

Dein angegebener Name : $name

Deine angegebene Email Adresse : $email

Deine angegebene HomePage : $homepage

Dein angegebene Button : $button

Deine eingegebene Anfrage : 

$nachricht

* * * * * * * * * * * * * * * * * * * * *
";
$f_nachricht = "
vorname : $vorname
Name : $name
Emailadresse : $email

Homepage : $homepage
Button : $button

Anfrage : $nachricht
";

mail($email,"Wir Haben deine Nachricht erhalten.",$g_inhalt,"From: $webmaster") ;
mail($webmaster,"Die Anfrage von $vorname $name",$f_nachricht,"From: $email") ;



echo "

<br><br><br><br><center>Deine Nachricht wurde erfolgreich gesendet!<br/>
Falls automatische Weiterleitung nicht funktioniert klicken sie bitte <a href=\"".$link1."\">Hier</a></center>";




}
}



?>

ich habe echt hin und her probiert, habe versucht alles anzupassen habe nochmal 6 tutorials durchgelesen und so langsam bin ich am ende....

hoffe ihr schafft es damit ich es endlich in betrieb nehmen kann :)

mfg kahly
 
Habs jetzt nur überflogen, aber wenn du willst die Fehlermeldungen auf der selben Seite ausgeben? Den PHP Code kannst du zB nach dem </form> einfügen.
Damit die Eingaben ans selbe Dokument geschickt werden, musst du nur im action="" fologendes einfügen: <?php echo $_SERVER['SCRIPT_NAME']; ?>

Und Das ganze als .php Datei noch abspeichern.
 
okay habe ich gemacht,
scheinte ja zu klappen aber on line 115 bekomme ich einen parse error.....

das ist die spalte wo elso steht...

die else von isset senden.....
 
Das klingt jetzt wenig hilfreich, aber: Der Code ergibt keinen Sinn. Ich wüsste jetzt auch nicht, wo man da ansetzen sollte…

Vielleicht hier:

- Quellensammlung

PS: Code sollte eingerückt werden.
 
Zuletzt bearbeitet:
so nun habe ich endlich ein bisschen was verstanden was ich da überhaup mache und hab den mir logiscten weg benutzt.....

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>1.versuch</title>
<link rel="stylesheet" type="text/css" href="style.css">
<link rel="stylesheet" type="text/css" href="menü.css">
<link rel="stylesheet" type="text/css" href="kontakt.css">
</head>

<body>
<div id="gesamt">

<div id="kopf">
<div id="link"><a href="index.html">Home</a></div>
<div style="text-align:right;background-color:;"><a style="text-decoration:none;border-style:none;color:white;font-family:Verdana, sans-serif;font-size:12px;" target="_blank" href="http://www.schnelle-online.info/Datum-heute.html" id="soidate23683036527">Datum heute</a><font color="white">- </font><a style="text-decoration:none;border-style:none;color:white;font-family:Verdana, sans-serif;font-size:13px;margin-right:15px;" target="_blank" href="http://www.schnelle-online.info/Homepage/Uhr-fuer-die-Homepage.html" id="soitime23683036527">Homepage Uhren</a></div>
<script type="text/javascript">
SOI = (typeof(SOI) != 'undefined') ? SOI : {};(SOI.ac21fs = SOI.ac21fs || []).push(function() {
(new SOI.DateTimeService("23683036527", "DE")).start();});
(function() {if (typeof(SOI.scrAc21) == "undefined") { SOI.scrAc21=document.createElement('script');SOI.scrAc21.type='text/javascript'; SOI.scrAc21.async=true;SOI.scrAc21.src=((document.location.protocol == 'https:') ? 'https://' : 'http://') + 'homepage-tools.schnelle-online.info/Homepage/atomicclock2_1.js';(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(SOI.scrAc21);}})();
</script>

</div>
<div class="menu bubplastic horizontal orange">
    <ul>
        <li><span class="menu_r"><a href="index.html"><span class="menu_ar">Home</span></a></span></li>
        <li><span class="menu_r"><a href=""><span class="menu_ar">Button</span></a></span></li>
        <li><span class="menu_r"><a href=""><span class="menu_ar">Top100</span></a></span></li>
        <li class="highlight"><span class="menu_r"><a href=""><span class="menu_ar"><font color="#ffffff">kontakt</font></span></a></span></li>
    </ul>
    <br class="clearit" />
</div>
<div id="mitte">
<div id="inhalt"> 
<?php
if (isset($_POST["senden"])) {

if(!isset($vorname) or empty($vorname)) {echo "Vorname nicht angegeben";}  

elseif(!isset($name) or empty($name)) {echo "Name ist nicht angegeben";}  

elseif(!isset($email) or empty($email)) {echo "Email nicht angegeben";}

elseif(!isset($homepage) or empty($homepage)) {echo "Homepage ist nicht angegeben";}

elseif(!isset($button) or empty($button)) {echo "button ist nicht angegeben";}

elseif(!isset($nachricht) or empty($nachricht)) {echo "Nachricht ist nicht angegeben";}

else{

print '<meta http-equiv="refresh" content="5;http:/index.html">';

$link1 = "http://neu.kog-tw-clan.de/index.html";





echo 

$vorname = $_POST['vorname'];
$name = $_POST['name'];
$email = $_POST['email'];
$homepage = $_POST['homepage'];
$button = $_POST['button'];
$nachricht = $_POST['nachricht'];  
$webmaster = "[email protected]" ;




$g_inhalt = "
* * * * * * * * * * * * * * * * * * * * *

Dein angegebener Vorname : $vorname

Dein angegebener Name : $name

Deine angegebene Email Adresse : $email

Deine angegebene HomePage : $homepage

Dein angegebene Button : $button

Deine eingegebene Anfrage : 

$nachricht

* * * * * * * * * * * * * * * * * * * * *
";
$f_nachricht = "
vorname : $vorname
Name : $name
Emailadresse : $email

Homepage : $homepage
Button : $button

Anfrage : $nachricht
";

mail($email,"Wir Haben deine Nachricht erhalten.",$g_inhalt,"From: $webmaster") ;
mail($webmaster,"Die Anfrage von $vorname $name",$f_nachricht,"From: $email") ;

}
}

else {
?>
<form id="form1" name="form1" method="post" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>">
<fieldset>
<legend>Bitte geben Sie Ihre Kontaktdaten an</legend>
 
  <p><label for="vorname">Vorname:</label> 
  <input type="text" name="vorname" id="vorname" /></p>
  
  <p><label for="name">Name:</label>
  <input type="text" name="name" id="name" /></p>
    
  
   <p><label for="email">Email:</label> 
  <input type="text" name="email" id="email" /></p>
   


<p><label for="homepage">Homepage:</label>
<input type="text" name="homepage" id="homepage" /></p>

<p><label for="button">Button: </label>
<input type="text" name="button" id="button" /></p>

<p><label for="nachricht">Ihre Nachricht:<br /></label>
<textarea name="nachricht" id="nachricht"></textarea>
</p>


 <p><input type="submit" name="senden" id="senden" value="Senden" class="button" />
 <input type="reset" name="löschen" id="löschen" value="Löschen" class="button1" /></p>

 </fieldset>
</form>


<?php }
?> 




</div>
</div>
<div id="fuss"><div id="impressum"><a href="impressum.html">Impressum</a></div><div id="seitenanfang"><a href="index.html">Seiten Anfang</a></div>

</div>
</div>
</body>
</html>
ich muss sagen es ist genau so wie ich es haben wollte das formular bleibt in der dafür forgesehender box und wenn ein feld frei gelassen wurde kommt eine fehlermeldung,
das mit der leerzeichen prüfung werde ich auch glaich noc reinstzen.....

nun aber noch mein klitzekleines problem,
die fehlermeldung wird nicht unter dem formulat/über den absende button sichtbar sonder n wieder auf einer neuen seite.....

könnt ihr mir da noch einmal helfen????



edit: habe grade nochmal überprüft und noch ein fehler festgestellt.....
egal welches feld ich frei lasse er sagt immer ich habe vorname vergessen ~Lösung gefunden~
 
Zuletzt bearbeitet:
Also, aktuell steht da:

Code:
WENN <Formular abgeschickt> {
    WENN <Eingabefehler> {
        <Fehlerausgabe>
    } SONST {
        <Verschicke E-Mail>
    }
} SONST {
    <Stelle Formular-Eingabemaske dar>
}

Das heißt, die Formular-Eingabemaske wird nur dann ausgegeben, wenn das Formular nicht abgeschickt wurde.
 
ja genau,
als erstes wird ja übeprüft ob abgschickt wude wenn ncih dann wird das formular angezeigt aber wenn abgschick wurde dann wird es bearbeitet das ist doch richtig oder nit?
 
Ja, das kann man so machen.

Ich bezog mich auf diese Aussage:

nun aber noch mein klitzekleines problem,
die fehlermeldung wird nicht unter dem formulat/über den absende button sichtbar sonder n wieder auf einer neuen seite.....

Das liegt an der umrissenen Logik. Wenn ein Fehler in den Eingaben gefunden wird, befindet sich die Code-Ausführung bereits in dem if-Zweig, in dem am Ende die Formular-Eingabemaske selbst nicht mehr dargestellt wird. Das ist die Ursache dessen, was du im zitierten Abschnitt beschreibst.

Du könntest die Formular-Darstellung aus der else-Bedingung rausnehmen:

Code:
WENN <Formular abgeschickt> {
    WENN <Eingabefehler> {
        <Fehlerausgabe>
    } SONST {
        <Verschicke E-Mail>
    }
}

<Stelle Formular-Eingabemaske dar>

Dann würde es aber auch dann dargestellt, wenn die Mail verschickt wird. Wenn du das nicht möchtest, könntest du mit einer Variable arbeiten, die während der Ausführung auf zum Beispiel true oder false gesetzt wird, je nachdem, ob die Eingabemaske auch ausgegeben werden soll.
 
gut das klingt logisch,
ich weis aber nicht ob du alles gelesen has und daher weist das ich keine ahnung von php habe und mir schwer dieses formular erarbeitet habe....
wenn du mir wenigstens noch schreiben könntest wie ich den code ändern mus dami das passiert...
oder vllt auch meinen code s abändern könntest das das so passiert wäre ich dir sehr dankbar...
 
Zurück
Oben