2010-08-31 49 views
0

Je veux obtenir les informations de cookie stockées en utilisant la fonction setcookie dans le code source du php .. pas le code source php .. Quel est le code C correspondant à _COOKIE ['xx']; En d'autres termes, où est créé et rempli le tableau _COOKIE?_COOKIE Infos sur le serveur Côté

+1

" code source du php "Huh:? – NullUserException

+0

Je suggère de parler aux gens sur la liste de diffusion PHP Internals si vous êtes intéressé par l'exploration ou la modification de la source PHP: http://news.php.net/php.internals – leepowers

+0

Etes-vous en train d'écrire une extension? – Artefacto

Répondre

1

La variable $_COOKIE ne pas utiliser JIT (initialisation juste à temps), il est donc toujours accessible en lisant la table des variables globales EG(symbol_table):

zval **cookie_var; 
if (zend_hash_find(&EG(symbol_table), "_COOKIE", sizeof("_COOKIE"), 
     (void**)&cookie_var) == SUCCESS) { 
    /* do something with cookie_var */ 
} else { 
    /* handle error; shouldn't happen */ 
} 
+0

Où devrais-je passer le nom 'views' ?? est la valeur de ** (cookie_var) = 'views'? –

+0

@Kar Vous devriez faire une autre recherche de hash sur le tableau 'cookie_var':' zend_hash_find (Z_ARRVAL_PP (cookie_var), "vues", sizeof ("vues"), (void **) & my_var) ' – Artefacto

+0

ok .. maintenant l'erreur de correspondance de char zval se produit .. Je suis nouveau à cette écriture d'extension. Alors pouvez-vous m'aider? Je sais que le nom de la variable est «vues» et il va être constant .. Donc, je ne dois pas obtenir de l'utilisateur .. –

0

Les informations sur les cookies font partie de vos en-têtes http (que le navigateur envoie). PHP facilite l'accès en les analysant dans un tableau net et en le mettant dans _COOKIE. Vous devrez le faire en C.