Ankündigung

Einklappen
Keine Ankündigung bisher.

Error_msg funktioniert nicht

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Error_msg funktioniert nicht

    Hallo,
    ich habe ein Problem und zwar will ich ein Formular erstellen und desssen Inhalte sollen in einer DB gespeichert werden. Zusätzlich soll eine Error-Meldung kommen wenn die Pflichtfelder nicht ausgefüllt sind.
    Allerdings kommt die Error-Meldung nicht sondern die schon eingetragen Felder werden wieder gelöscht.
    Das da eine "}" zuviel ist habe ich auch schon gesehn aber ohne funktioniert es auch nicht. Wahrscheinlich ist das nur eine Kleinigkeit aber ich beschäftige mich noch nicht sehr lange mit php. danke für eure Hilfe
    Code:
    <?php session_start(); $error_msg	=	'';
    
    if (!isset($_POST['senden_button'] )){                                                 
    	$_REQUEST['titel']			       ='';
    	$_REQUEST['nachname']			 ='';                                               
    	$_REQUEST['vorname']			  ='';                                                 
    	$_REQUEST['telefonnummer']	       ='';                                                 
    	$_REQUEST['emailadresse']		 ='';                                                
    	$_REQUEST['benutzername']		='';                                                
    	$_REQUEST['passwort'] 			    ='';
     	$_REQUEST['gltig_von']		             ='';
    	$_REQUEST['gltig_bis']		              ='';
    	$_REQUEST['p_gltig_von']		    ='';   
    	$_REQUEST['p_gltig_bis']		     = '';  }
                                              
    	else{	                                                 
    	if ($_REQUEST['titel'] 			       == ''){                                                 
    	$error_msg				        .=	'Bitte geben Sie einen Titel ein. Falls kein Titel vorhanden ist bitte "---"  eingeben 
    ';}
    	if ($_REQUEST['nachname'] 		 == ''){                                                 
    	$error_msg				        .=	'Bitte geben Sie einen Nachnamen ein. 
    ';}
    	if ($_REQUEST['vorname'] 		  == ''){                                                 
    	$error_msg				        .=	'Bitte geben Sie einen Vornamen ein. 
    ';}
    	if ($_REQUEST['telefonnummer']	       == ''){
    	$error_msg				         .=	'Bitte geben Sie eine Telefonnummer ein. Falls es keine Telefonnummer vorhanden ist bitte "---" eingeben 
    ';}
    	if ($_REQUEST['emailadresse']	         == ''){
    	$error_msg 			           	.= 'Bitte geben Sie eine Email-Adresse ein. Falls keine Email-Adresse vorhanden ist bitte "---" eingeben 
    ';}
    	if ($_REQUEST['passwort']		    == ''){
    	$error_msg 			           	.= 'Bitte geben Sie ein Passwort ein.
    ';}
    	if ($_REQUEST['gltig_von']	            == ''){
    	$error_msg 			           	.= 'Bitte geben Sie bei "Gltig von" etwas ein.
    ';}
    	if ($_REQUEST['gltig_bis']	             == ''){
    	$error_msg 				        .= 'Bitte geben Sie bei "Gltig bis" etwas ein.
    ';}
    	if ($_REQUEST['p_gltig_von']	           == ''){
    	$error_msg 			                 .= 'Bitte geben Sie bei "Profil Gltig von" etwas ein.
    ';}
    	if ($_REQUEST['p_gltig_bis']	             == ''){
    	$error_msg 			                  .= 'Bitte geben Sie bei "Profil Gltig bis" etwas ein.
    ';}
    
    	
    
    	if ($error_msg == ''){                                                
    		$_SESSION['titel']		      =	$_REQUEST['titel'];
    		$_SESSION['nachname']		=$_REQUEST['nachname'];                                                 
    		$_SESSION['vorname']		 =$_REQUEST['vorname'];                                                 
    		$_SESSION['telefonnummer']    =$_REQUEST['telefonnumer'];                                                 
    		$_SESSION['emailadresse']	=$_REQUEST['emailadresse'];                                                 
    		$_SESSION['passwort']		   =$_REQUEST['passwort'];                                                
    		$_SESSION['benutzername']      =_REQUEST['benutzername'];
    		$_SESSION['gltig_von']	            =$_REQUEST['gltig_von'];
    		$_SESSION['gltig_von']	            =$_REQUEST['gltig_von'];
    		$_SESSION['p_gltig_von']	   =$_REQUEST['p_gltig_von'];                                                
    		$_SESSION['p_gltig_von']	   =$_REQUEST['p_gltig_von'];
    
    	
    
    		
    		header('Location: ../allgemeines.php');} 	
    		else{                                                 
    		echo $error_msg;}}									
    
    ?>
    sorry das es nicht so übersichtlich ist


  • #2
    sorry das es nicht so übersichtlich ist
    Blöd nachgefragt, aber wieso tust du dann nichts dagegen? (btw gibt es hier noch BBCode "php").

    Ich bin ma so frei und sortier dir das ausnahmsweise (So erkenn ich nix ^^)
    PHP-Code:
    <?php
    session_start
    ();
    $error_msg '';

    if (!isset(
    $_POST['senden_button'] )){                                                 
      
    $_REQUEST['titel'] ='';
      
    $_REQUEST['nachname'] ='';                                               
      
    $_REQUEST['vorname'] ='';                                                 
      
    $_REQUEST['telefonnummer'] ='';                                                 
      
    $_REQUEST['emailadresse'] ='';                                               
      
    $_REQUEST['benutzername'] ='';                                               
      
    $_REQUEST['passwort'] ='';
      
    $_REQUEST['gltig_von'] ='';
      
    $_REQUEST['gltig_bis'] ='';
      
    $_REQUEST['p_gltig_von'] ='';   
      
    $_REQUEST['p_gltig_bis'] = '';  }
    else{                                                    
      if (
    $_REQUEST['titel'] == ''){                                                 
        
    $error_msg .= 'Bitte geben Sie einen Titel ein. Falls kein Titel vorhanden ist bitte "---"  eingeben 
    '
    ;
      }
      if (
    $_REQUEST['nachname'] == ''){                                                 
        
    $error_msg .= 'Bitte geben Sie einen Nachnamen ein. 
    '
    ;
      }
      if (
    $_REQUEST['vorname'] == ''){                                                 
        
    $error_msg .= 'Bitte geben Sie einen Vornamen ein. 
    '
    ;
      }
      if (
    $_REQUEST['telefonnummer'] == ''){
        
    $error_msg .= 'Bitte geben Sie eine Telefonnummer ein. Falls es keine Telefonnummer vorhanden ist bitte "---" eingeben 
    '
    ;
      }
      if (
    $_REQUEST['emailadresse'] == ''){
        
    $error_msg .= 'Bitte geben Sie eine Email-Adresse ein. Falls keine Email-Adresse vorhanden ist bitte "---" eingeben 
    '
    ;
      }
      if (
    $_REQUEST['passwort'] == ''){
        
    $error_msg .= 'Bitte geben Sie ein Passwort ein.
    '
    ;
      }
      if (
    $_REQUEST['gltig_von'] == ''){
        
    $error_msg .= 'Bitte geben Sie bei "Gltig von" etwas ein.
    '
    ;
      }
      if (
    $_REQUEST['gltig_bis'] == ''){
        
    $error_msg .= 'Bitte geben Sie bei "Gltig bis" etwas ein.
    '
    ;
      }
      if (
    $_REQUEST['p_gltig_von'] == ''){
        
    $error_msg .= 'Bitte geben Sie bei "Profil Gltig von" etwas ein.
    '
    ;
      }
      if (
    $_REQUEST['p_gltig_bis'] == ''){
        
    $error_msg .= 'Bitte geben Sie bei "Profil Gltig bis" etwas ein.
    '
    ;
      }

      if (
    $error_msg == ''){                                               
        
    $_SESSION['titel'] = $_REQUEST['titel'];
        
    $_SESSION['nachname'] =$_REQUEST['nachname'];                                                 
        
    $_SESSION['vorname'] =$_REQUEST['vorname'];                                                 
        
    $_SESSION['telefonnummer'] =$_REQUEST['telefonnumer'];                                                 
        
    $_SESSION['emailadresse'] =$_REQUEST['emailadresse'];                                                 
        
    $_SESSION['passwort'] =$_REQUEST['passwort'];                                               
        
    $_SESSION['benutzername'] =_REQUEST['benutzername'];
        
    $_SESSION['gltig_von'] = $_REQUEST['gltig_von'];
        
    $_SESSION['gltig_von'] = $_REQUEST['gltig_von'];
        
    $_SESSION['p_gltig_von'] = $_REQUEST['p_gltig_von'];                                               
        
    $_SESSION['p_gltig_von'] = $_REQUEST['p_gltig_von'];
      
        
    header('Location: ../allgemeines.php');
      } else {                                                 
        echo 
    $error_msg;
      }
    }

    ?>
    Naja, paar Sachen schonmal (die möglicherweise, aber necht zwangsläufig mit dem Fehler zu tun haben).
    - Benutze $_REQUEST wirklich nur dann, wenn dir die Quelle egal oder unbekannt ist. Ansonsten benutze lieber direkt $_POST, $_GET usw. (Beim Senden-Button tust dus doch auch )
    - Man sollte auf die superglobalen Variablen nur lesend zugreifen. Das is zwar halb so wild, aber wenn man etwas reinschreibt, ist das gerne eine Fehlerquelle (irgendwann), die man nie wieder findet

    Hmm ... Auf Anhieb find ich nix. Lass dir mal $_POST ausgeben, vielleicht hilft das weiter.
    Nicht jeder Fehler ist ein Bug.

    Kommentar


    • #3
      Danke für den Tipp, habe $_REQUEST durch $_POST ersetzt aber das hat auch nicht geholfen. am Anfang ging es ja auch. Wegen dem Benutzer die Daten sollen nur in der DB gespeichert werden und nicht für eine Anmeldung etc. verwendet werden.

      Kommentar


      • #4
        wie sieht denn allgemeines.php aus? wenn du meinst, dass die "schon eingetragenen felder" wieder gelöscht werden, dann wirst du wohl beim formular selbst auch nen denkfehler dabei haben...


        allgemeines.php

        PHP-Code:
          function givemeavalue($string){
            if(isset($_SESSION[$string])){
              return 'value="'.$_SESSION[$string].'"';
            }
           return true;
          }

        <input type="text" name="BLUB" <?php print givemeavalue("BLUB");?>>
        natürlich musst schaun, dass nur du die funktion aufrufen kann und niemand sonst.. wennst willst kannst auch gleich <input type="text" name="BLUB" <?php if(isset($...) ...?>> schreiben, aber das is dann wieder ned so übersichtlich..


        wenn der session text existiert wird also das value feld beschrieben, ansonsten bleibt es leer..



        lg
        Andi

        Kommentar


        • #5
          also so sieht die allgemeine.php aus
          Code:
          <?php
          session_start();
          include('../inc/db_login.inc.php');
          
          mysql_query("INSERT INTO `tbl_user` (`UID`,`titel`,`nachname`,`vorname`,`emailadresse`,`telefonnummer`,`benutzername`,passwort`,`gltig_von`,`gltig_bis`) VALUES (NULL,'". 
          
          
          
          $_SESSION['titel'] ."','". $_SESSION['nachname'] ."','". $_SESSION['vorname'] ."','---','---')");
          
          ?>
          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
          
          <html xmlns="http://www.w3.org/1999/xhtml">
          
          	<head>
          		<meta http-equiv="content-type" content="text/html;charset=utf-8" />
          		<meta name="generator" content="Adobe GoLive" />
                   <title>test</title>
          		<link href="../css/basic.css" rel="stylesheet" type="text/css" media="all" />
          
          	</head>
          
          	<body bgcolor="#ffffff">
          		
          
          test test</p>
          	</body>
          
          </html>

          Kommentar


          • #6
            Erst mal Hi und Willkommen im Forum

            Wie sieht denn dein gesamtes Formular aus?!

            Zusätzlich ein Tipp:
            Verwende anstatt [code] lieber [php] hier im Forum für deinen Quelltext

            Ich glaube, der Quelltext, den du gepostet hast ist nicht vollständigt bzw nur ein teil deines Formulars. Poste mal das komplette Formular

            Grüße
            Da Psy
            "Weaseling out of things is important to learn. It's what separates us from the animals ... except the weasel." (Homer J. Simpson)

            Kommentar


            • #7
              ok habe aber die Variablen weggelassen
              [php]
              <html xmlns="http://www.w3.org/1999/xhtml">

              <head>
              <meta http-equiv="content-type" content="text/html;charset=utf-8" />
              <meta name="generator" content="Microsoft FrontPage 4.0" />
              <title>neu</title>
              <link href="file:///../css/basic.css" rel="stylesheet" type="text/css" media="all" />
              <style type="text/css" media="all">



              </style>
              </head>

              <body>
              <?php session_start(); $error_msg = '';

              if (!isset($_POST['senden_button'] )){
              $_REQUEST['titel'] = '';
              $_REQUEST['nachname'] = '';
              $_REQUEST['vorname'] = '';
              $_REQUEST['telefonnummer'] = '';
              $_REQUEST['emailadresse'] = '';
              $_REQUEST['benutzername'] = '';
              $_REQUEST['passwort'] = '';
              $_REQUEST['gltig_von'] = '';
              $_REQUEST['gltig_bis'] = '';
              $_REQUEST['p_gltig_von'] = '';
              $_REQUEST['p_gltig_bis'] = ''; }

              else{
              if ($_REQUEST['titel'] == ''){
              $error_msg .= 'Bitte geben Sie einen Titel ein. Falls kein Titel vorhanden ist bitte "---" eingeben
              ';}
              if ($_REQUEST['nachname'] == ''){
              $error_msg .= 'Bitte geben Sie einen Nachnamen ein.
              ';}
              if ($_REQUEST['vorname'] == ''){
              $error_msg .= 'Bitte geben Sie einen Vornamen ein.
              ';}
              if ($_REQUEST['telefonnummer'] == ''){
              $error_msg .= 'Bitte geben Sie eine Telefonnummer ein. Falls es keine Telefonnummer vorhanden ist bitte "---" eingeben
              ';}
              if ($_REQUEST['emailadresse'] == ''){
              $error_msg .= 'Bitte geben Sie eine Email-Adresse ein. Falls keine Email-Adresse vorhanden ist bitte "---" eingeben
              ';}
              if ($_REQUEST['passwort'] == ''){
              $error_msg .= 'Bitte geben Sie ein Passwort ein.
              ';}
              if ($_REQUEST['gltig_von'] == ''){
              $error_msg .= 'Bitte geben Sie bei "Gltig von" etwas ein.
              ';}
              if ($_REQUEST['gltig_bis'] == ''){
              $error_msg .= 'Bitte geben Sie bei "Gltig bis" etwas ein.
              ';}
              if ($_REQUEST['p_gltig_von'] == ''){
              $error_msg .= 'Bitte geben Sie bei "Profil Gltig von" etwas ein.
              ';}
              if ($_REQUEST['p_gltig_bis'] == ''){
              $error_msg .= 'Bitte geben Sie bei "Profil Gltig bis" etwas ein.
              ';}



              if ($error_msg == ''){
              $_SESSION['titel'] = $_REQUEST['titel'];
              $_SESSION['nachname'] = $_REQUEST['nachname'];
              $_SESSION['vorname'] = $_REQUEST['vorname'];
              $_SESSION['telefonnummer'] = $_REQUEST['telefonnumer'];
              $_SESSION['emailadresse'] = $_REQUEST['emailadresse'];
              $_SESSION['passwort'] = $_REQUEST['passwort'];
              $_SESSION['benutzername'] = $_REQUEST['benutzername'];
              $_SESSION['gltig_von'] = $_REQUEST['gltig_von'];
              $_SESSION['gltig_von'] = $_REQUEST['gltig_von'];
              $_SESSION['p_gltig_von'] = $_REQUEST['p_gltig_von'];
              $_SESSION['p_gltig_von'] = $_REQUEST['p_gltig_von'];




              header('Location: ../allgemeines.php');} /* weiter zur nchsten seite */
              else{
              echo $error_msg;}} /* nicht Vollstndig Fehlermeldung bringen*/

              ?>

              <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

              <form action="" method="post" class="dsR514">
              <div class="dsR2" style="position: absolute; top: 0px; left: 0px; -adbe-g: p; left: -320px; top: -120px;background-color: #FFFFE8; layer-background-color: #FFFFE8; border: 0px none #000000;"><div></div>

              <div class="dsR11" style="-adbe-c:c;">Titel</div>
              <div class="dsR12" style="-adbe-c:c;">Nachname</div>
              <div class="dsR13" style="-adbe-c:c;">Vorname</div>
              <div class="dsR14" style="-adbe-c:c;">Telefonnummer</div>
              <div class="dsR15" style="-adbe-c:c;">Email-Adresse</div>
              <div class="dsR16" style="-adbe-c:c;">Benutzername</div>
              <div class="dsR17" style="-adbe-c:c;">Initialpasswort</div>
              <div class="dsR18" style="-adbe-c:c;">Gltig von-bis</div>
              <div class="dsR19" style="-adbe-c:c;">sonstiges</div>
              <div class="dsR20" style="-adbe-c:c;">Profil ist gltig von-bis</div>

              <div>
              <input class="dsR511" type="text" name="titel" value="" size="24" />
              </div>
              <div>
              <input class="dsR512" type="text" name="nachname" value="" size="24" />
              </div>
              <div>
              <input class="dsR513" type="text" name="vorname" value="" size="24" />
              </div>
              <div>
              <input class="dsR514" typw="text" name="telefonnummer" value="" size="24"/>
              </div>
              <div>
              <input class="dsR515" type="text" name="emailadresse" value="" size="24"/>
              </div>
              <div>
              <input class="dsR516" type="text" name="benutzername" value="" size="24"/>
              </div>
              <div>
              <input class="dsR517" type="text" name="passwort" value="" size="24"/>
              </div>
              <div>
              <input class="dsR518" type="text" name="gltig_von" value="" size="24"/>
              </div>
              <div>
              <input class="dsR519" type="text" name="gltig_bis" value="" size="24"/>
              </div>
              <div>
              <input class="dsR521" type="text" name="p_gltig_von" value="" size="24"/>
              </div>
              <div>
              <input class="dsR522" type="text" name="p_gltig_bis" value="" size="24"/>
              </div>
              <div>
              <input class="dsR520" type="Text" name="sonstiges" value="" size="24"/>
              </div>
              <div class="dsR30" style="-adbe-c:c;"> <div align="center"><span class="Stil1">
              <u>Nutzerprofile</u></span></div></div>

              <div class="Stil2" style="-adbe-c:c;">rzte</div>
              <div class="dsR71" style="-adbe-c:c;">Chefarzt</div>
              <div class="dsR72" style="-adbe-c:c;">Oberarzt</div>
              <div class="dsR73" style="-adbe-c:c;">Stationsarzt</div>
              <div class="dsR74" style="-adbe-c:c;">Assistenzarzt</div>
              <div class="dsR75" style="-adbe-c:c;">Arzt in Weiterbildung</div>
              <div class="dsR91" style="-adbe-c:c;"><div align="center"><u>Chirurgie</u></div></div>
              <div class="dsR92" style="-adbe-c:c;"><div align="center"><u>Innere</u></div></div>
              <div class="dsR93" style="-adbe-c:c;"><div align="center"><u>Gynkologie</u></div></div>
              <div class="dsR94" style="-adbe-c:c;"><div align="center"><u>ITS</u></div></div>

              <div>
              <input class="dsR100" type="checkbox" name="ca_chir" value=""/>
              </div>
              <div>
              <input class="dsR101" type="checkbox" name="oa_chir" value=""/>
              </div>
              <div>
              <input class="dsR102" type="checkbox" name="sa_chir" value=""/>
              </div>
              <div>
              <input class="dsR103" type="checkbox" name="aa_chir" value=""/>
              </div>
              <div>
              <input class="dsR104" type="checkbox" name="aw_chir" value=""/>
              </div>
              <div>
              <input class="dsR105" type="checkbox" name="ca_inn" value=""/>
              </div>
              <div>
              <input class="dsR106" type="checkbox" name="oa_inn" value=""/>
              </div>
              <div>
              <input class="dsR107" type="checkbox" name="sa_inn" value=""/>
              </div>
              <div>
              <input class="dsR108" type="checkbox" name="aa_inn" value=""/>
              </div>
              <div>
              <input class="dsR109" type="checkbox" name="aw_inn" value=""/>
              </div>
              <div>
              <input class="dsR110" type="checkbox" name="ca_gyn" value=""/>
              </div>
              <div>
              <input class="dsR111" type="checkbox" name="oa_gyn" value=""/>
              </div>
              <div>
              <input class="dsR112" type="checkbox" name="sa_gyn" value=""/>
              </div>
              <div>
              <input class="dsR113" type="checkbox" name="aa_gyn" value=""/>
              </div>
              <div>
              <input class="dsR114" type="checkbox" name="aw_gyn" value=""/>
              </div>
              <div>
              <input class="dsR115" type="checkbox" name="ca_its" value=""/>
              </div>
              <div>
              <input class="dsR116" type="checkbox" name="oa_its" value=""/>
              </div>
              <div>
              <input class="dsR117" type="checkbox" name="sa_its" value=""/>
              </div>
              <div>
              <input class="dsR118" type="checkbox" name="aa_its" value=""/>
              </div>
              <div>
              <input class="dsR119" type="checkbox" name="aw_its" value=""/>
              </div>


              <div class="Stil3" style="-adbe-c:c;">Medizinisch-Technischer Dienst</div>

              <div class="dsR76" style="-adbe-c:c;">ASD</div>
              <div class="dsR77" style="-adbe-c:c;">ASD-Chirurgie</div>
              <div class="dsR78" style="-adbe-c:c;">ASD-Innere</div>
              <div class="dsR79" style="-adbe-c:c;">ASD-Gynkologie</div>
              <div class="dsR80" style="-adbe-c:c;">OP-Schwester/Pfleger</div>
              <div class="dsR81" style="-adbe-c:c;">NFA-Schwester/Pfleger</div>
              <div class="dsR82" style="-adbe-c:c;">FKD-Schwester/Pfleger</div>
              <div class="dsR83" style="-adbe-c:c;">Stationsschwester/Pfleger</div>
              <div class="dsR84" style="-adbe-c:c;">Hebamme</div>
              <div class="dsR85" style="-adbe-c:c;">Sozialdienst</div>
              <div class="dsR86" style="-adbe-c:c;">StudyNurse</div>
              <div class="dsR87" style="-adbe-c:c;">Hygiene</div>

              <div>
              <input class="dsR120" type="checkbox" name="asd" value=""/>
              </div>
              <div>
              <input class="dsR121" type="checkbox" name="asd_chir" value=""/>
              </div>
              <div>
              <input class="dsR122" type="checkbox" name="asd_inn" value=""/>
              </div>
              <div>
              <input class="dsR123" type="checkbox" name="asd_gyn" value=""/>
              </div>
              <div>
              <input class="dsR124" type="checkbox" name="op_schwester" value=""/>
              </div>
              <div>
              <input class="dsR125" type="checkbox" name="nfa_schwester" value=""/>
              </div>
              <div>
              <input class="dsR126" type="checkbox" name="fkd_schwester" value=""/>
              </div>
              <div>
              <input class="dsR127" type="checkbox" name="sta_schwester" value=""/>
              </div>
              <div>
              <input class="dsR128" type="checkbox" name="hebamme" value=""/>
              </div>
              <div>
              <input class="dsR129" type="checkbox" name="sozialdienst" value=""/>
              </div>
              <div>
              <input class="dsR130" type="checkbox" name="studynurse" value=""/>
              </div>
              <div>
              <input class="dsR131" type="checkbox" name="hygiene" value=""/>
              </div>

              <div class="Stil4" style="-adbe-c:c;">Verwaltung</div>

              <div class="dsR50" style="-adbe-c:c;">Verwaltungsleitung</div>
              <div class="dsR51" style="-adbe-c:c;">Assistent Verwaltungsleitung</div>
              <div class="dsR52" style="-adbe-c:c;">Materialwirtschaft</div>
              <div class="dsR53" style="-adbe-c:c;">Lohnbuchhaltung</div>
              <div class="dsR54" style="-adbe-c:c;">Patientenverwalung</div>
              <div class="dsR55" style="-adbe-c:c;">Medizincontrolling</div>
              <div class="dsR56" style="-adbe-c:c;">IT-Abteilung</div>
              <div class="dsR57" style="-adbe-c:c;">Pflegedienstleitung</div>
              <div class="dsR58" style="-adbe-c:c;">Catering</div>
              <div class="dsR59" style="-adbe-c:c;">Kche</div>
              <div class="dsR60" style="-adbe-c:c;">Pforte</div>
              <div class="dsR61" style="-adbe-c:c;">Haustechnik</div>
              <div class="dsR62" style="-adbe-c:c;">Medizintechnik</div>

              <div>
              <input class="dsR132" type="checkbox" name="vl" value=""/>
              </div>
              <div>
              <input class="dsR133" type="checkbox" name="ass_vl" value=""/>
              </div>
              <div>
              <input class="dsR134" type="checkbox" name="mawi" value=""/>
              </div>
              <div>
              <input class="dsR135" type="checkbox" name="lohnbuchhaltung" value=""/>
              </div>
              <div>
              <input class="dsR136" type="checkbox" name="pat_verwaltung" value=""/>
              </div>
              <div>
              <input class="dsR137" type="checkbox" name="med_controlling" value=""/>
              </div>
              <div>
              <input class="dsR138" type="checkbox" name="it" value=""/>
              </div>
              <div>
              <input class="dsR139" type="checkbox" name="pflegedienstleitung" value=""/>
              </div>
              <div>
              <input class="dsR140" type="checkbox" name="catering" value=""/>
              </div>
              <div>
              <input class="dsR141" type="checkbox" name="kche" value=""/>
              </div>
              <div>
              <input class="dsR142" type="checkbox" name="pforte" value=""/>
              </div>
              <div>
              <input class="dsR143" type="checkbox" name="haustechnik" value=""/>
              </div>
              <div>
              <input class="dsR144" type="checkbox" name="med_technik" value=""/>
              </div>

              <div class="Stil5" style="-adbe-c:c;">Allgemeines</div>
              <div class="dsR21" style="-adbe-c:c;">Abteilungsleiter</div>
              <div class="dsR22" style="-adbe-c:c;">Betriebsrat</div>
              <div class="dsR23" style="-adbe-c:c;">Postfach</div>
              <div class="dsR24" style="-adbe-c:c;">Dienstplan</div>
              <div class="dsR25" style="-adbe-c:c;">Mentoren</div>
              <div class="dsR26" style="-adbe-c:c;">Redaktion</div>
              <div class="dsR27" style="-adbe-c:c;">Darmzentrum</div>
              <div class="dsR28" style="-adbe-c:c;">WLAN-Nuttzer</div>

              <div>
              <input class="dsR145" type="checkbox" name="abteilungsleiter" value=""/>
              </div>
              <div>
              <input class="dsR146" type="checkbox" name="betriebsrat" value=""/>
              </div>
              <div>
              <input class="dsR147" type="checkbox" name="postfach" value=""/>
              </div>
              <div>
              <input class="dsR148" type="checkbox" name="dienstplan" value=""/>
              </div>
              <div>
              <input class="dsR149" type="checkbox" name="mentoren" value=""/>
              </div>
              <div>
              <input class="dsR150" type="checkbox" name="redaktion" value=""/>
              </div>
              <div>
              <input class="dsR151" type="checkbox" name="darmzentrum" value=""/>
              </div>
              <div>
              <input class="dsR152" type="checkbox" name="wlan" value=""/>
              </div>

              <div>
              <input class="dsR503" type="submit" name="senden_button" value="speichern"/>
              </div>
              <div>
              <input class="dsR504" type="reset" name="zurcksetzen_button" value="zurcksetzen"/>
              </div>
              [img]bilder/helios_logo.gif[/img]
              </form>

              </body>

              </html>

              Kommentar


              • #8
                Hallo Akasha,

                noch eine kleine Anmerkung zu $_REQUEST: die stetige verwendung dieser Variable(jedenfalls wenn man nicht genau weiß, was man tut) kann u.U. zu einem SIcherheitsproblem werden, denn der "Übeltäter" kann hier gezielt Variablen überschreiben, die eigentlich aus einer anderen Quelle stammen sollten. (Je nach php.ini- Einstellung, die die Reihenfolge von GET-, POST-, COOKIE-, etc.-Eintragung im Request-array festlegt).

                Also immer gezielt die Quelle auswählen, aus der die Daten kommen sollen. (GET/ POST/ COOKIE...)

                Nun zum Problem. Ergibt sich denn ein Unterschied in der Reaktion wenn du mit der Maus den Button zum Absenden drückst bzw. wenn du nur auf die "ENTER"-Taste drückst?

                Gruß,
                pepe

                Kommentar


                • #9
                  Hallo,

                  zunächst mal ist die Formular Validierung eines der grundlegendsten Themen in Webanwendungen, da hier direkt mit dem User "interagiert" wird.
                  Als ersten Tipp würde ich dir folgendes empfehlen:
                  Fasse alle übergebenen Variablen in einem Array zusammen. Am einfachsten geht dies etwa so:
                  form.html
                  Code:
                  <?xml version="1.0" encoding="utf-8"?>
                  <!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" xml:lang="de">
                    <head>
                      <title>Form-Test</title>
                    </head>
                    <body>
                      <h1>Formular</h1>
                      <form action ="form_validation.php" method="post">
                          <fieldset>
                          <legend>Daten</legend>
                              <input type="text" name="form[name]" />
                              <input type="password" name="form[passwort]" />
                              <input type="submit" name="submit" value="Senden" />
                          </fieldset>
                      </form>
                    </body>
                  </html>
                  form_validation.php
                  PHP-Code:
                  <?php
                  $aData 
                  $_POST["form"];
                  ?>
                  var_dump($aData):
                  Code:
                  array(2) { ["name"]=>  string(0) "" ["passwort"]=>  string(0) "" }
                  Somit lassen sich einzelne Werte mit Hilfe des foreach-Konstrukts ansprechen.
                  Eine grundsätzliche Validierung gegen schädlichen Code könnte folgendermaßen aussehen:
                  PHP-Code:
                  <?php

                  // Include the XSS-Filter function
                  include_once('function_RemoveXSS.php');

                  $aData $_POST["form"];

                  foreach (
                  $aData as $name => $value)
                  {
                      
                  // Leerzeichen am "Rand" des Strings entfernen
                      // Bsp: "   test " -> "test"
                      // XSS entfernen
                      
                  $name trim(RemoveXSS($value));
                  }

                  ?>
                  Die XSS-Filter-Funktion (ausgelagert, da übersichtlicher):
                  function_RemoveXSS.php
                  PHP-Code:
                  <?php
                  /**
                  * PHP XSS (cross site scripting) filter function
                  * [url]http://quickwired.com/smallprojects/php_xss_filter_function.php[/url]
                  */

                  function RemoveXSS($val) {
                     
                  // remove all non-printable characters. CR(0a) and LF(0b) and TAB(9) are allowed
                     // this prevents some character re-spacing such as <java\0script>
                     // note that you have to handle splits with \n, \r, and \t later since they *are* allowed in some inputs
                     
                  $val preg_replace('/([\x00-\x08][\x0b-\x0c][\x0e-\x20])/'''$val);
                     
                     
                  // straight replacements, the user should never need these since they're normal characters
                     // this prevents like <IMG SRC=&#X40&#X61&#X76&#X61&#X73&#X63&#X72&#X69&#X70&#X74&#X3A&#X61&#X6C&#X65&#X72&#X74&#X28&#X27&#X58&#X53&#X53&#X27&#X29>
                     
                  $search 'abcdefghijklmnopqrstuvwxyz';
                     
                  $search .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
                     
                  $search .= '1234567890!@#$%^&*()';
                     
                  $search .= '~`";:?+/={}[]-_|\'\\';
                     for (
                  $i 0$i strlen($search); $i++) {
                        
                  // ;? matches the ;, which is optional
                        // 0{0,7} matches any padded zeros, which are optional and go up to 8 chars
                     
                        // &#x0040 @ search for the hex values
                        
                  $val preg_replace('/(&#[x|X]0{0,8}'.dechex(ord($search[$i])).';?)/i'$search[$i], $val); // with a ;
                        // &#00064 @ 0{0,7} matches '0' zero to seven times
                        
                  $val preg_replace('/(&#0{0,8}'.ord($search[$i]).';?)/'$search[$i], $val); // with a ;
                     
                  }
                     
                     
                  // now the only remaining whitespace attacks are \t, \n, and \r
                     
                  $ra1 = Array('javascript''vbscript''expression''applet''meta''xml''blink''link''style''script''embed''object''iframe''frame''frameset''ilayer''layer''bgsound''title''base');
                     
                  $ra2 = Array('onabort''onactivate''onafterprint''onafterupdate''onbeforeactivate''onbeforecopy''onbeforecut''onbeforedeactivate''onbeforeeditfocus''onbeforepaste''onbeforeprint''onbeforeunload''onbeforeupdate''onblur''onbounce''oncellchange''onchange''onclick''oncontextmenu''oncontrolselect''oncopy''oncut''ondataavailable''ondatasetchanged''ondatasetcomplete''ondblclick''ondeactivate''ondrag''ondragend''ondragenter''ondragleave''ondragover''ondragstart''ondrop''onerror''onerrorupdate''onfilterchange''onfinish''onfocus''onfocusin''onfocusout''onhelp''onkeydown''onkeypress''onkeyup''onlayoutcomplete''onload''onlosecapture''onmousedown''onmouseenter''onmouseleave''onmousemove''onmouseout''onmouseover''onmouseup''onmousewheel''onmove''onmoveend''onmovestart''onpaste''onpropertychange''onreadystatechange''onreset''onresize''onresizeend''onresizestart''onrowenter''onrowexit''onrowsdelete''onrowsinserted''onscroll''onselect''onselectionchange''onselectstart''onstart''onstop''onsubmit''onunload');
                     
                  $ra array_merge($ra1$ra2);
                     
                     
                  $found true// keep replacing as long as the previous round replaced something
                     
                  while ($found == true) {
                        
                  $val_before $val;
                        for (
                  $i 0$i sizeof($ra); $i++) {
                           
                  $pattern '/';
                           for (
                  $j 0$j strlen($ra[$i]); $j++) {
                              if (
                  $j 0) {
                                 
                  $pattern .= '(';
                                 
                  $pattern .= '(&#[x|X]0{0,8}([9][a][b]);?)?';
                                 
                  $pattern .= '|(&#0{0,8}([9][10][13]);?)?';
                                 
                  $pattern .= ')?';
                              }
                              
                  $pattern .= $ra[$i][$j];
                           }
                           
                  $pattern .= '/i';
                           
                  $replacement substr($ra[$i], 02).'<x>'.substr($ra[$i], 2); // add in <> to nerf the tag
                           
                  $val preg_replace($pattern$replacement$val); // filter out the hex tags
                           
                  if ($val_before == $val) {
                              
                  // no replacements were made, so exit the loop
                              
                  $found false;
                           }
                        }
                     }
                     return 
                  $val;
                  }
                  ?>
                  Nun ist der Input schon mal frei von jedwedem Schad-Code.
                  Nun kommt der eigentliche Teil, die Validierung des Formulars. Dazu gibt es verschiedene Ansätze.
                  Ich persönlich bevorzuge die Zuweisung von Filter-Regeln auf PHP Ebene. Somit entfällt eine Zuweisung über Hilf-Tags oder gar im name-Attribut.
                  Dies entspricht nach meinem Verständnis auch weitestgehend dem MVC-Muster.
                  Die Zuweisung würde, wenn man nach diesem Muster Objekt orientiert programmiert, in einem Controller stattfinden.

                  Dazu gibt es in diversen Frameworks bereits fertige Klassen, die du nur noch minimal abändern musst.
                  Eine sehr Populäre Klasse, die auch zur Erzeugung von Formularen verwendet werden kann, ist HTML_QuickForm.
                  Einen guten Einstig in die Klasse findest du unter:
                  http://phpmagazin.de/itr/online_arti...nodeid,62.html
                  HTML_QuickForm

                  Auf den ersten Blick fällt mir bei deiner Anwendung auch kein Fehler auf, außer das du gar kein Ziel angegeben hast.
                  <form action="" method="post" >
                  "Nobody is as smart as everybody" - Kevin Kelly
                  — The best things in life aren't things

                  Kommentar


                  • #10
                    Re: Error_msg funktioniert nicht

                    Hallo Aksha. Auch ich heiße Dich im Forum willkommen.

                    Erstmal etwas allgemeines:
                    Jeder Deiner Beiträge besitzt einen Edit Button, mit dem Du bspw. Änderungen vornehmen kannst um die Du gebeten wirst. Wenn Du siehst, dass die BB Code Formatierung (wie [php] weiter oben) nicht funktioniert, lege ich Dir nahe, das nachträglich zu korrigieren.

                    Zitat von akasha
                    Das da eine "}" zuviel ist habe ich auch schon gesehn aber ohne funktioniert es auch nicht.
                    Php ist eine Programmiersprache und folgt deshalb exakten Syntaxregeln. Ein vergessenes ; oder eine geschweifte Klammer zuviel führt deshalb immer zu einem Fehler und wird nicht einfach ignoriert, wie es bspw. bei html der Fall sein kann.

                    Zitat von akasha
                    Danke für den Tipp, habe $_REQUEST durch $_POST ersetzt aber das hat auch nicht geholfen. am Anfang ging es ja auch. Wegen dem Benutzer die Daten sollen nur in der DB gespeichert werden und nicht für eine Anmeldung etc. verwendet werden.
                    Versuche Deine Fragen und Antworten deutlich auszudrücken. So läufst Du Gefahr, dass Du falsch verstanden wirst und der Thread wird unnötig in die Länge gezogen.

                    Zitat von akasha
                    Error_msg funktioniert nicht
                    $error_msg ist eine Deiner Variablen. Ich wüßt nicht, wie die nicht funktionieren kann. Zum Thema 'funktioniert nicht' wird hier einiges gesagt: http://www.phpfriend.de/forum/ftopic57083.html

                    Zum Problem:
                    Wie immer gilt: Schalte error_reporting auf E_ALL und lass Dir $_POST oder $GLOBALS am Anfang des Scripts bspw. mit var_dump () ausgeben, um das Problem einzugrenzen.
                    --

                    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                    --

                    Kommentar


                    • #11
                      Auf den ersten Blick fällt mir bei deiner Anwendung auch kein Fehler auf, außer das du gar kein Ziel angegeben hast.
                      <form action="" method="post" >
                      also liegt es an dem fehlendem Ziel, habe ich das richtig verstanden. Schon mal sorry für die blöde Frage aber muss da die DB rein oder eine andere Seite.
                      Es geht mir ja nicht unbedingt um die Error_msg für den User aber das Problem ist ja das die Seite immer wieder neu aufgerufen wird und die bereits eingebenen Daten wieder gelöscht werden.
                      Wie gesagt das mit dem $_POST hat auch nicht geklappt besser gesagt es passierte das elbe wie vorher.Außerdem soll das ganze nur intern genutz werden da ist das mit der Sicherheit nicht so wichtig.
                      Es ist egal ob ich "Enter" oder den Sendenbutton drücke die Daten werden wieder gelöscht.[/list]

                      Kommentar


                      • #12
                        Zitat von akasha
                        also liegt es an dem fehlendem Ziel, habe ich das richtig verstanden. Schon mal sorry für die blöde Frage aber muss da die DB rein oder eine andere Seite.
                        Nicht zwingend. So wird das auch nichts. Ich empfehle Dir, ersteinmal das eine oder andere Tutorial zu php und Formualarverarbeitung zu machen. Dieses Forum dient nicht dazu, Grundlagen zu vermitteln.

                        Zitat von akasha
                        Wie gesagt das mit dem $_POST hat auch nicht geklappt besser gesagt es passierte das elbe wie vorher.Außerdem soll das ganze nur intern genutz werden da ist das mit der Sicherheit nicht so wichtig.
                        Es ist egal ob ich "Enter" oder den Sendenbutton drücke die Daten werden wieder gelöscht.[/list]
                        Du must ernsthaft an Deinen Postings arbeiten. Gewöhn Dir an, nicht in Rätseln zu schreiben

                        -Was meint 'das mit dem $_POST'
                        -Was passierte?
                        --

                        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                        --

                        Kommentar


                        • #13
                          Hallo,

                          ich muss schon sagen, reife Leistung! Bist du wirklich so ein "Anfänger", dass du nicht mal diese Basics beherrschst?
                          Wie auch immer, kleiner Einführungskurs in Formulare:
                          Es wird ein Formular in Form einer HTML-Datei erstellt (siehe mein letztes Posting).
                          Sobald auf den "Senden" Button gedrückt wird, leitet das Formular die Eingaben an die Datei weiter, die im Action-Attribut des Form-Tags angegeben wurde.
                          Bsp: <form action="datei.php" ...>
                          Diese Datei wiederum, kann die Eingegebenen Daten verarbeiten. Dazu stellt PHP das sog. $_POST-Array zur Verfügung.
                          In diesem Array sind immer -während der Ausführungszeit von "datei.php"- 2 Werte als 1 Paar gespeichert.
                          Dabei gilt folgende Syntax: $_POST['name'] = Inhalt.
                          Wobei 'name' dem im Formular angegebenen name-Attribut entspricht.
                          Bsp: <input type="text" name="plz" />. Möchte man also auf den Wert des Feldes "plz" zugreifen, spricht man das $_POST-Array folgendermaßen an:
                          $plz = $_POST['plz']; Anstelle von $plz kann natürlich auch jede andere Variable genutzt werden.
                          Bsp: $irgendwas = $_POST['plz'];

                          Möchte man die übergebenen Daten, die während der Laufzeit des Scriptes "datei.php" im $_POST-Array gespeichert sind, in eine Datenbank speichern, muss dies auch während der Laufzeit des Scriptes geschehen!
                          Möchtest du die Daten aber an ein weiteres PHP-Script, nennen wir es mal "datei2.php", weiterleiten, müssen die Daten irgendwo zwischengespeichert werden. (Du hast dazu header(Location: ... verwendet)
                          Denn wir haben ja gelernt, dass sie NUR während der Laufzeit von "datei.php" gespeichert sind - bei einer "Weiterleitung" praktisch nicht mehr existieren.
                          Dieses Problem kann man auf der einen Seite verhindern, indem man gar nicht erst weiterleitet, sondern die Daten in der Datei "datei.php" in die Datenbank schreiben lässt. Oder auf der anderen Seite, wie bereits angesprochen, mit Sessions arbeitet.
                          Ich würde dir fürs erste empfehlen, die Daten direkt in "datei.php" in die Datenbank zu speichern. Sessions kommen dann später.

                          Bitte unbedingt ein ergänzendes Tutorial dazu lesen!!!!!! Beispielsweise dieses hier:
                          http://tut.php-q.net/formulare.html
                          Und nein, es gibt nicht für alles im Leben eine Abkürzung. Manchmal muss man sich auch Dinge aneignen bevor man sie anwendet.

                          *Zensiert*
                          "Nobody is as smart as everybody" - Kevin Kelly
                          — The best things in life aren't things

                          Kommentar


                          • #14
                            Zitat von phpdummi
                            Scheiß die Wand an!
                            Ich glaube hier wurde gerade jemand anders angesch...
                            Beschimpfungen bringen uns auch nicht weiter, ein Hinweis auf die Verhaltensregeln im Forum sollte reichen. Ich hätte es außerdem für sinnvoller gehalten, es bei der Bemerkung 'Arbeite besser erst ein passendes Tutorial durch', zu belassen, ohne die Fakten dann doch wieder im Schnelldurchlauf vorzubeten. Selbst machen ist nämlich der Lernprozess mit der höchsten Erinnerungsquote.
                            --

                            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                            --

                            Kommentar


                            • #15
                              <OT>
                              Das ist keine Beschimpfung! Kennst du nicht die Redensart "****** die Wand an, schmeckt das gut!" oder "Leck mich am ***** ist das lecker!"?
                              Trotzdem hast du recht...
                              </OT>
                              Zitat von nikosch77
                              Ich hätte es außerdem für sinnvoller gehalten, es bei der Bemerkung 'Arbeite besser erst ein passendes Tutorial durch', zu belassen, ohne die Fakten dann doch wieder im Schnelldurchlauf vorzubeten.
                              Auch da hast du wieder recht, trotzdem fand ich den Schnelldurchlauf hilfreich um das Prinzip zu verdeutlichen.
                              Formular => PHP-Script => Ausgabe
                              Ich hoffe "akasha" hat sich das zu Herzen genommen, und befolgt die vielen Ratschläge.

                              Ich habe mir nur an den Kopf gegriffen, da jemand der ein Verwaltungsformular für eine Arztpraxis programmiert, wirklich etwas "können" sollte
                              "Nobody is as smart as everybody" - Kevin Kelly
                              — The best things in life aren't things

                              Kommentar

                              Lädt...
                              X