Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Problema con ricerca di un valore in un array

    Ciao a tutti, sto svliuppando un applicazione in PHP che salva un valore temporaneo in un cookie, ma per evitare che questo dato venga manomesso agendo direttamente sul cookie, voglio verificare prima di utilizzarlo, che i valori in lettura siano accettati dalla mia applicazione.
    Il valore in questione è una variabile che puo assumere diversi valori (per esempio e per semplificare supponiamo che siano 1, 2 e 3)
    Ho quindi creato un array contenente i valori accettati, per poi confrontare il valore in lettura dal cookie tramite la funzione in_array.

    codice:
    $settings["layout"]["layout_list"] = array(1,2,3);
    if (in_array($_COOKIE["layout"], $settings["layout"]["layout_list"])) {
    	echo "presente";
    }
    Purtroppo questa condizione mi restituisce vero in qualsiasi caso, anche se nel cookie il valore impostato non è compreso nell'array.

    Ho verificato che le variabili siano corrette, stampando a video sia il valore del cookie, sia l'intera array con print_r, e sembra che non ci siano problemi, l'array viene riconosciuta correttamente e mostra tutti i valori che contiene.

    Dove sbaglio??
    http://www.firesoftweb.it - Servizi gratuiti per il tuo sito web: forum, guestbook, contatori visite...

  2. #2
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Se sei convinto che $_COOKIE["layout"] e' uguale ad un valore sicuramente prensente nel array $settings["layout"]["layout_list"], e in_array() non ti funziona, significa che hai trovato un bug in php e devi andare a riportarlo

    Ma io ti consiglierei comunque prima di concentrarti meglio sul debug dei valori

  3. #3
    Se sei così sicuro... Non so che altro consigliarti, se non di provare con un atro metodo, ad esempio:
    Codice PHP:
    $trovato=false;
    $cookie=$_COOKIE["layout"];
    foreach(
    $settings["layout"]["layout_list"] as $var)
    {
      if(
    $var==$cookie)
      {
         
    $trovato=true;
         break;
      }
    }
    if (!
    $trovato)
    echo 
    'Il valore del cookie non è tra quelli possibili!';
    else
    echo 
    'Il valore del cookie è '.$cookie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.