Formularscript gibt keine Fehlermeldung aus

aleks

Mitglied
Abend Zusammen!
Also ich hab ein Problem mit meinen Anmeldungsscript das ist so ähnlich ist wie dieses Tut:
http://www.tutorials.de/forum/php-tutorials/207714-formular-uberpruefung-mit-fehlerausgabe.html

Ich hatte mal das Script mit Tabellenlayout gebaut da war alles ok. Bloß jetzt bin auf CSS-Layout gewechselt, bloß jetzt gibt es mir keine Fehlermeldungen wenn ich alle Felderausgefühlt sind. Es ruft einfach das Formular noch mal auf(ohne Inhalt). Hier ist jedenfalls der Code: (erist leider ziemlich groß ich bitte das zu entschuldigen)
PHP:
<?php

 print_r($_POST);
 setlocale(LC_ALL, 'DEU');
    $allesok = false;
if(isset($_POST['ueberpruefung'])) 
  {  
    $allesok = true;
  
   if(empty($_POST['login']))
 {
   
   $allesok = 0;
   $error[login]="Bitte Login eingeben <br>";
   $error2[login] = "<b><span style=\"color:red;\">*</span></b>";
 }
 if(empty($_POST['pass1'])&&($_POST['pass2']))
 {
   $allesok = 0;
   
   $error[pass1]="Bitte Password eingeben!<br>";
   $error[pass2]="Bitte Password noch mal eingeben!";
   $error2[pass1] = "<b><span style=\"color:red;\">*</span></b>";
   $error2[pass2] = "<b><span style=\"color:red;\">*</span></b>";
 }
 else
 {
   

    
    if(($_POST['pass1'])==($_POST['pass2']))
    {
	  $allesok = 0;
	  $error[pass1]="Bitte Password eingeben!<br>";
          $error[pass2]="Bitte Password noch mal eingeben!<br>";
   	  $error2[pass1] = "<b><span style=\"color:red;\">*</span></b>";
          $error2[pass2] = "<b><span style=\"color:red;\">*</span></b>";
     
	}
 
  }
  
 if(empty($_POST['vorname']))
 {
  $allesok = 0;
  $error[vorname]="Bitte Vorname eingeben!<br>";
  $error2[vorname] = "<b><span style=\"color:red;\">*</span></b>";
}
else
{
$_POST['vorname']=trim(stripslashes($_POST['vorname']));
$_POST['vorname'] = ucfirst($_POST['vorname']);
$Plotter = "/[a-zA-Z\xC0-\xD6\xD8-\xF6\xF8-\xFF]/Us"; 
	if(!preg_match($Plotter,$_POST['vorname']))
	{
	  $allesok = 0;
	  $error[vorname]="Bitte Vorname eingeben!<br>";
	  $error2[vorname]="<b><span style=\"color:red;\">*</span></b>";
	}
}
  
  // Hier wird geprft ob Vorname leer ist. Ist dies der Fall, wird allesok auf 0 gesetzt (Kein Wert mehr) und ein Fehlertext erstellt, der im Formular ausgegeben wird.
 if(empty($_POST['nachname']))
 {
  $allesok = 0;

  $error[nachname]="Bitte Nachname eingeben!<br>";
  $error2[nachname] ="<b><span style=\"color:red;\">*</span></b>";
}

else
{
$_POST['nachname']=trim(stripslashes($_POST['nachname']));
$_POST['nachname'] = ucfirst($_POST['nachname']);
$Plotter = "/[a-zA-Z\xC0-\xD6\xD8-\xF6\xF8-\xFF]/Us"; 
	if(!preg_match($Plotter,$_POST['nachname']))
	{
	  $allesok = 0;
	  $error[nachname]="Bitte Nachname eingeben!<br>";
	  $error2[nachname]="<b><span style=\"color:red;\">*</span></b>";
	}
}
 // Hier wird geprft ob Nachname leer ist. Ist dies der Fall, wird allesok auf 0 gesetzt (Kein Wert mehr) und ein Fehlertext erstellt, der im Formular ausgegeben wird.

 if(isset($_POST['tag'])&&($_POST['monat'])&&($_POST['jahr']))
 {
   if( @checkdate($_POST['monat'], $_POST['tag'], $_POST['jahr']) ) 
   {
            $timestamp = mktime(0, 0, 0, $_POST['monat'], $_POST['tag'], $_POST['jahr']);
           $timestamp=date('d.m.Y', $timestamp);  

   }  
		else 
		{
		  $allesok=0;
            $error[geburtstag]= "Bitte geben Sie ein korektes Datum an!<br>";
            $error2[geburtstag]="<b><span style=\"color:red;\">*</span></b>";
        }
    
 } 
 else
 {
    $allesok=0;
    $error2[geburtstag]="<b><span style=\"color:red;\">*</span></b>";
	$error[geburtstag]="Bitte ein Datum angeben!<br>";
}  
 
 if(empty($_POST['strasse']))
 {
  $allesok = 0;
  $error[strasse]="Bitte geben Sie eine Strasse ein!<br>";
  $error2[strasse] = "<b><span style=\"color:red;\">*</span></b>"; 
  
}
else
{
$_POST['strasse']=trim(stripslashes($_POST['strasse']));
$_POST['strasse'] = ucfirst($_POST['strasse']);
$Plotter = "/[a-zA-Z\xC0-\xD6\xD8-\xF6\xF8-\xFF]/Us"; 
	if(!preg_match($Plotter,$_POST['strasse']))
	{
	  $allesok = 0;
	  $error[strasse]="Bitte geben Sie eine Strasse ein!<br>";
	  $error2[strasse]="<b><span style=\"color:red;\">*</span></b>";
	}
}
if(empty($_POST['nummer']))
{
  $allesok = 0;
  $error[nummer]="Bitte geben sie eine Hausnummer ein!<br>";
  $error2[nummer] = "<b><span style=\"color:red;\">*</span></b>";
  
}
if(empty($_POST['land']))
 {
  $allesok = 0;
  $error[land]="Bitte geben Sie ein Land ein!<br>";
  $error2[land] ="<b><span style=\"color:red;\">*</span></b>";
}
else
{
$_POST['land']=trim(stripslashes($_POST['land']));
$_POST['land'] = ucfirst($_POST['land']);
$Plotter = "/[a-zA-Z\xC0-\xD6\xD8-\xF6\xF8-\xFF]/Us"; 
	if(!preg_match($Plotter,$_POST['land']))
	{
	  $allesok = 0;
	  $error[land]="Bitte geben Sie ein Land ein!<br>";
	  $error2[land]="<b><span style=\"color:red;\">*</span></b>";
	}
}
  // Hier wird geprft ob PLZ leer ist. Ist dies der Fall, wird allesok auf 0 gesetzt (Kein Wert mehr) und ein Fehlertext erstellt, der im Formular ausgegeben wird.
 if(empty($_POST['plz']))
 {
  $allesok = 0;
  $error[plz]="Bitte geben Sie eine PLZ ein!<br>";
  $error2[plz] = "<b><span style=\"color:red;\">*</span></b>";
  
}
else
{
  $plotter = "/^[0-9]{5}$/";
  if(!preg_match ($plotter,$_POST['plz'])) 
  {
    $allesok = 0;
  $error[plz]="Bitte geben Sie eine PLZ ein!<br>";
  $error2[plz] = "<b><span style=\"color:red;\">*</span></b>";
   
  }
}
  
   // Hier wird geprft ob Ort leer ist. Ist dies der Fall, wird allesok auf 0 gesetzt (Kein Wert mehr) und ein Fehlertext erstellt, der im Formular ausgegeben wird.
 if(empty($_POST['ort']))
 {
  $allesok = 0;
  $error[ort]="Bitte geben sie einen Ort an!<br>";
  $error2[ort] = "<b><span style=\"color:red;\">*</span></b>";
 }
 else
 {
 $_POST['ort']=trim(stripslashes($_POST['ort']));
$_POST['ort'] = ucfirst($_POST['ort']);
$Plotter = "/[a-zA-Z\xC0-\xD6\xD8-\xF6\xF8-\xFF]/Us"; 
	if(!preg_match($Plotter,$_POST['ort'])) 
	{
	  $allesok = 0;
	  $error[ort]="Bitte geben sie einen Ort an!<br>";
	  $error2[ort]="<b><span style=\"color:red;\">*</span></b>";
	} 
 }


 //Hier wird geprft ob Email leer ist. Ist dies der Fall, wird allesok auf 0 gesetzt (Kein Wert mehr) und ein Fehlertext erstellt, der im Formular ausgegeben wird.
  if(empty($_POST['email']))
  {
  $allesok = 0;
  $error[email] = "Bitte Geben Sie eine E-Mail an!<br>";
  $error2[email] = "<b><span style=\"color:red;\">*</span></b>";
  }
  else
  {
    $Plotter="^([0-9a-z]+)([0-9a-z\.-_]+)@([0-9a-z\.-_]+)\.([0-9a-z]+)";
    if(eregi($Plotter,$_POST['email']))
    {

      return TRUE;
    }
    else
    {
        $allesok = 0;
  $error[email]="Bitte geben sie Ihre Email an!<br>";
  $error2[email] = "<b><span style=\"color:red;\">*</span></b>";
    }
  }
  
   if(empty($_POST['bedingungen'])){ 
  $allesok = 0; 
  $error2[bedingungen] = "<b><span style=\"color:red;\">*</span></b>"; 
  $error[bedingungen] = "Sie m&uuml;ssen die Nutzungsbedingungen aktzeptieren!<br>";}
  
    if(empty($_POST['agbs'])){ 
  $allesok = 0;  
  $error[agbs] = "Sie m&uuml;ssen die AGBs aktzeptieren!<br>";
  $error2[agbs] = "<b><span style=\"color:red;\">*</span></b>";
  }
}
 // Hier wird die IF-Bedingung von ganz oben geschlossen.
  

 // Hier wird geprft ob allesok einen Wert hat. (1) Ist dies der Fall, k�nen die Variablen $_POST['name'] und $_POST['email'] weiter verarbeitet werden.
  if($allesok){
    

echo "Alle Ihre Daten wurden aufgenommen.";

  
  }

  // Ist der Wert 1 nicht vorhanden, zeige das Formular.
  else
  {
 

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/>
<title>Dreispaltiges Layout mit Kopf- und Fußzeile</title>

<link rel="stylesheet" href='css/formular_box.css' type="text/css" type='text/opera;charset=utf-8'>
</head>
<body>

<h1>CSS-basierte Layouts</h1>

<form >

<div class="raised"><b class="b1"></b><b class="b2"></b><b class="b3"></b><b class="b4"></b>
<div class="boxcontent">
<div class="inhalt">

<p>
<h4>Bitte alle Felder ausf&uuml;hlen!</h4><?php 
          echo $error['login'];
          echo $error['pass1'];
		  echo $error['pass2'];
		  echo $error['vorname'];
		  echo $error['nachname'];
		  echo $error['geburtstag'];
		  echo $error['strasse'];
		  echo $error['nummer'];
		  echo $error['land'];
		  echo $error['plz'];
		  echo $error['ort'];
		  echo $error['email'];
		  echo $error['bedingungen'];
		  echo $error['agbs'];

?>

</p>
<p></p>
<p ><label for="login"><?php echo $error2['login'];?>Login</label><input type="text" name="login" value="<?php echo $_POST['login'];?>"></p>
<p><label for="pass1"><?php echo $error2['pass1'];?>Passwort</label><input type="text" name="pass1" value="<?php echo $_POST['pass1'];?>" ></p>
<p><label for="pass2"><?php echo $error2['pass2'];?>Passwort bestätigen</label><input type="text" name="pass2" value="<?php echo $_POST['pass2'];?>" ></p>
<p><label for="vorname"><?php echo $error2['vorname'];?>Vorname</label><input type="text" name="vorname" value="<?php echo $_POST['vorname'];?>"></p>
<p><label for="nachname"><?php echo $error2['nachname'];?>Nachname</label><input type="text" name="nachname" value="<?php echo $_POST['vorname'];?>" ></p>
<p><label for="geschlecht">Ich bin </label><select name="geschlecht">
  <?php
  print("<option value=mann>Mann</option>\n");
  print("<option value=frau>Frau</option>\n");
  ?>
  </select></p>
  <p><label for="geschlecht">Ich suche</label><select name="geschlecht2">
  <?php
  print("<option value=mann>Mann</option>\n");
  print("<option value=frau>Frau</option>\n");
  ?>
  </select></p>
  <p><label for="geburtsdatum">Geburtsdatum </label><span class="tag"><select name="tag"  class="tag inhalt">
<?php

    echo'<option value ="'.$_POST['tag'].'"selected>Tag</option> ';
    for( $i=1; $i<=31; $i++ ) {
    if($_POST['tag'] == $i) {
            echo '<option value="'.$i.'" selected>'.$i.'</option>';
    }
      else {
            echo '<option value="'.$i.'">'.$i.'</option>';
    }
    }
?>
</select></span><span class="monat">


<select name="monat" class="monat inhalt">
<?php
    echo'<option value="'.$_POST['monat'].'"selected>Monat</option> ';
        for( $i=1; $i<=12; $i++ ) {
    if($_POST['monat'] == $i) {
            echo '<option value="'.$i.'" selected>'.$i.'</option>';
    }
    else {
            echo '<option value="'.$i.'">'.$i.'</option>';
    }
    }
?>
</select> </span><span class="jahr">



<select name="jahr" class="jahr inhalt">
<?php
    echo'<option value="'.$_POST['jahr'].'"selected>Jahr</option> ';
        $aktuellesJahr = date('Y');
    for($i=($aktuellesJahr - 100); $i<=$aktuellesJahr; $i++ ) {
    if($_POST['jahr'] == $i) {
            echo '<option value="'.$i.'" selected>'.$i.'</option>';
    }
    else {
            echo '<option value="'.$i.'">'.$i.'</option>';
    }
    }
?>
</select> </span>   </p>

<p><label for="strasse"><?php echo $error2['strasse'];?>Strasse</label><input type="text" name="strasse" value="<?php echo $_POST['strasse'];?>" ><span class="text inalt"><label for="nr" class="text" ><?php echo $error2['nummer'];?>Nr.</label></span><span class="textfeld2 "><input type="text" name="nr" value="<?php echo $_POST['nummer'];?>" class="textfeld2 inhalt"   maxlength="5"></span></p>
<p><label for="land"><?php echo $error2['land'];?>Land</label><input type="text" name="land" value="<?php echo $_POST['land'];?>"></p>
<p><label for="plz"><?php echo $error2['plz'];?>PLZ</label><input type="text" name="plz" value="<?php echo $_POST['plz'];?>" ></p>
<p><label for="ort"><?php echo $error2['ort'];?>Ort</label><input type="text" name="ort" value="<?php echo $_POST['ort'];?>" ></p>
<p><label for="email"><?php echo $error2['email'];?>E-Mail</label><input type="text" name="email" value="<?php echo $_POST['email'];?>"></p>

<p><label for="nutzbedingungen"><?php echo $error2['bedingungen'];?>Nutzbedingungen</label><span class="checkbox"><input type="checkbox" name="nutzbedingungen" value="checkbox" class="inhalt checkbox"><?php if(isset($_POST['nutzbedingungen']))
{
 echo " checked"; 
}
?></span><div class="text2"><label class="inhalt text2" for="text1">Ich habe die <a href="bedingungen.html">Nutzungsbedinugungen</a> gelesen und bestätige sie.</label></div></p>

<p><label for="agbs"><?php echo $error2['agbs'];?>AGB's</label><span class="checkbox"><input  class="inhalt checkbox" type="checkbox" name="agbs" value="checkbox" ><?php if(isset($_POST['agbs']))
				  {
				     echo " checked"; 
			      }
?></span><div class="text2"><label class="text2 inhalt " for="text2">*Ich habe die <a href="agbs.html">AGBs</a> gelesen und erkläre mich damit einverstanden.</label></div><p>


</div>
</div>
<b class="b4b"></b><b class="b3b"></b><b class="b2b"></b><b class="b1b"></b>
</div>

<p>
  <input type="hidden" name="ueberpruefung" value="1">
  <input type="submit" name="Anmeldung" value="Weiter" id="button"></p>
</form>

<p class="fusszeile">Diese Fußzeile stellt über die CSS-Eigenschaft 'clear'
   den Elementenfluss wieder her.</p>
<?php
}

?>

</body>
</html>
So hat Jemand ein rat für mich wäre wirklich wichtig! Wie kann ich das Problem beheben ich bin am verzweifeln.:confused:
Danke schon mal imvoraus
Gruß Aleks
 
Hallo nochmal mir ist was in meinem Quelltext augefallen: wenn bei mir die Checkboxen aktivere wird beim nächsten zeigen die Formulars trotzdem die Checkbox ohne Haken gezeigt. Es geht um folgende Quellcode:
PHP:
<p><label for="agbs">AGB's</label><span class="checkbox"><?php echo $error2['agbs'];?><input  class="inhalt checkbox" type="checkbox" name="agbs" value="checkbox" ><?php if(isset($_POST['agbs']))
				  {
				     echo " checked"; 
			      }
?>
So hat Jemand eine Idee wie man das macht damit der Haken übernommen werden?
Wäre wirklich nett wenn hier einen Tipp geben könnte. Danke schon mal.
Gruß Aleks
 
Hallo!

Guckst Du hier.

Ausserdem solltest Du bei class="inhalt checkbox" das Leerzeichen rausnehmen..... müsste eigentlich im CSS Probleme bereiten.

Gruss Dr Dau
 
Danke ,das ist es nicht. Irgendwie hat man mich so ganz richtig verstanden.

