Frage

Ich schreibe eine einfache Funktion und aus irgendeinem Grund (wahrscheinlich ein einfaches) es ist nicht für mich arbeiten, und ich habe mich gefragt, ob ihr mir helfen könnte.

function check_value($postID) 
    {
        $ID = $postID;
        $cookie = $_COOKIE['list_of_IDS'];
        $position = strpos($cookie,$ID);
        echo 'ID:'.$ID.'-Cookie:'.$cookie;
            if ($position !== false)
        {
            echo "ID is in the cookie";
        }
    }

Bei dem Versuch, herauszufinden, was das Problem war ich setze, dass Echozeile über die If-Anweisung dort sicherzustellen, dass es wirklich Sachen in den Variablen ist.

Mein Problem ist, dass die IF-Anweisung nie gedruckt wird.

A $postID eine Zahl 123123.

Die $cookie Zeichenfolge ist in der Regel so etwas wie 123123.23422.234234.2342342.234234

Vielen Dank für Ihre Hilfe!

War es hilfreich?

Lösung

strpos wird nicht mit einem int arbeiten, so müssen Sie die ID in einen String werfen. Versuchen Sie folgendes:

$ID = (string)$postID;

Andere Tipps

Beachten Sie, wenn Sie Ihre Cookie-String wie 123123.23422.234234.2342342.234234 aussieht und Sie suchen nach einer ID, sagen wir, 1231 oder 23, Ihre Funktion TRUE zurückkehren würde, während tatsächlich die ID nicht in der Liste enthalten ist. Ihre aktuelle Implementierung von strpos() auch Teilnummern entsprechen.

Hier ist eine einfache Abhilfe, die die ID erfordert durch Punkte umgeben sein.

$position = strpos('.'.$cookie.'.', '.'.$ID.'.');

ja, wie Brock sagte strpos gewohnt mit einem int arbeiten, so dass Sie die ID zu werfen haben. so müssen einige Änderungen in Ihrem Code.

function check_value($postID) 
    {
        $ID = $postID;
        $cookie = $_COOKIE['list_of_IDS'];
        $position = strpos($cookie,$ID);
        echo 'ID:'.$ID.'-Cookie:'.$cookie;
            if ($position !== false)
        {
                echo "ID is in the cookie";
        }
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top