Warum keine Fehlerausgabe

hume1991

Erfahrenes Mitglied
Guten Tag zusammen,

warum wird in meiner Bedingung kein Fehler ausgegeben, hab ich etwas übersehen? Oder ist die Datenbank falsch eingestellt?

PHP:
$sql = 'SELECT *  FROM `passwort` `pass` LIMIT 0, 30';
$ergebniss = mysql_query($sql);
$row = mysql_fetch_object ($ergebniss);
$passwort = $row->pass;




if ($_POST['send'] == TRUE)
{
if (empty($_POST['schutz']) == TRUE
or ($_POST['schutz']) != $passwort);
{
echo "<p class=\"fehler2\" Falsches Passwort!</p>";
}
}


   ob_end_flush();
 
item: Wie ich sehe ist Code-Formatierung immer noch ein Glückspiel.

item: Lass dir mal mit var_dump() die Variablen $_POST und $passwort ausegeben

item: Anmerkung: du prüfst nicht auf das Passwort des Users sondern einfach auf das erst beste Passwort in der Tabelle.

item: Hast du weiter oben auch ein ab_start()?;
 
item: Wie ich sehe ist Code-Formatierung immer noch ein Glückspiel.

Ja, da hast du schon recht. Diese Einrückungen habe ich schon ewig, ansonsten kenn ich mich nicht mehr aus.
Ich hoffe ich kann mir dies mal abgewöhnen.

Hast du weiter oben auch ein ab_start()?;

Meinst du nicht
PHP:
ob_start();
?

Var_dump gibt folgenden Wert zurück

string(10) "NmdEYv1o7t"
 
Nein - das stimmt so nicht.
Das gibt einen Array zurück in dem mindestens ein Eintrag für 'schutz' und 'send' vorhanden sein soll. Aber es gibt sicher mehr zurück als den Wert.
Und was hast du eingegeben? Dasselbe wie in der DB steht?

Ich frage nicht aus Spass am Fragen sondern um herauszufinden wo das Problem ist. Wenn ich aber alles aus deiner Nase ziehen muss und zig mal nachhaken muss, dann kann es sein, dass ich die Lust daran verliere.
 
Nein - das stimmt so nicht.
Das gibt einen Array zurück in dem mindestens ein Eintrag für 'schutz' und 'send' vorhanden sein soll. Aber es gibt sicher mehr zurück als den Wert.
Und was hast du eingegeben? Dasselbe wie in der DB steht?

Ich frage nicht aus Spass am Fragen sondern um herauszufinden wo das Problem ist. Wenn ich aber alles aus deiner Nase ziehen muss und zig mal nachhaken muss, dann kann es sein, dass ich die Lust daran verliere.

Ok, liefere dir alle Informationen:

PHP:
var_dump($_POST['schutz']);
Ausgabe string(0) ""

PHP:
var_dump($_POST['send']);
Ausgabe string(1) "1"

PHP:
var_dump ($passwort);
Ausgabe string(10) "NmdEYv1o7t"

Edit: Nachtrag nein ich habe nur auf dem Button abgesendet gedrück ohne einen Wert eingetragen zu haben. Passwort $passwort ist identisch wie Datenbank
 
Zuletzt bearbeitet:
Du hast dank deiner Schreibweise wieder mal ein ; zu viel. Genau dort wo ich es dir schon in deinem letzten Thread geschrieben habe.
Es ist mir aber auch erst beim formatieren aufgefallen.

Aber nochmals zurück zum Thema. Du sendest und gibst das gleiche Passwort ein wie in der DB. Also genau so wie ein Login sein sollte. Ergo sollte doch keine Fehlermeldung kommen oder?
 
Du hast dank deiner Schreibweise wieder mal ein ; zu viel. Genau dort wo ich es dir schon in deinem letzten Thread geschrieben habe.
Es ist mir aber auch erst beim formatieren aufgefallen.

Kommt nicht dabei dass gleiche Ergebniss raus?

Aber nochmals zurück zum Thema. Du sendest und gibst das gleiche Passwort ein wie in der DB. Also genau so wie ein Login sein sollte. Ergo sollte doch keine Fehlermeldung kommen oder?

Also erst wird überprüft ob er dass Feld ausgefüllt hat, sollte es leer sein dann Fehler sowie falsches Passwort Fehler.
Ist es dass identische Passwort sollte weitergeleitet werden, habe es nochmal erweitert.

PHP:
<?php

$sql = 'SELECT *  FROM `passwort` `pass` LIMIT 0, 30';
$ergebniss = mysql_query($sql);
$row = mysql_fetch_object ($ergebniss);
$passwort = $row->pass;




if ($_POST['send'] == TRUE){
if (empty($_POST['schutz']) == TRUE
or ($_POST['schutz']) != $passwort);{
echo "<p class=\"fehler2\" Falsches Passwort!</p>";
}
}

if ($_POST['schutz']) == $passwort; {
    //Weiterleitung
}


   ob_end_flush();


 ?>
 
Nein! Es ist nicht dasselbe. Mit dem ; schleisst du die if-Schleife ab. Das nach dem ; wird so oder so ausgegeben
kleiner Test
PHP:
if('foo' === 'bar');{echo "ausgabe";}  //'ausgabe' wird ausgegeben
if('foo' === 'bar'){echo "ausgabe";}    //keine Ausgabe

Und was soll diese Zeile bezwecken?
PHP:
if ($_POST['schutz']) == $passwort;{

Bissher sind fast alle deine Fehler wegen falschen Klammern und ; an falschen Orten. Überleg dir wo die Klammern hingehören.
 
Zurück