Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Fehlermeldung Undefined index bei check- und selectboxen

Mitglied: UrsusArctos

UrsusArctos (Level 1) - Jetzt verbinden

26.06.2009, aktualisiert 01:14 Uhr, 3610 Aufrufe, 2 Kommentare

Hallo,
und zunächst einmal ein Dankeschön an die Helferlein in diesem Forum im Voraus.

Es geht um eine Fehlermeldung, die ich bei den Selekt- und Checkboxen eines Formulares erhalte.
Grundsätzlich läuft das gesamte Formular in allen Teilen und Funktionen tadellos und ich könnte also durchaus mit der Fehlermeldung leben, aber diese kleine "Notice" ärgert mich einfach und viel schlimmer, ich komme nicht auf eine Lösung.
Ich habe es mal in einem Testformular zusammengefaßt und nachstehend gepostet:
Die Fehlermeldungen lauten:
Für die Selektbox 1
Notice: Undefined index: kdanredeselekt3 in D:\Programme\UsbWebserver\Root\ testform.php on line 31
sowie innerhalb deren Selektfeld gleiches für jeden Wert.
Für die Selektbox 2
erstaunlicherweise keine Meldung, aber der eingestellte Wert wird nach submit nicht übernommen…
Für die Checkbox 1
Notice: Undefined index: dseundagbkenntnis in D:\Programme\UsbWebserver\Root\testform.php on line 59
Hier die komplette Testdatei:
01.
<?php 
02.
 
03.
/************ 
04.
**	testform.php 
05.
** 
06.
**	Formular zum Testen diverser Selekt- und Checkboxen 
07.
**	 
08.
**	Die Boxen sollen ALLE folgendes leisten: 
09.
**	-  nur einfache Auswahlmöglichkeit - keine multiple 
10.
**	-  nach Submit sollen die eingestellten Werte in den Boxen erhalten bleiben, 
11.
**		damit in der Praxis der User - bei Fehlermeldungen - nicht erneut alle Felder 
12.
**		ausfüllen muß 
13.
************/ 
14.
 
15.
// 	error_reporting vor der endgültigen Nutzung im I-Net löschen !!!!! 
16.
	error_reporting(E_ALL); 
17.
//	error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); 
18.
//	error_reporting(E_ERROR | E_WARNING | E_PARSE); 
19.
//	error_reporting(0); 
20.
	 
21.
?> 
22.
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" enctype="multipart/form-data" method="post" name="Kontaktformular"> 
23.
<br> 
24.
<br> 
25.
 
26.
<!--	SELEKTBOXEN	ANFANG	--> 
27.
<!--	Version 3      ANFANG     ok	--> 
28.
<hr1>Selektbox 1</hr><br> 
29.
<?php 
30.
$kdanredeselekt3	=	$_POST['kdanredeselekt3']; 
31.
$selected[$kdanredeselekt3] 	= "selected"; 
32.
?> 
33.
<select id="Input-Selekt-3" name="kdanredeselekt3"><Selektbox 1> 
34.
	<option value="Herr"	<?php echo $selected['Herr']; 	?>  >Herr</option> 
35.
	<option value="Frau"	<?php echo $selected['Frau']; 	?>  >Frau</option> 
36.
	<option value="Firma"	<?php echo $selected['Firma']; 	?>  >Firma</option> 
37.
	<option value="Verein"	<?php echo $selected['Verein']; 	?>  >Verein</option> 
38.
</select> 
39.
<!--	Version 3      ENDE       ok	--> 
40.
<br> 
41.
<br> 
42.
<!--	Version  5	ANFANG		--> 
43.
<hr1>Selektbox 2</hr><br> 
44.
<select id="select-ressort" name ="ressort"> 
45.
    '.(($ressort != 'Verein' && $ressort != 'Informationen' && $ressort != 'Tiergesundheit' && $ressort != 'Service' && $ressort != 'Projekte')?' 
46.
   <option value="Verein" selected="selected">Verein</option>':'').' 
