php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.07.2007, 11:29  
Neuer Benutzer
 
Registriert seit: 27.07.2007
Beiträge: 6
akasha
akasha eine Nachricht über ICQ schicken
Standard 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
akasha ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 27.07.2007, 12:34  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Zitat:
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.
KingCrunch ist offline  
Alt 27.07.2007, 12:47  
Neuer Benutzer
 
Registriert seit: 27.07.2007
Beiträge: 6
akasha
akasha eine Nachricht über ICQ schicken
Standard

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.
akasha ist offline  
Alt 27.07.2007, 12:54  
Erfahrener Benutzer
 
Benutzerbild von DER_Brain
 
Registriert seit: 18.04.2005
Beiträge: 1.541
PHP-Kenntnisse:
Fortgeschritten
DER_Brain ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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
DER_Brain ist offline  
Alt 27.07.2007, 13:30  
Neuer Benutzer
 
Registriert seit: 27.07.2007
Beiträge: 6
akasha
akasha eine Nachricht über ICQ schicken
Standard

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>
akasha ist offline  
Alt 27.07.2007, 14:06  
there's only one psycho
 
Benutzerbild von PsychoEagle
 
Registriert seit: 21.08.2007
Beiträge: 1.283
PHP-Kenntnisse:
Anfänger
PsychoEagle ist ein sehr geschätzer MenschPsychoEagle ist ein sehr geschätzer MenschPsychoEagle ist ein sehr geschätzer Mensch
PsychoEagle eine Nachricht über ICQ schicken PsychoEagle eine Nachricht über Skype™ schicken
Standard

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)
PsychoEagle ist offline  
Alt 27.07.2007, 14:14  
Neuer Benutzer
 
Registriert seit: 27.07.2007
Beiträge: 6
akasha
akasha eine Nachricht über ICQ schicken
Standard

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>
akasha ist offline  
Alt 27.07.2007, 14:22  
Erfahrener Benutzer
 
Registriert seit: 21.07.2005
Beiträge: 209
pepe24
Standard

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
pepe24 ist offline  
Alt 27.07.2007, 15:33  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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
phpdummi ist offline  
Alt 27.07.2007, 16:42  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard 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:
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:
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:
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.
nikosch ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Session funktioniert nicht bei session.use_cookies = Off Quagga PHP Tipps 2007 13 13.01.2007 18:27
Session funktioniert im IE nicht, Firefox ohne Probleme havok PHP Tipps 2006 7 14.08.2006 14:05
Lokal funktioniert alles -> auf Server fast nichts PsychoEagle Datenbanken 2 14.08.2006 08:43
schleife funktioniert nicht?! $$$ ThiKool $$$ PHP Tipps 2006 3 18.07.2006 07:52
Nach Einfügugng der Sessions funktioniert mein Program nicht PHP-Fortgeschrittene 1 02.10.2005 06:13
[Erledigt] Upload funktioniert manchmal, manchmal nicht HTML, Usability und Barrierefreiheit 9 29.09.2005 12:32
absolute Pfadangabe bei PHP funktioniert nicht PHP Tipps 2005-2 20 02.09.2005 14:28
Kontakrformular funktioniert nur zum Teil PHP Tipps 2005-2 12 18.07.2005 11:24
script funktioniert nicht. PHP Tipps 2005-2 24 05.07.2005 15:51
Aus Datei lesen und in Datei schreiben.. funktioniert nicht FBI PHP Tipps 2005-2 3 03.07.2005 16:55
Dateien erstellen oder schreiben funktioniert nicht im Web PHP Tipps 2004-2 1 05.12.2004 19:39
[Erledigt] mail() Funktion funktioniert nach ServerBackup nicht mehr PHP-Fortgeschrittene 5 29.10.2004 21:29
Variablen Übergabe in URL funktioniert nicht Server, Hosting und Workstations 3 28.10.2004 12:33
[Erledigt] Upload funktioniert nicht... PHP Tipps 2004 10 21.10.2004 16:11
$row funktioniert nicht, warum? Paulo PHP Tipps 2004 10 22.09.2004 17:22

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
error_msg, \$error_msg\ auf anderer seite ausgeben, $error_msg php, dsr522@yahoo.com, variablenÜbergabe mit golive, <div class=\dsr12\, adobe golive 9 class=\dsr19\, dsr59 html

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:46 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.