Ankündigung

Einklappen
Keine Ankündigung bisher.

if Bedingung funktioniert nicht...

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • if Bedingung funktioniert nicht...

    Hallo zusammen,

    Hab ein problem mit if-abfragen in php. Wenn man als passwort test eingibt in einem html-textfeld eingibt, wird trotzdem die meldung "Falsches kennwort" ausgegeben, es müßte aber " Kennwort richtig" kommen. Was stimmt nicht? Der name des passwortfelds im html-code ist "password" und der des textfeld administrator.

    <?php
    function pruefen()
    {
    if ($password =="test")
    { return true; }

    else {return false;}


    }

    if (pruefen())

    { $administrator = true; }
    else { $administrator =false;}

    if ($administrator)
    { echo "Kennwort richtig";
    }
    else { echo "Falsches Kennwort";}


    ?>

    mfg
    san

  • #2
    bin ma ned sicher, ab ich glaube, du musst die variable übergeben...

    PHP-Code:
    <?php
    function pruefen($password)
    {
    if (
    $password =="test")
    { return 
    true; }

    else {return 
    false;}


    }

    if (
    pruefen($_POST['password']))

    $administrator true; }
    else { 
    $administrator =false;}

    if (
    $administrator)
    { echo 
    "Kennwort richtig";
    }
    else { echo 
    "Falsches Kennwort";}


    ?>
    mfg
    Andi

    Kommentar


    • #3
      Woher sollten die Variablen $password bzw. $administrator denn in den Funktionen bekannt sein?
      Schau dir mal an, wie der Gültigkeitsbereich von Variablen aussieht: http://www.php.net/manual/en/languag...bles.scope.php

      Kommentar


      • #4
        Wenn sowiso die superglobalen Variablen verwendet werden kann man sich die Übergabe aber gleich sparen, nur solltest du dann in der Funktion direkt $_POST oder $_GET verwenden.
        Also function pruefen() {
        if ($_POST['password']==...)
        ...
        }

        Kommentar


        • #5
          In den php einstellungen is register_globals auf on gesetzt. Dadurch sind die namen der formularfelder doch im ganzen php skript verfügbar, auch in fuinktionen oder?
          Oder muss ich $password der funktion mit global erst bekannt machen?
          Ich probier noch mal.

          Kommentar


          • #6
            Zitat von san26
            In den php einstellungen is register_globals auf on gesetzt. Dadurch sind die namen der formularfelder doch im ganzen php skript verfügbar, auch in fuinktionen oder?
            Nein, das bezieht sich nur auf den Bereich außerhalb von Funktionen.

            Zitat von san26
            Oder muss ich $password der funktion mit global erst bekannt machen?
            Ich probier noch mal.
            Könntest du machen. Das ist allerdings unschön, weil deine Funktion dann von der Umgebung, in der sie eingesetzt wird, abhängt. Warum übergibst du nicht den entsprechenden Wert als Parameter an die Funktion?

            Kommentar


            • #7
              ich würd egal ob on oder off immer $_GET, $_SESSION, $_POST und $_COOKIE verwenden..

              kann andernfalls ne sicherheitslücke sein!!


              mfg
              Andi

              Kommentar


              • #8
                Lies dir den Link von xabbuh doch mal durch, bevor du hier weiter postest.

                Übergib einfach der Funktion das Passwort per

                pruefe($passwort)

                dann kannst du innerhalb der Funktion auch darauf zugreifen.

                Kommentar

                Lädt...
                X