47.
   <option value="Informationen" 	'.(($ressort == 'Informationen')  ? 'selected="selected"' :'').'>Informationen</option> 
48.
    <option value="Tiergesundheit" 	'.(($ressort == 'Tiergesundheit') ? 'selected="selected"' :'').'>Tiergesundheit</option> 
49.
    <option value="Service" 	'.(($ressort == 'Service')	               ? 'selected="selected"' :'').'>Service</option> 
50.
    <option value="Projekte" 	'.(($ressort == 'Projekte')             ? 'selected="selected"' :'').'>Projekte</option> 
51.
</select> 
52.
<!--	Version  5	ENDE		--> 
53.
<!--	SELEKTBOXEN	ENDE	--> 
54.
<br> 
55.
<br> 
56.
<!--	CHECKBOX	ANFANG		--> 
57.
<hr1>Checkbox 1</hr><br> 
58.
<!--	Version 1		ANFANG	ok	--> 
59.
<?php 
60.
$dseundagbkenntnis	=	$_POST['dseundagbkenntnis']; 
61.
$checked[$dseundagbkenntnis] 	= "checked"; 
62.
?> 
63.
<div id="AGB-Kenntnis-Div">Bitte bestätigen Sie die 
64.
Kenntnisnahme der Datenschutzerklärung und der 
65.
AGB * 
66.
<input name="dseundagbkenntnis" value="Kenntnis bestätigt"<?php if (isset($_POST['dseundagbkenntnis'])) echo $checked[$dseundagbkenntnis]; ?> type="checkbox"> 
67.
</div> 
68.
<!--	Version 1		ENDE	ok	--> 
69.
<!--	CHECKBOX		ENDE	--> 
70.
<br> 
71.
<br> 
72.
<!--	BUTTONS	--> 
73.
<div id="Buttons-Div" class="Angaben-Divs"> 
74.
<input id="Button-Abschicken" name="sendenbutton" value="uuuund ab" type="submit"></div> 
75.
</form> 
76.
 
Was ich zu gerne wissen würde ist, weshalb die beiden Variablen überhaupt als (Array?) Index angesprochen werden, das ist doch paradox, denn sie können sowieso nur einen einzigen Wert, nämlich den ausgewählten, annehmen.
Leider habe ich nirgendwo konkrete Hinweise zu diesem kleinen Problem gefunden, deshalb hoffe ich, daß mir in diesem Forum jemand helfen und es mir auch (verständlich ) erklären kann.
Vielen Dank noch einmal für Eure Mühe und Geduld im Voraus,
viele Grüße,
Ursus Arctos, der Eisbär

Nachtrag: Ich sehe gerade, daß sich beim Posten die Codezeilenangaben leicht verschoben haben,
statt der Zeile 31 betrifft es in dieser Ansicht die Zeile 30 und
statt der Zeile 59 betrifft es hier die Zeile 60,
sorry.
Mitglied: dog
26.06.2009 um 01:37 Uhr
Gehen wir das doch mal langsam an:

01.
<select id="select-ressort" name ="ressort"
02.
    '.(($ressort != 'Verein' && $ressort != 'Informationen' && $ressort != 'Tiergesundheit' && $ressort != 'Service' && $ressort != 'Projekte')?' 
03.
   <option value="Verein" selected="selected">Verein</option>':'').' 
04.
   <option value="Informationen" 	'.(($ressort == 'Informationen')  ? 'selected="selected"' :'').'>Informationen</option> 
05.
    <option value="Tiergesundheit" 	'.(($ressort == 'Tiergesundheit') ? 'selected="selected"' :'').'>Tiergesundheit</option> 
06.
    <option value="Service" 	'.(($ressort == 'Service')	               ? 'selected="selected"' :'').'>Service</option> 
07.
    <option value="Projekte" 	'.(($ressort == 'Projekte')             ? 'selected="selected"' :'').'>Projekte</option> 