Also nochmal:ich habe in diesem Formular zwei Checkboxen. Angenommen ich aktivere sie, aber aber gleichzeitig lasse ich ein Feld frei. So das die Validität mir das Formular wieder zeigt damit ich die nicht ausgefüllten Felder ausfülle. So jetzt es so das bei diesem wiederholten anzeigen des Formulars die Checkboxen aus irgend einem Grund in den Urstand zurück gesetzt werden (also off). Meine Frage ist jetzt wie bekomme ich das hin das Zustand der Checkbox gespeichert und sie beim wiederholten zeigen des Formulars auch ein Häckchen haben( also on).
Wäre nett wenn mir Jemand doch weiter helfen könnte.:rolleyes:
Gruß aleks
 
aleks hat gesagt.:
.....Irgendwie hat man mich so ganz richtig verstanden......
"so ganz richtig" oder "nicht so ganz richtig"?
Du mich auch nicht?!

Dass sollte ein Wink mit dem Zaunpfahl sein.....
SelfHTML hat gesagt.:
Vor oder hinter dem <input>-Tag können Sie den Text notieren, der als Beschriftung der jeweiligen Option erscheint.

Wenn Sie Auswahlmöglichkeiten vorselektieren wollen, dann notieren Sie in dem <input>-Tag der entsprechenden Checkbox das alleinstehende Attribut checked, also z.B.:
<input type="checkbox" name="Kenntnisse_in" value="HTML" checked>

