Mario: Fehler if Abfrage, macht das komplette Gegenteil

Da mein Posting nicht mehr in dem Umfeld steht, in den ich es gepostet habe und es auch sonst nicht mehr auffindbar ist und ich noch nicht geschaut hab, hier nochmal meine Frage:

Seite1:
{
$eintrager = $name;
$verifizierung = 100;
session_start();
session_register("$eintrager");
session_register("$verifizierung");
header('Location: menue.php');
exit();
}

Seite2: (menue.php)
<?php
session_start();
if ($verifizierung != 100)
{
header('Location: index.html');
exit();
}
?>

Ich habe jetzt getüftelt. Setze ich verifizierung == 100 in der if Abfrage, geht er nicht mehr in die Schleife, dh. der Rest wird angezeigt. Das ist genau das, was ich nicht haben will. Meine Version lautet: (unschwer zu erkennen) wenn Code nicht richtig, dann zurück zu index.html ansonsten Seite normal anzeigen. Das ist doch kein Denkfehler? Oder doch?
Gruß, Mario.

  1. Hallo!

    Irgendwie verstehe ich das nicht... du schreibst, du setzt verifizierung == 100 und dann geht er nicht mehr in die Schleife. Das ist doch auch logisch, denn die Bedingung lautet:

    if ($verifizierung != 100)

    Wenn du es also auf 100 setzt, springt er eben NICHT in die Schleife rein... sobald du Verifizierung jedoch auf 101 setzen würdest, würde er in die Schleife reinspringen und damit zur index-seite zurückkehren, oder?

    Grüsse
    Lactrik

    1. Hi,

      wo ist denn da eine Schleife?

      Hast Du Dir schon mal Variableninhalte ausgeben lassen? Dann meckert zwar die header()-Funktion, aber für nen Test wird die das schon überstehen *ggg*

      Wenn dann in den Variablen NICHT das drinsteht, was drinstehen müsste, dann wüsstest Du doch, dass Du an einer falschen Stelle gesucht hast, oder?

      Wo steht denn die Einstellung für register_globals in deiner php.ini?

      Liebe Grüße aus http://www.braunschweig.de

      Tom

      --
      Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
      1. Hi zurück,

        sorry, ist natürlich keine Schleife, sondern ne Bedingung. Nicht so kleinlich sein...
        ;-)
        Werde das mit der Ausgabe nachher mal probieren.
        Das mit den globalen Variablen müßte ich mal mit meinem Provider abklären, ich dachte aber, sowas wäre beim Erzeugen einer Session unerheblich und das müßte automatisch gehen.
        Dachte eigentlich eher, ich hätte einen Programmierfehler gemacht, danke trotzdem.

      2. Wo steht denn die Einstellung für register_globals in deiner php.ini?

        Register globals steht auf on.

    2. Hallo.

      Na das Prinzip ist so, daß in dem Fall, in dem die Verifizierung nicht auf 100 gesetzt ist, sprich der Besucher nicht von der Seite kommt, auf der die Verifizierung gesetzt wird, die if Bedingung greift und er umgeleitet wird, d.h. die Seite nicht weiter ausgeführt wird. Ein simpler Passwortschutz also. Und setzt ich das != springt er in die Schleife, setze ich das auf == springt er eben nicht rein. Und das ist merkwürdig.

      1. Hallo

        Hallo.

        Na das Prinzip ist so, daß in dem Fall, in dem die Verifizierung nicht auf 100 gesetzt ist, sprich der Besucher nicht von der Seite kommt, auf der die Verifizierung gesetzt wird, die if Bedingung greift und er umgeleitet wird, d.h. die Seite nicht weiter ausgeführt wird. Ein simpler Passwortschutz also. Und setzt ich das != springt er in die Schleife, setze ich das auf == springt er eben nicht rein. Und das ist merkwürdig.

        Soll er das nicht?
        <schnipp>
        Seite2: (menue.php)
        <?php
        session_start();
        if ($verifizierung != 100)
        // Wenn die Variable $verifizierung nicht 100 ist, also
        // nicht von der aufrufenden Seite kommt mache folgendes:
        {
        header('Location: index.html');
        // gehe zur Startseite zurück
        exit();
        }
        // ansonsten führe das Skript aus
        ?>
        <schnapp>

        Oder habe ich da was falsch verstanden?

        Tschö, Auge