Ergebnis 1 bis 6 von 6
  1. #1
    PDFTT_cr3w.jpg.exe Avatar von SFX
    Registriert seit
    01.08.2008
    Beiträge
    557

    Standard "foobar" == 0 -> true

    PHP-Code:
    <?php

    $var 
    $_GET+++91'x' +++93;; // irgendwie kann ich keine eckigen Klammern posten o.O ? +++93; -> eckige Klammer

    if($var == intval($var))
      echo 
    "safe.. $var == ".intval($var);
    else
      echo 
    "unsafe!.. $var != ".intval($var);

    ?>
    in der Theorie wird, wenn zB foobar bei $var reinkommt, durch intval eine 0 draus

    und 0 ist != "foobar".. da bin ich mir relativ sicher..

    ich komme aber immer in den "safe" fall, egal ob ich Zahlen oder Buchstaben rein gebe..

    was ist also bei mir falsch ?

    Edit://
    Ich bin leider immer noch nicht hinter gekommen was schief läuft, allerdings kann man sich ein workaround mit md5 Prüfsummen basteln..
    Geändert von SFX (31.10.2010 um 22:37 Uhr) Grund: geschweift -> eckig
    free-hack secure connection

    Level 61 Troll
    [ Manifesto ]

    GPG erwünscht [ Key ]
    7A16 997D 08AA D280 4822 F0AC 2BDC 2302 4C54 C396


  2. #2
    Stanley Jobson
    Registriert seit
    09.12.2006
    Beiträge
    671

    Standard

    <?php
    $var = $_GET['x'];

    if(intval($var)=="0")
    {
    echo'unsafe';
    }
    else
    {
    echo'save';
    }
    ?>

    der php bbc generator scheint kaputt zu sein... meine [ werden auch ersetzt.

    $var == intval($var)
    7 == 7
    Geändert von echoslider (01.11.2010 um 07:42 Uhr)

  3. #3
    Fortgeschrittener Avatar von The-God-of-all
    Registriert seit
    02.09.2007
    Beiträge
    46

    Standard

    Ich vermute mal, dass PHP erkennt, das du eine Zahl mit einem String vergleichen willst und daher den String in eine Zahl umwandeln will, weil es aber keine Zahl ist kommt 0 raus und schon ist wieder beides das gleiche...

    Hast du schon einmal versucht === (3 Gleichheitszeichen) zu nutzen? Weil laut Referenz soll das ja einen genaueren Vergleich bieten (wo eben nicht konvertiert ist). Habe ich aber selbst noch nie verwendet, kann also nicht garantieren, dass das funktioniert.

    Warum willst du unbedingt so überprüfen ob es eine Zahl ist? Es gibt eine Funktion is_numeric() wäre die nicht vielleicht besser geeignet?
    "Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher."
    Albert Einstein

  4. #4
    PDFTT_cr3w.jpg.exe Avatar von SFX
    Registriert seit
    01.08.2008
    Beiträge
    557

    Standard

    Zitat Zitat von The-God-of-all Beitrag anzeigen
    Ich vermute mal, dass PHP erkennt, das du eine Zahl mit einem String vergleichen willst und daher den String in eine Zahl umwandeln will, weil es aber keine Zahl ist kommt 0 raus und schon ist wieder beides das gleiche...
    ich habs schon mit settype() in einen String umgewandelt, hat nicht geklappt..

    Zitat Zitat von The-God-of-all Beitrag anzeigen
    Hast du schon einmal versucht === (3 Gleichheitszeichen) zu nutzen? Weil laut Referenz soll das ja einen genaueren Vergleich bieten (wo eben nicht konvertiert ist). Habe ich aber selbst noch nie verwendet, kann also nicht garantieren, dass das funktioniert.
    Jop, hab ich schon versucht..

    Zitat Zitat von The-God-of-all Beitrag anzeigen
    Warum willst du unbedingt so überprüfen ob es eine Zahl ist? Es gibt eine Funktion is_numeric() wäre die nicht vielleicht besser geeignet?
    arg, natürlich, scheinbar ist 22:30 doch schon zu spät abends als dass ich noch klar denken könnte.. >.<

    mit is_numeric() funktioniert es natürlich..

    trotzdem ist es seltsam warum das andere nicht funktioniert ^^
    free-hack secure connection

    Level 61 Troll
    [ Manifesto ]

    GPG erwünscht [ Key ]
    7A16 997D 08AA D280 4822 F0AC 2BDC 2302 4C54 C396


  5. #5
    Stanley Jobson
    Registriert seit
    09.12.2006
    Beiträge
    671

    Standard

    ähm. es ist nicht seltsam.... ich habs doch schon beantwortet.

    $var="7";

    intval($var) ist dann auch 7

    und dann vergleichst du if($var == intval($var)) bzw 7 == 7

  6. #6
    PDFTT_cr3w.jpg.exe Avatar von SFX
    Registriert seit
    01.08.2008
    Beiträge
    557

    Standard

    intval("foobar") ergibt aber 0

    und der vergleich zwischen dieser 0 und "foobar" ergibt true

    und das dürfte nicht sein
    free-hack secure connection

    Level 61 Troll
    [ Manifesto ]

    GPG erwünscht [ Key ]
    7A16 997D 08AA D280 4822 F0AC 2BDC 2302 4C54 C396


Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 29.08.2010, 01:34
  2. Antworten: 4
    Letzter Beitrag: 01.07.2010, 16:20
  3. Antworten: 1
    Letzter Beitrag: 08.09.2009, 13:56
  4. Antworten: 1
    Letzter Beitrag: 10.04.2009, 21:46
  5. Antworten: 10
    Letzter Beitrag: 15.02.2009, 13:15

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •