Domanda

Sto scrivendo una funzione semplice e per qualche ragione (probabilmente una semplice) non funziona per me e mi chiedevo se potreste aiutarmi.

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

Sto scrivendo una funzione semplice e per qualche ragione (probabilmente una semplice) non funziona per me e mi chiedevo se potreste aiutarmi.

<*>

Nel tentativo di capire quale fosse il problema ho messo quella linea di eco sopra l'Istruzione If per assicurarmi che ci siano elementi nelle variabili.

Il mio problema è che l'istruzione IF non viene mai stampata.

Un $ postID è un numero 123123 .

La stringa $ cookie è in genere qualcosa di simile a 123123.23422.234234.2342342.234234

Grazie per l'aiuto!

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

Nel tentativo di capire quale fosse il problema ho messo quella linea di eco sopra l'Istruzione If per assicurarmi che ci siano elementi nelle variabili.

Il mio problema è che l'istruzione IF non viene mai stampata.

Un $ postID è un numero 123123 .

La stringa $ cookie è in genere qualcosa di simile a 123123.23422.234234.2342342.234234

Grazie per l'aiuto!

È stato utile?

Soluzione

Strpos non funzionerà con un int, quindi è necessario eseguire il cast dell'ID su una stringa. Prova questo:

$ID = (string)$postID;

Altri suggerimenti

Nota che se la tua stringa di cookie appare come 123123.23422.234234.2342342.234234 e stai cercando un ID, ad esempio 1231 o 23 , la tua funzione restituirà TRUE mentre in realtà quell'ID non è nell'elenco. La tua attuale implementazione di strpos () corrisponderà anche a numeri parziali.

Ecco una semplice soluzione che richiederà che l'ID sia circondato da punti.

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

sì, come ha detto Brock, Strpos non funzionerà con un int, quindi devi lanciare l'id. quindi ho bisogno di qualche modifica nel tuo codice.

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

sì, come ha detto Brock, Strpos non funzionerà con un int, quindi devi lanciare l'id. quindi ho bisogno di qualche modifica nel tuo codice.

<*>COOKIE['list_of_IDS']; $position = strpos($cookie,$ID); echo 'ID:'.$ID.'-Cookie:'.$cookie; if ($position !== false) { echo "ID is in the cookie"; } }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top