Undefined index Post Fehler

Xym

Erfahrenes Mitglied
Hallo erstmal.

Ich hab noch ein Anfänger was PHP angeht und denke das es eine ganz einfache Lösung gibt.
Hab ich mich erstmal an einem einfach Loginsystem versucht.
Hier erstma der Code:
index.php
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<HTML>
<HEAD>
 <TITLE>New Document</TITLE>
</HEAD>
<BODY>

<?php

$status = $_GET['status'];

?>

<h2 align="center"> Bitte einloggen </h2>

<?php

if ($status == "true")
{
   echo "Die Datein sind ok!";
}
elseif ($status == "false")
{
   echo "Die Datein sind falsch!";
}

?>


<form mehtode="post" action="login2.php">
<table align="center">
<tr>
    <td>
        Username;
    </td>
    <td>
        <input type="text" size="20" name="username" value="Username" /> <BR/<BR/>
    </td>
</tr>
<tr>
    <td>
        Password;
    </td>
    <td>
        <input type="password" size="20" name="password" value="password"/> <BR/><BR/>
    </td>
</tr>
<tr>
    <td>
        <input type="submit" value="Einloggen">
    </td>
</tr>
</table>
</form>
</BODY>
</HTML>
login2.php
PHP:
<?php

$username = $_POST['username'];
$password = $_POST['password'];


if ($username == "d" AND $password == "s")
{
   ?><meta hppt-equiv="refresh" content="0; URL=index.php"><?php
}
else
{
    ?><meta hppt-equiv="refresh" content="0; URL=index.php"><?php
}

?>
Und bekomme dann immer diese Fehlermeldung:
Code:
 Notice: Undefined index: username in C:\xampp\htdocs\login2.php on line 3

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

Bitte um eure Hilfe!
 
PHP:
<form mehtode="post" action="login2.php">

Da hat sich wohl ein Tippfehler eingeschlichen, bessere mal mehtode auf method aus.
 
  • Gefällt mir
Reaktionen: Xym
Hi,

abgesehen von dem Tippfehler, solltest du per $_GET oder $_POST einflatternde Werte immer validieren, um unerwartetes Verhalten zu minimieren. Wie? Frage dich "Mit welchen Werte kann ich arbeiten?" und schaue mit Bedingungen, dass nur die durchgehen, ansonsten Fehlermeldungen ausgeben!

Außerdem: Das Attribut vom meta-Tag heißt http-equiv, nicht hppt-equiv.

Best regards
 
  • Gefällt mir
Reaktionen: Xym
abgesehen von dem Tippfehler, solltest du per $_GET oder $_POST einflatternde Werte immer validieren, um unerwartetes Verhalten zu minimieren. Wie? Frage dich "Mit welchen Werte kann ich arbeiten?" und schaue mit Bedingungen, dass nur die durchgehen, ansonsten Fehlermeldungen ausgeben!
Grundsätzlich ist das vollkommen richtig, allerdings wenn man nur mit "==" eigentlich nicht nötig.
Beim Verwenden dieser Daten in Ausgaben oder in MySQL-Abfragen muss man dies aber tun!

Siehe dazu eventuell auch mein Tutorial hier:
Sicherheit in PHP-Codes schaffen
 
Okay login2.php klappt!
Er zeig mir nur den selben Fehler an wenn er $status mit dem Wert $_GET['status'] erstellen soll.
PHP:
 $status = $_GET['status'];

Außerdem ein guter Tipp mit den Verschlüsselungen!
 
Ähm, wo sollte den der Status herkommen? Wenn du am URL keine Statusvariable dranhängen hast ist es nicht verwunderlich das diese nicht gefunden wird.
 
Notice: Undefined index: username in..... kommt daher das deine Variablen nicht abgefragt wurden ob sie auch wirklich inhalt haben.

Probiers mal so:

PHP:
if (isset ( $_POST['username'] )) { $username = $_POST['username']; } 
else { $username = ""; }

if (isset ( $_POST['password'] )) { $password = $_POST['password']; } 
else { $password =""; }

// usw... für alle variablen die du noch so über get oder post abfragst.
 
Zurück