Wenn Sie XHTML-Standard-konform arbeiten wollen, müssen Sie dieses Attribut in der Form checked="checked" notieren.
Bei Checkboxen dürfen Sie mehrere Einträge vorselektieren.
Wo gehört "checked" hin?
Wo hast Du es jetzt?
Egal ob "checked" ausgegeben wird oder nicht, es wird seinen Sinn nicht erfüllen da Du die Ausgabe ausserhalb des <input>-Tags ausgeben lässt.
 
Danke erst mal danke,das ist es nicht.
Wenn ich zum besipiel follgenes angebe:<input type="checkbox" name="Kenntnisse_in" value="HTML" checked>. Dann ist ja die Checkbox im Urzustand mit Häckchen das will ich eben nicht.
So damit es besser verständlich wird was ich will hier noch mal der Code (den ich ein bißchen verändert habe) um welchen es geht:
PHP:
if(empty($_POST['agbs'])){ 
  $allesok = 0;  
  $error[agbs] = "Sie m&uuml;ssen die AGBs aktzeptieren!<br>";
  $error2[agbs] = "<b><span style=\"color:red;\">*</span></b>";
  }
  else
  {
	echo $_POST['agbs'];
  } 
}
und hier hier HTML-Abschnitt dazu:
HTML:
<p><label for="agbs">AGB's</label><span class="checkbox"><?php echo $error2['agbs'];?><input  class="inhalt checkbox" type="checkbox" name="agbs" value="checkbox" ></span><div class="text2"><label class="text2 inhalt " for="text2">*Ich habe die <a href="agbs.html">AGBs</a> gelesen und erkläre mich damit einverstanden.</label></div><p>
Leider funktioniert das nicht wie ich das möchte.
Es soll schlicht und einfach die angeklickte (Häkchen ist gesetzt) Checkbox beim nächsten zeigen des Formular auch gesetzt bleiben. Leider gelingt mir das einfach nicht. Hab doch erbarmen mit mir und helft mir bitte.:rolleyes: Wäre sehr dankbar dafür.
Gruß Aleks
 
Ja ich weis werde mal ändern, trotzdem danke. Es soll ja nicht von vornerein diesen Status haben, sondern der User muß das schon auswählen. Und wie bringe ich das Script dazu nachdem der User es abgehackt hat diesen Haken auch beim nächsten mal gezeigen wird. Hat den niemand eine Idee? Was soll ich bloß den machen? :confused:
Gruß Aleks
 
Zurück