Login Fehler bei der Index-Seite, beim ersten Aufruf

M

merlin1

Hallo Leute
Es ist sonntag und ich hab eine Frage, bin hier am schreiben von einem Login Feld für eine Prüfung. Die seite wird zum ersten mal im Browser geladen dann bekomme ich diese meldung:

Ihr Name fehlt
Notice: Undefined index: pw in C:\xampp\htdocs\plattenshop\class_seite.php on line 41
Zugang nicht gestattet


Loge ich mich ein ist die Meldung weg, und auch die meldungen " Ihr name fehlt" und zugang nicht gestattet



Hier ist der Code, vlt weis jemand weiter
PHP:
public function Login($login)
	{
		$this->login = $login;
		
		if (!empty($_REQUEST['name'])) print "Wir begrüssen Sie "
		. $_REQUEST['name']. ".\n";

		else
			print " Ihr Name fehlt\n";
		if ($_POST['pw'] == 'sky')
			print "Sie haben Zugang";
	    else
			print "Zugang nicht gestattet";
	   
?>
HTML:
<form action ="<?php $_SERVER['PHP_SELF']; ?>" method="post">
    <p>Anmeldung</p>
    <p>Vorname</p> <input type="text" name="name">
    <br>
    <p>Passwort</p><input type="password"  name="pw" />
    <br>
    <input name="Senden" type="submit" value="Login">
    <input name="Zurücksetzen" type="reset" value="Abbrechen">
    
   
  </form>
Danke im vorraus
 
Hallo,

Dies ist eigentlich auch klar, weil beim Zweiten Mal kein Post-Request (pw) mehr existiert.
Um den Fehler zu vermeiden musst du vorher prüfen ob die Variable/Post auch existiert.

Also einfach

statt:
PHP:
 if ($_POST['pw'] == 'sky')

PHP:
 if ((isset($_POST['pw']) && ($_POST['pw']== 'sky'))

Und noch was:

Das Namensrequest muss auch umgeschrieben werden.

Statt
PHP:
if (!empty($_REQUEST['name']))

PHP:
if (isset($_POST['name']))

Und die Ausgabe:
PHP:
$_POST['name']
 
Hi Leute
Danke für die Antworten, ja stimmt den Beitrag hatte ich zweimal geschrieben wusste nicht ob ich richtig war.

ok habe das umgesetzt. der Fehler ist weg. genial.

Nun steht beim ersten aufruf der seite
noch das hier da

Ihr Name fehlt , Leider ist der Zugang nicht gestattet

vlt kann noch mal jemand darüber schauen. Irgendwie fehlt da noch was, das diese meldung nicht verwendet wird?

Danke im Vorraus.
Gruss Merlin1


PHP:
public function Login()
	{
		
		if(isset($_POST['name'])) 
		
		print "Wir begrüssen Sie "
		.$_POST['name']. ".\n";

		else
			print " Ihr Name fehlt\n";
		
		if ((isset($_POST['pw']) && ($_POST['pw'] == 'sky'))) 
			print " , Sie haben Zugang";
	    else
			print ", Leider ist der Zugang nicht gestattet";
HTML:
<form action ="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <p>Anmeldung</p>
    <p>Vorname</p> <input type="text" name="name">
    <br>
    <p>Passwort</p><input type="password"  name="pw" />
    <br>
    <input name="Senden" type="submit" value="Login">
    <input name="Zurücksetzen" type="reset" value="Abbrechen">
    
   
  </form>
 
Ruf die Login()-Methode nur dann auf, wenn $_POST['name'] oder so gesetzt ist. Das heißt, wenn das Formular abgeschickt wurde.
 
Zurück