myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Webmaster Talk > Entwicklung & Programmierung
Seite neu laden

Wie bekomme ich diesen PHP Fehler weg???

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 23.01.12, 13:27   #1
Funky StylzZz
Gullyaner
 
Registriert seit: Oct 2010
Beiträge: 53
Bedankt: 14
Funky StylzZz ist noch neu hier! | 0 Respekt Punkte
Standard Wie bekomme ich diesen PHP Fehler weg???

Hallo Liebe Mygully gemeinde,


Ich habe gerade an einem kleinem "einloggs*****" für einene kurs an meiner schule geschrieben.(er dient daher nur zu anschauunsgzwecken und zb. die sicherheit wird kkomplett vernachlässigt.)

Ih habe diesen Quellcode:


PHP-Code:
<?php
session_start
();
$benutzername $_POST['benutzername'];
$kennwort     $_POST['kennwort'];

echo 
"Test: Benutzername: $benutzername <br />";
echo 
"Test: Kennwort: $kennwort <br />";

if ( 
$benutzername == "Tom" AND "123" == $kennwort )
{
    echo 
"Sie sind eingeloggt.";
}


?>

<form action="einloggen.php" method="post">
Benutzername:<br />
<input type="text" name="benutzername"  />
<br />
Kennwort:<br />
<input type="password" name="kennwort" />
<br />
<input type="submit" value="einloggen" />
</form>
Er ist zwar noch cnith ganz fertig aber der feher der sich mir in den wge stellt hat cnihts damit zu tun das er nciht ferttig ist und zwar wenn ich das ganze jetzt mittels php parsne lassen also ausführe bekomme ich wie im quellcode geschrieben meine textboxen un den submit button aber über dem ganzen stehen 2 Fehler


Fehler:
Code:
Notice: Undefined index: benutzername in C:\xampp\htdocs\Einloggs*****\einloggen.php on line 3

Notice: Undefined index: kennwort in C:\xampp\htdocs\Einloggs*****\einloggen.php on line 4
Wie kann ich das problem beheben denn in einem vbideo wo ich den code her habe benutz er dne selben code und hat keineen fehler???Liegt es an der php version ich weis es leider nciht.


MFG Tom
Funky StylzZz ist offline   Mit Zitat antworten
Ungelesen 23.01.12, 18:29   #2
sysi
Anfänger
 
Registriert seit: Jun 2010
Beiträge: 43
Bedankt: 14
sysi ist noch neu hier! | 0 Respekt Punkte
Standard

Du überprüfts immer die Post Variable. Wenn du allerdings noch nichts abgeschickt hast so ist diese leer was zu dem von dir beschriebenen Fehler führt.

Pack den PHP teil nach dem Session_start() in ein if(exists($_POST ... und in den Else zweig eine Session variable die du dir bei erfolgreichem einloggen setzt dann bist du erstmal ohne Fehler
sysi ist offline   Mit Zitat antworten
Ungelesen 23.01.12, 20:53   #3
Thelvan
Erfahrenes Mitglied
 
Registriert seit: Jul 2010
Beiträge: 489
Bedankt: 236
Thelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt Punkte
Standard

Das er im Video das nicht angezeigt bekommt ist eine PHP Einstellung, das liegt daran, dass diese Variablen noch nicht gesetzt sind, musst du vorher mit ISSET überprüfen.

[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
Thelvan ist offline   Mit Zitat antworten
Ungelesen 23.01.12, 23:22   #4
Vexxer
Anfänger
 
Registriert seit: Jul 2009
Beiträge: 30
Bedankt: 26
Vexxer ist noch neu hier! | 0 Respekt Punkte
Standard

Saubere Methode:
Variablen Prüfen bevor du sie verwendest. isset oder if(!empty($variable)).

Unsaubere Methode:
@$benutzername = $_POST['benutzername'];
@$kennwort = $_POST['kennwort'];

Unterdrückt die Fehlerausgabe.

Ansonsten könnte noch sein... bin mir nicht ganz sicher, ist schon ein bisschen her... Debug Level zu hoch gedreht. Solche Fehler kann man glaub ich in der PHP.ini abschalten.
Vexxer ist offline   Mit Zitat antworten
Ungelesen 24.01.12, 02:21   #5
kkhamburg
Profi
 
Benutzerbild von kkhamburg
 
Registriert seit: May 2009
Ort: riding the roos
Beiträge: 1.468
Bedankt: 1.057
kkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punkte
Standard

Also erstmal ist das kein Fehler sondern "nur" eine Notice, die dich auf eine unsaubere Programmierung aufmerksam macht.

Es gibt grundsätzlich zwei Möglichkeiten, diese Notice los zu werden.

1. Die ebenfalls unsaubere Methode diese durch setzen von @ oder Error-Reporting zu unterdrücken.
Kann man machen, sollte man aber nicht.

2. Wie schon beschrieben das Abfangen der POST-Variablen mit isset, dann kommt auch keine Notice mehr und der Code ist sauber.

$benutzername = (isset($_POST['benutzername'])) ? $_POST['benutzername'] : "";
$kennwort = (isset($_POST['kennwort'])) ? $_POST['benutzername'] : "";

Du kannst das Ganze sogar noch erweitern und direkt abfragen ob die Inhalte dem entsprechen was du zum einloggen haben willst:

$benutzername = (isset($_POST['benutzername']) && $_POST['benutzername'] == "Tom") ? $_POST['benutzername'] : "";

Am Rande sei noch erwähnt das man des sauberen Stils wegen eigentlich immer die Variable mit dem Inhalt vergleicht und nicht umgekehrt.
Und nur davon, das du eine Session startest und einen Benutzernamen und Kennwort abfragst ist man auch noch nicht "eingeloggt", was immer das an dieser Stelle bedeuten mag.

Zum "einloggen" gehört dann schon mindestens ein Parameter, den du in die Session schreibst, denn spätestens wenn du auf eine weitere Seite verzweigst ist das schöne einloggen wieder weg.

BTW. Geht es nur mir so ? Ich finde die grössten Fehler könnte man aus seinem Anfrage-Post ruhig mal rausnehmen, sofern es sich um Buchstaben-Dreher handelt. Du schmierst hier einen Post hin und erwartest daraufhin Hilfe.
Ich will hier gar keine Diskussion zu Rechtschreibung beginnen aber zumindestens Mühe könnte man sich doch geben wenn man Hilfe erwartet.
__________________

[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]


kkhamburg ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:08 Uhr.


Sitemap

().