08.
</select>
Was auch immer du hier gebastelt hast, PHP-Code ist es nicht
Ein Programmiereditor mit Syntax-Highlighting hätte dir das auch verraten

Notice: Undefined index: kdanredeselekt3 in D:\Programme\UsbWebserver\Root\ testform.php on line 31
Das ist auch absolut klar.
Dein $_POST wird ohne jegliche Bedingung aufgerufen. Und $_POST ist nunmal leer, wenn noch kein Formular abgesendet wurde.
Selbiges gilt für deinen zweiten Fehler. Also immer prüfen ob das Formular auch abgesendet wurde:
01.
<?php 
02.
	if(isset($_POST['sendenbutton'])) { 
03.
		$kdanredeselekt3 = $_POST['kdanredeselekt3']; 
04.
05.
?>
Was ich zu gerne wissen würde ist, weshalb die beiden Variablen überhaupt als (Array?) Index angesprochen werden, das ist doch paradox, denn sie können sowieso nur einen einzigen Wert, nämlich den ausgewählten, annehmen.

Ehrlich gesagt verstehe ich dein Problem nicht ganz. $_POST ist ein Array, der als Schlüssel alle Formularfelder enthält und das ist auch das einzig sinnvolle. Ich will dir aber nicht vorenthalten, dass sowas:
01.
$kdanredeselekt3	=	$_POST['kdanredeselekt3'];
auch als ein eigenes Feature von PHP namens register_globals vorhanden ist - und weil das nur Sicherheitslücken produziert hat fliegt es in der nächsten Version von PHP raus.

Dir fehlen da noch einige Grundlagen dazu wie und in welcher Reihenfolge PHP Variablen definiert.

Übrigens ist mir völlig unklar, was du hier basteln wolltest:
<select id="Input-Selekt-3" name="kdanredeselekt3"><Selektbox 1> 
	<option value="Herr"	<?php echo $selected['Herr']; 	?>  >Herr</option> 
	<option value="Frau"	<?php echo $selected['Frau']; 	?>  >Frau</option> 
	<option value="Firma"	<?php echo $selected['Firma']; 	?>  >Firma</option> 
	<option value="Verein"	<?php echo $selected['Verein']; 	?>  >Verein</option> 
</select>
Weder gibt es in HTML ein Element <Selektbox 1> noch erklärt dein Code wo denn $selected['Herr']... herkommen soll.

Weil ich aber so nett bin , hab ich deinen Code mal so umsortiert, dass er gehen sollte (nicht getestet):

01.
<?php 
02.
 
03.
/************ 
04.
**	testform.php 
05.
** 
06.
**	Formular zum Testen diverser Selekt- und Checkboxen 
07.
**	 
08.
**	Die Boxen sollen ALLE folgendes leisten: 
09.
**	-  nur einfache Auswahlmöglichkeit - keine multiple 
10.
**	-  nach Submit sollen die eingestellten Werte in den Boxen erhalten bleiben, 
11.
**		damit in der Praxis der User - bei Fehlermeldungen - nicht erneut alle Felder 
12.
**		ausfüllen muß 
13.
************
14.
 
15.
// 	error_reporting vor der endgültigen Nutzung im I-Net löschen !!!!! 
16.
	error_reporting(E_ALL | E_NOTICE); 
17.
	ini_set('display_errors','On'); 
18.
	 
19.
	$possibleTitles = array('Herr','Frau','Firma','Verein'); 
20.
	$selectedTitle  = NULL; 
21.
	 
22.
	$possibleResorts = array('Informationen','Tiergesundheit','Service','Projekte'); 
23.
	$selectedResort  = NULL; 
24.
	 
25.
	$activeAGBValue = "Ja"
26.
	$isActiveAGB    = false; 
27.
	 
28.
	if(isset($_POST['form_submitted'])) { 
29.
		$errors = 0; 
30.
		 
31.
		if(in_array(@$_POST['title'], $possibleTitles)) 
32.
			$selectedTitle = $_POST['title']; 
33.
		else 
34.
			$errors++; 
35.
			 
36.
		if(in_array(@$_POST['resort'], $possibleResorts)) 
37.
			$selectedResort = $_POST['resort']; 
38.
		else 
39.
			$errors++; 
40.
			 
41.
		if(@$_POST['agb'] == $activeAGBValue
42.
			$isActiveAGB = true; 
43.
		else 
44.
			$errors++; 
45.
			 
46.
		if($errors > 0) { 
47.
			echo "Sie haben Fehler gemacht"
48.
		} else
49.
			//formular weiterverarbeiten... 
50.
51.
		 
52.
53.
	 
54.
?> 
55.
<form action="" enctype="multipart/form-data" method="post" name="Kontaktformular"
56.
	<br> 
57.
	<br> 
58.
	<!--	SELEKTBOXEN	ANFANG	--> 
59.
	<!--	Version 3      ANFANG     ok	--> 
60.
	<hr1>Selektbox 1</hr><br> 
61.
	<select name="title"
62.
<?php foreach($possibleTitles as $title): ?> 
63.
		<option <?php echo (($title == $selectedTitle)? 'selected="selected"' : '') ?>><?php echo $title ?></option> 
64.
<?php endforeach; ?> 
65.
	</select> 
66.
	<!--	Version 3      ENDE       ok	--> 
67.
 
68.
	<br> 
69.
	<br> 
70.
	<!--	Version  5	ANFANG		--> 
71.
	<hr1>Selektbox 2</hr><br> 
72.
	<select id="select-ressort" name ="resort"
73.
<?php foreach($possibleResorts as $resort): ?> 
74.
		<option <?php echo (($resort == $selectedResort)? 'selected="selected"' : '') ?>><?php echo $resort ?></option> 
75.
<?php endforeach; ?> 
76.
	</select> 
77.
	<!--	Version  5	ENDE		--> 
78.
	<!--	SELEKTBOXEN	ENDE	--> 
79.
	<br> 
80.
	<br> 
81.
	<!--	CHECKBOX	ANFANG		--> 
82.
	<hr1>Checkbox 1</hr><br> 
83.
	<!--	Version 1		ANFANG	ok	--> 
84.
	<div id="AGB-Kenntnis-Div"
85.
		Bitte bestätigen Sie die Kenntnisnahme der Datenschutzerklärung und der AGB * 
86.
	<input name="agb" value="<?php echo $activeAGBValue ?>" type="checkbox" <?php echo (($isActiveAGB)? 'checked="checked"' : '') ?>> 
87.
	</div> 
88.
	<!--	Version 1		ENDE	ok	--> 
89.
	<!--	CHECKBOX		ENDE	--> 
90.
	<br> 
91.
	<br> 
92.
	<!--	BUTTONS	--> 
93.
	<div id="Buttons-Div" class="Angaben-Divs"
94.
		<input id="Button-Abschicken" name="form_submitted" value="uuuund ab" type="submit"
95.
	</div> 
96.
</form>
Der Ansatz ist sehr detailliert und wer viel mit Formularen zu tun hat wird sich dafür auch Helper-Funktionen basteln...

Grüße

Max
Bitte warten ..
Mitglied: UrsusArctos
26.06.2009 um 02:54 Uhr
Hallo Max,
vielen Dank für Deine superschnelle Antwort – und das um diese Uhrzeit
Dieses kleine Elaborat ist einfach aus dem Umstand heraus geboren nicht ständig ein ellenlanges Formular "herumschleppen" zu müssen, deshalb baue ich mir für relevante Teile schnell ein kleines Formular, nur um Kleinigkeiten zu testen.
Das war der Grund für meine "Bastelei"…
In diesem Falle waren es, wie ganz oben im Code zu lesen ist, nur zwei kleine Funktionen:
"- nach Submit sollen die eingestellten Werte in den Boxen erhalten bleiben, damit in der Praxis der User - bei Fehlermeldungen - nicht erneut alle Felder ausfüllen muß"
Dieses kleine Formular hatte also nur eine wichtige Aufgabe, nämlich festzustellen, ob die Werte, die in den verschiedenen getesteten Select- und Checkboxen, nach dem Absenden auch in den Feldern erhalten bleiben.
Daher ist dieses Formular natürlich eine Kombination aus HTML und PHP – der Kürze wegen und weil zum Testen überflüssig - eben auch ohne Abfragen.

Wie auch erwähnt läuft das "richtige" Formular tadellos.
Der genannte Fehler trat nur hier auf und ich konnte ihn mir nicht erklären.

DU HAST ABER DAS RICHTIGE STICHWORT GELIEFERT – und ich laufe gerade knallrot an…
Natürlich wird dieses "Script" beim Aufruf durchlaufen, da aber schlicht noch nicht ausgefüllt, bleibt $_POST eben auch noch leer… logisch…

Zitat
Weder gibt es in HTML ein Element <Selektbox 1> noch erklärt dein Code wo denn $selected['Herr']... herkommen soll
Zitat
Na ja, manchmal belegt man Dinge einfach mit einem "ganz persönlichen" Namen, von "Knutschkugel" bis "Selektbox" eben…
Vielen Dank für Deinen Tritt ins verlängerte Rückrat (meine mangelnden Grundlagenkenntnisse), war mal wieder nötig…
Genau wie mir wird es aber vielen anderen auch gehen, "hauptberuflich" ist man als selbständiger Handwerker (bei mir Bootsbau) oder Kleingewerbetreibender gut 10 bis 12 Std täglich mit der Firma beschäftigt. Programmieren wird zu einem Hobby, das man auch fürs Geschäft nutzt, die Scripte sollen "erst mal laufen", mit den Grundlagen will man sich dann später beschäftigen und schließlich werden sie doch vernachlässigt, weil die "bessere Hälfte" ihrerseits über Vernachlässigung klagt…
Aber wer sagt eigentlich, daß der Frosch keine Haare hat…
Vielen Dank noch mal für Deinen Anstoß,
damit werde ich den (überflüssigen) Beitrag schließen.
Viele Grüße,
Ursus Arctos, der Eisbär

Übrigens nutze ich u.A. das Notepad++ v 5.0.3
Bitte warten ..
Ähnliche Inhalte
Monitoring

Nagios Fehlermeldung IndexError: list index out of range

Frage von itazubiiMonitoring4 Kommentare

Hallo zusammen, ich muss über Nagios in mehreren Verzeichnissen auf dem gleichen Server Files auf ihre Existenz überprüfen. dies ...

Festplatten, SSD, Raid

Wiederherstellung Index von RAID 5

Frage von SnoberwolfFestplatten, SSD, Raid6 Kommentare

Hallo, Ich bin Administrator in einem IT-Unternehmen und habe schon öfter mit dem Gedanken gespielt mich in diesem Forum ...

Datenbanken

Index reorg einer MSSQL DB

Frage von Thor01Datenbanken1 Kommentar

Hallo zusammen, kann mir einer erklären wie ich ein REORG einer MSSQL DB mache?

Apache Server

Index Datei von Apache ändern

Frage von FISI-Neuling92Apache Server8 Kommentare

Hallo, vielleicht könnt Ihr mir weiterhelfen =) Seit einigen Tagen habe ich ein kleines Problem wo ich nicht wirklich ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 21 StundenWindows 104 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 1 TagAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 1 TagHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 2 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Windows Netzwerk
Backup über WAN
Frage von petereWindows Netzwerk11 Kommentare

Hallo, ich muss aus einem entfernten WAN (synchrone 1Gbit) Daten sichern. Dabei handelt es sich sowohl um wenige große ...

Hyper-V
Hyper-V mit altem XEON-Server. Was ist falsch?
Frage von LollipopHyper-V11 Kommentare

Hallo Bin etwas frustriert. Kleinbetrieb, ca. 15 PC's, 2 Stk. Server mit einigen virtuellen PC's für Fernwartung, VaultServer für ...