Notice: Undefined index: bei Formular

smyle

Erfahrenes Mitglied
Hallo ich versuche wiedereinmal zu Programmieren.
Und habe ein seltsahmes Problem den ich nicht umgehen kann oder nicht weis wie umgehen.
Vielleicht kann mir jemand hier helfen.

Ich habe folgende Fehlermeldungen:

Notice: Undefined index: username in C:\xampp\htdocs\reg2.php on line 8

Notice: Undefined index: passwort in C:\xampp\htdocs\reg2.php on line 14

Notice: Undefined index: passwort2 in C:\xampp\htdocs\reg2.php on line 19

Notice: Undefined index: Mail in C:\xampp\htdocs\reg2.php on line 24


Hier der Code von Zeile ab Zeile 8 bis 27
PHP:
if($_SESSION['username'] != "")
{
	$textusername = $_SESSION['username'];
	$plzhusernmae = "";
}

if( $_SESSION['passwort'] != "")
{
	$textpasswd = $_SESSION['passwort'];
}

if( $_SESSION['passwort2'] != "")
{
	$textpasswd2 = $_SESSION['passwort2'];
}

if( $_SESSION['Mail'] != "")
{
	$textmail = $_SESSION['Mail'];
}
Hier noch die entprechenden Felder im form:
HTML:
<input type="text" class="text" value="<?php echo $textusername;?>" onFocus="if(this.value=='<?php echo $textusername;?>') <?php echo $plzhusernmae;?>" placeholder="<?php echo $textusername;?>" name="username"/>

<input type="text" class="text" value="<?php echo $textusername;?>" onFocus="if(this.value=='<?php echo $textusername;?>') <?php echo $plzhusernmae;?>" placeholder="<?php echo $textusername;?>" name="username"/>

<input type="password" class="text" value="<?php echo $textpasswd;?>" onFocus="if(this.value=='<?php echo $textpasswd;?>') {this.value=''}" placeholder="<?php echo $textpasswd;?>" name="passwort"/>

<input type="password" class="text" value="<?php echo $textpasswd2;?>" onFocus="if(this.value=='<?php echo $textpasswd2;?>') {this.value=''}" placeholder="Passwort" name="passwort2"/>

Habe somit am Anfange der Seite var_dump($_POST); ausgeführt und folgendes erhalten:
array(7) { ["Name"]=> string(4) "Name" ["Vorname"]=> string(7) "Vorname" ["Adresse"]=> string(7) "Adresse" ["Ort"]=> string(3) "Ort" ["Telefonnummer"]=> string(13) "Telefonnummer" ["Handynummer"]=> string(11) "Handynummer" ["weiter"]=> string(6) "Weiter" }

Somit gehe ich davon aus das eigentlich alles Stimmt.

Das selbe Problem habe ich auch auf meiner Index Seite:


Notice: Undefined index: username in C:\xampp\htdocs\index.php on line 21

Notice: Undefined index: password in C:\xampp\htdocs\index.php on line 23


Die Zeilen 21 bis 23 sehen wie folgt aus:
PHP:
		$username = format($_POST['loginusername']);
		$username = filter($username);				//Sonderzeichen werden aus dem Eingabefeld gefiltert.
		$userpass = format($_POST['loginpassword']);

Was muss ich mache das am Anfang der Homepage diese Fehler nicht mehr angezeigt werden.

Kann mir hier vielleicht jemand helfen?
Oder hatte schon jemand das selbe Problem und weiss wie man das umgehen kann?

Übrigens habe ich das Problem im Internet Explorer 8, so wie auch im Firefox.
Hoffe es kann mir jemand helfen.

Gruss
Smyle
 
Du arbeitest mit $_Session und prüfst oder $_Post gefüllt ist.

Übergibst du die Daten irgendwo von $_POST an $_SESSION bzw. startest du auch irgendwo die Session?
 
Zu den oberen Fehlern:
Du musst einfach nur alle
PHP:
$_SESSION
in
PHP:
$_POST
ändern.

Zu den unteren Fehlern:
Du sölltest noch überprüfen, ob die entsprechenden Variable existiert, mit isset().
 
Zuletzt bearbeitet:
Hallo nchristoph und jannicars

Beim ersten Teil ist es so dass ich eine Index2.php Seite habe bei welcher ich die Session mit session_start(); starten. Durch Include wir danach die reg2.php Datei eingebunden.

Danach übergebe ich die $_Post Einträge der Session.
Beispiel:
PHP:
$_SESSION['username'] = $_POST['username'];

In der Oben erwähnten Index Seite starte ich die Session auch über session_start(); jedoch übergebe ich die Werte nicht einer Session. Sondern ist wirklich so wie im Code angegeben.
PHP:
  $username = format($_POST['loginusername']);
        $username = filter($username);                //Sonderzeichen werden aus dem Eingabefeld gefiltert.
        $userpass = format($_POST['loginpassword']);

Versteht ihr was ich meine?
 
Verstanden, ja.

Nichtsdestotrotz hat man deine Frage doch schon beantwortet:
einfach eine Abfrage hinzufügen, die prüft ob die Indizies überhaupt existieren:

aus:
Code:
if($_SESSION['username'] != "")
{
 xyt ;
}

wird dann:
Code:
if( isset($_SESSION['username']) )
{
 xyz ;
}


Dann gibts auch keine nervigen Hinweise mehr :)
 
@jannicars
Bei der INDEX.php Seite habe ich das ja so gemacht, und erhalte trozdem die Fehlermeldungen.

Ich werde nochmals den Code im reg2.php bearbeiten.
Aber ich denke dass das Problem bestehend bleiben wird.

@Asteria
Werde das mal versuchen. Was aber nur das Problem mit den Session lösen würde. Im Form reg2.php
 
Zuletzt bearbeitet:
Hey Leute

Der Tipp mit
PHP:
if( isset($_SESSION['username']) )
{
 xyz ;
}
hat funktioniert.
Hatte var_dump($_POST); ausgeben lassen und bemerkt das erst etwas im Array steht wenn ich den Button drücke. Und das war auch der Grund für die Fehlermeldungen :S

Manchamal sind es so kleine Sachen die man selber einfach nicht sieht oder einfach nicht Checkt.

Danke für eure Hilfe
 
Das ist auch logisch so, dass erst die Daten ankommen wenn erst was versendet wird(in dem Fall den Button drücken). Und erst dann kann man die Daten halt entgegennehmen.
Da nix abgeschickt wurde, hat halt PHP einen Notice gegeben, dass keine von den POST Variablen existiert.
Dies unterdrückt man halt wie auch schon gesagt mit isset().

Hoffe, dass ich es nochmals gut erklären konnte.
 
Zurück