質問

私は単純な関数を書いていますが、何らかの理由(おそらく単純な関数)で機能していません。皆さんが私を助けてくれるかどうか疑問に思っていました。

function check_value($postID) 
    {
        $ID = $postID;
        $cookie = 

私は単純な関数を書いていますが、何らかの理由(おそらく単純な関数)で機能していません。皆さんが私を助けてくれるかどうか疑問に思っていました。

<*>

問題が何であったかを把握しようとして、変数内に実際のものがあることを確認するために、そのエコー行をIfステートメントの上に配置しました。

私の問題は、IFステートメントが出力されないことです。

$ postID は数字 123123 です。

$ cookie 文字列は通常、 123123.23422.234234.2342342.234234

のようなものです

ご協力ありがとうございます!

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

問題が何であったかを把握しようとして、変数内に実際のものがあることを確認するために、そのエコー行をIfステートメントの上に配置しました。

私の問題は、IFステートメントが出力されないことです。

$ postID は数字 123123 です。

$ cookie 文字列は通常、 123123.23422.234234.2342342.234234

のようなものです

ご協力ありがとうございます!

役に立ちましたか?

解決

Strposはintでは機能しないため、IDを文字列にキャストする必要があります。これを試してください:

$ID = (string)$postID;

他のヒント

Cookie文字列が 123123.23422.234234.2342342.234234 のように見え、IDを探している場合、たとえば 1231 または 23 、関数は TRUE を返しますが、実際にはそのIDはリストにありません。現在の strpos()の実装も、部分的な数字と一致します。

IDをドットで囲む必要がある簡単な回避策があります。

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

はい、BrockがStrposはintで動作しないと言ったので、idをキャストする必要があります。 コードを変更する必要があります。

function check_value($postID) 
    {
        $ID = $postID;
        $cookie = 

はい、BrockがStrposはintで動作しないと言ったので、idをキャストする必要があります。 コードを変更する必要があります。

<*>COOKIE['list_of_IDS']; $position = strpos($cookie,$ID); echo 'ID:'.$ID.'-Cookie:'.$cookie; if ($position !== false) { echo "ID is in the cookie"; } }
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top