Else Anweisung wird ignoriert? (Anfängerfrage)

  • Hallo,

    Ich habe eine ganz simple Passwort abfrage für eine PHP Seite im Internet gefunden. Wenn das PW richtig ist wird man auf eine andere PHP Datei weiter geleitet aber wenn es falsch ist passiert garnichts. Das ist das Problem. Da hätte ich gerne das in auf der Seite ein Schriftzug ausgegeben wird so wie "Das eingegebene Passwort ist nicht korrekt".

    Erstmal das Script bisher:

    Ich glaub das Prinzip ist klar. Aber wie kann ich nun bei Falscheingabe einen Fehler ausgeben?? Normalerweise doch bei dem else ganz unten?! Ich habe es folgendermaßen ausprobiert aber man wird sofort weitergeleitet auf die Header Location Seite:


    Wie könnte ich dieses Problem lösen? Bin leider totaler Anfänger in PHP. Hoffe ihr könnt mir helfen! Vielen Dank schonmal :)

  • Hm, bin grad ein wenig müde, daher spekulieren wir mal nur.
    Ist das sicher die richtige Datei bzw. wird der Inhalt richtig ausgelesen?

    Probier mal bitte folgenden Code und sage mir was dabei rauskommt.
    Gut wäre auch, wenn du mal bitte sagst, wie die Datei passwort_eI7shaFF.txt aufegebaut ist.
    Steht da nur das Passwort drin, oder noch etwas anderes?

    An dieser Stelle muss ich leider anmerken, dass der Schutz nicht der beste ist, aber für den Anfang ist er ok ;)

  • versuchmal (zum testen)

    Code
    $eingelesen = "hiermalzumtesteinsdefinieren";
    $pw = $_POST['pw'];
    if ($eingelesen == $pw) {
    header ("Location: gallery_dfFGsqPPs/main.php?cmd=album");
    } else {
    echo "Passwort ist falsch";
    }


    wenn das geht, isses ein problem mit deinem fopen

    Jeder hat das Recht dumm zu sein. Einige mißbrauchen dieses Recht leider ständig!
    Weder meine ICQ-Nummer noch meine MSN-Adresse oder meine eMailadresse sind für Bestellungen, Sponsoringanfragen oder Support !

    ploppGROUP Internetservices - IT-Partner für Geschäfts-/Großkunden
    mit Rechenzentren in Berlin, Hannover und bald auch FFM

  • Danke für die Antworten aber:

    Methode von DarkSyranus - Funktioniert so leider nicht :( Wenn man die Seite aufruft erscheint oben Links die Meldung: resource(4) of type (stream) string(7) "test" NULL Passwort ist falsch. Wobei test das Passwort ist. Nach einer Fehleingabe wird dann das falsche Passwort dort angezeigt.

    Zu isaBERLIN - Das verstehe ich nicht ganz, ist doch genau die Methode die ich ausprobiert hab? Da wird man sofort weitergeleitet.

  • Jo sorry haben gleichzeitig geposted ;)
    und das gleiche ist es NICHT
    denn ich hab das fopen weggelassen um einfach mal zu sehen ob wirklich das else das problem ist oder eher die methode wie du an dein passwort kommst.

    Jeder hat das Recht dumm zu sein. Einige mißbrauchen dieses Recht leider ständig!
    Weder meine ICQ-Nummer noch meine MSN-Adresse oder meine eMailadresse sind für Bestellungen, Sponsoringanfragen oder Support !

    ploppGROUP Internetservices - IT-Partner für Geschäfts-/Großkunden
    mit Rechenzentren in Berlin, Hannover und bald auch FFM

  • hmm...

    Code
    1<?
    2  $datei_name = "deine_datei.txt";
    3  $dz = fopen($datei_name,"r");
    4  $pass = fread($dz, 100);
    5  fclose($dz);
    6  if($pass == $passwort_das_eingegeben_wurde) header(location: /link.php);
    7  else echo "Das Passwort war falsch!";
    8  ?>


    Mal sehn ob das klappt, müsste aber eig.

    Erklärung:
    Zeile 2: Ruft die Date "deine_datei.txt" auf und liest (r)
    Zeile 3: Du öffneste die Bennante Datei
    Zeile 4: die ersten 100 Stellen des Inhalts betitelst du mit der Variblen "$pass"
    Zeile 5: Du schließt die Datei wieder
    Zeile 6: DU fragst ab ob das eingegeben Passwort gleich dem in der Datei ist,
    wenn ja leitest du ihn weiter auf "/link.php"
    Zeile 7: Wenn nicht, kommt die Ausgabe "Das Passwort war falsch!"


    Wenn du ein passwort script brauchst ich müsste irgendwo noch eins rumzuliegen haben, allerdings mit mysql, wenndes brauchst kannste haben!

    MFG

    wert.TeeeX.de
    Wie gut ist die technische Umsetztung deiner Website wirklich?
    Teste es!

  • Danke nochmals für eure Antworten...

    Diese Methode von DarkSyranus geht auch nicht. Man wird direkt zu der Header Location weitergeleitet ohne das man ein Passwort eingeben kann.


    Code
    1<?
    2  $datei_name = "deine_datei.txt";
    3  $dz = fopen($datei_name,"r");
    4  $pass = fread($dz, 100);
    5  fclose($dz);
    6  if($pass == $passwort_das_eingegeben_wurde) header(location: /link.php);
    7  else echo "Das Passwort war falsch!";
    8  ?>

    Das bringt leider auch nichts. Dann wird die Fehlermeldung gleich beim aufrufen der Seite ausgespuckt. Das ist ja auch nicht so Sinn der Sache.

    Ist nett gemeint mit dem PW Script aber leider hab ich kein SQL :( Brauch also eins auf Datei Basis und es muss auch selber anpassbar sein. Trotzdem Danke!

  • Was hast du denn für ne fehhlermeldung. N Syntax Error kann mal passieren. Die nummern musst du natürlich wegmachen und die links passend einsetzten!

    wert.TeeeX.de
    Wie gut ist die technische Umsetztung deiner Website wirklich?
    Teste es!

  • So jetzt wirds mir zu bunt ... ;)
    Habe jetzt beide versionen mal bei mir getested....
    Sowohl Darks als auch meine version funktionieren PERFEKT !

    Code
    <?
      $pass = "hier_das_pass_rein"
      $pwd = $_POST['pw'];
      if($pass == $pwd) header("location: HIER_DAS_ZIEL_REIN");
      else echo "Das Passwort war falsch!";
    ?>
    Code
    <?
      $datei_name = "deine_datei.txt";
      $dz = fopen($datei_name,"r");
      $pass = fread($dz, 100);
      fclose($dz);
      $pwd = $_POST['pw'];
      if($pass == $pwd) header("location: HIER_DAS_ZIEL_REIN");
      else echo "Das Passwort war falsch!";
    ?>

    Jeder hat das Recht dumm zu sein. Einige mißbrauchen dieses Recht leider ständig!
    Weder meine ICQ-Nummer noch meine MSN-Adresse oder meine eMailadresse sind für Bestellungen, Sponsoringanfragen oder Support !

    ploppGROUP Internetservices - IT-Partner für Geschäfts-/Großkunden
    mit Rechenzentren in Berlin, Hannover und bald auch FFM

  • Habs auch getestett, keiner Zweifelt meine Scripts an.. :p

    Meins funktioniert wunderbar, wenn du natürlich deine sachen ergänzt!

    wert.TeeeX.de
    Wie gut ist die technische Umsetztung deiner Website wirklich?
    Teste es!

  • isaBERLIN

    Nein, es funktioniert so bei mir jedenfalls nicht! Wenn ich das so verwende dann erscheint wenn ich die Seite aufrufe gleich oben Links das Echo aus dem Else. Sprich man ruft die Seite auf und oben Links steht gleich "Das Passwort war falsch".

    Der ignoriert also das echo völlig.. Die meldung soll aber erst kommen wenn man das Passwort einmal falsch eingegeben hat.

    Hier nochmal das Script das ich momentan benutze:

    Ihr könnt es euch auch gerne selber angucken: Link


    @ -Bambino-

    Es wird das Echo ausgegeben. Keine weitere Fehlermeldung.[/url]

  • oman, soll ich dir sagen warum da so ein fehler auftritt? Da kannst du hundert scripts schreiben, das ist egal.

    Mache ein weiteres auswertungsscript, und die daten sendest du per action="ausertung.php" an die auswertungsdatei.

    Andernfalls wirst du immer diese Meldung bekommen, also erst nachdenken, dann sagen unsere scripts funktionieren nicht.. ;)

    Also machst du das so:

    wert.TeeeX.de
    Wie gut ist die technische Umsetztung deiner Website wirklich?
    Teste es!

  • @ -Bambino-

    Wie ich am Anfang schon sagte bin ich Anfänger in solchen Sachen. Also ist mir das gerade zu hoch. Wie soll ich das denn "senden"? Davon hab ich jetzt wirklich garkeine Ahnung. Könntest du mir bitte sagen was du damit meinst bzw wie das geht?

    Edit: Sorry zu spät gesehen - Danke, und was mach ich in die auswertung.php? Die Scripts von euch (oder von mir)??

  • Ja, kein Problem, jeder hat mal klein angefangen:

    Erste Datei, das Formular:

    Dann die zweite Datei, die auswertung:

    Code
    <?
    $pass_eingegeben = $_POST['pass'];
    $datei_name = "deine_datei.txt";
    $dz = fopen($datei_name,"r");
    $pass = fread($dz, 100);
    fclose($dz);
    if($pass == $pass_eingegeben) header("location: HIER_KOMMT_DEIN_LINK_HIN");
    else echo "Das Passwort war falsch!";
    ?>

    wert.TeeeX.de
    Wie gut ist die technische Umsetztung deiner Website wirklich?
    Teste es!