• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Fehlermeldung beheben.

Q-bert

Neues Mitglied
Hallo. Ich schreibe grade einen Login-System in PHP. Wenn ich die $_POST[] in eine variable speichere, Z.B $email = $_POST['email'];, dann kommt eine Fehlermeldung auf der Seite. Das seht ihr unten im Bild. Ich weis, dass diese Meldung deswegen kommt, weil meine Variable noch nicht gefüllt ist. Meine eigentliche Frage ist, wie bekomme ich die weg ? Oder wie verstecke ich die Meldung ? Es sieht später bei einer fertigen Webseite bestimmt nicht schön aus.

<!DOCTYPE>
<html lang = "de">
<head>
</head>
<body>
<?php
function prüfen(){
$email = $_POST['email'];
$passwort = $_POST['pass'];
$db = mysqli_connect("localhost", "root", "", "schuelerlogin");

if(!$db)
{
exit("Verbindungsfehler: ".mysqli_connect_error());
}
$abf = $db->query("SELECT passwort, email FROM login");
while ($zeile = mysqli_fetch_array($abf, MYSQLI_ASSOC)){
if($zeile['passwort'] === $passwort && $zeile['email'] === $email){
$klassenbezeichnung = substr($email, 0, 5);
if ($klassenbezeichnung === "hy602" || $klassenbezeichnung === "HY602"){
header ("Location: hy602.php");
}else {
echo '<div id = "fehlermeldung">';
echo "Diese Klassenbezeichung existiert nicht! Geben sie eine richtige ein!";
echo '</div>';
}
}else {
echo '<div id = "fehlermeldung">';
echo 'Das angegebene Passwort oder die Email-Adresse ist leider Falsch! Versuchen Sie es bitte nochmal!';
echo '</div>';;
}
}
}
echo prüfen();

?>
<form action = "login.php" method = "post">
<input type = "text" name = "email" required><br><br>
<input type = "pass" name = "pass" required><br><br>
<input type = "file" name = "file" required><br><br>
<!-- Durch onclick wird die Funktion prüfen() ausgeführt -->
<input type = "submit" name = "sub" onclick = "prüfen()" ><br><br>
</form>
</body>
</html>
 

Anhänge

  • Screenshot_1.jpg
    Screenshot_1.jpg
    35,8 KB · Aufrufe: 9
Hallo Q-bert,

das ist ganz einfach. Überprüfe vor dem Abruf durch
PHP:
if(!empty($_POST['email']) && !empty($_POST['pass']))
ob die Variablen überhaupt beide gesetzt sind.
Würd mit isset anstatt empty auch gehen aber ich finde es mit empty besser, da es auch, wenn die Variable gesetzt ist, prüft, ob ein Inhalt existiert.
Grüße,
Felixprogram
 
Zuletzt bearbeitet:
Danke Felix für deine Antwort . Vielleicht klingt das Grade dumm von mir , aber wie soll das die Fehler Meldung verbergen ? Dann kommt doch trotzdem die Fehlermeldung, wenn es leer ist oder nicht ?
 
Ach meinst du ich soll das was ich machen wollte , wenn die Variablen voll sind, machen und ansonsten die Variablen füllen ?
 
  1. Eine Funktion sollte nichts ausgeben, sondern Werte zurück liefern.
  2. Du rennst u.U. die ganze Tabelle durch, wenn der User am Ende der Tabelle steht. Nutze Bedingungen.
  3. Du speicherst das Passwort im Klartext, ganz schlechte Idee
  4. Nach der header-Anweisung gehört ein exit
  5. echo prüfen() ist in deinem Fall Quatsch, da deine Funktion keinen Wert liefert
  6. Meide Umlaute bei Variablen- und Funktionsnamen
  7. Wieso willst du einen Upload bei einem Login?
  8. Führe die Funktion nur aus, wenn die Variablen existieren, also if (isset($_POST['email'])) pruefen();
  9. Nutze die Formatierungsmöglichkeiten des Forums, um deinen Quellcode leserlich zu posten
 
Vielen Dank für deine Antwort m.scatello. Ich verstehe die Punkte 2, 4 und 9 nicht.

Ohne echo prüfen() , hat mein onclick nicht funktioniert. Ich weiß auch nicht warum . Nach dem ich Echo prüfen gemacht habe , hat auch mein onclick bei dem Input Tag funktioniert .

Die Umlaute habe ich einfach übersehen

Upload war nur ein Test. Das kommt auf die nächste Seite.

Das mit Passwort ist mir auch klar .
 
Zu 2. Select a,b,c from tabelle where a='hallo'
Zu 4. Unter der Zeile mit header(....) schreibst du exit();
Zu 9. Über dem Eingabefeld hier im Forum hast du eine Buttonleiste, die solltest du dir mal ansehen.

Und was hat echo prüfen() mit JavaScript zu tun?
 
Danke @m.scatello ,
ich konnte, nachdem ich heute früh mit dem Handy online war und nur sehr dürftig Zeit hatte keine Vollständig ausformulierte Erklärung verfassen.
@Q-bert ich hoffe, du konntest nun die Fehlermeldung weg bekommen und viel Glück weiterhin mit deinem Projekt bzw. deiner Seite.
Grüße,
Felixprogram
 
Ich habe wenig Zeit , daher habe ich es mir noch nicht angeguckt. Ich kann aber eure Erklärungen nachvollziehen . Vielen Dank :)
 
Zurück
Oben