web-dev-qa-db-fra.com

Comment désinfecter mon nom de cookie

les mecs! Je crée un cookie après la soumission de mon formulaire Gravity. Le nom est basé sur la page en cours, chaque page contenant ce formulaire aura son propre cookie. Certaines pages avec des URL se terminant par exemple/324234-2/​​ne définiront pas le cookie et ne renverront pas de message d'erreur ( Avertissement: les noms de cookies ne peuvent contenir aucun des éléments suivants: '= ,;\t\r\n\013\014 ), tandis que d’autres avec des noms plus réguliers le feront. J'essaie de nettoyer ces noms de cookies afin d'éviter toute erreur.

Ceci est ma fonction:

add_action( 'gform_after_submission_6', 'contentCookie', 10, 2);
function contentCookie($entry, $form) {
    $from_page = rgar( $entry, '6' );
    setcookie( 'unrestrict_'.$from_page, 1, strtotime( '+30 days' ), COOKIEPATH, COOKIE_DOMAIN, false, false);
};

Comment désinfecter mon nom de cookie? Je vous remercie!

1
Paulo Gabriel

En supposant que $from_page est une valeur de chaîne et non un tableau ou un objet, sanitize_key() devrait faire l'affaire, il ne permet que a-z0-9_- et je crois qu'il est utilisé pour le permalien.

$cookiename = sanitize_key( 'unrestrict_'.$from_page );
setcookie( cookiename, 1 ...

il y a tout un tas de fonctions de nettoyage wordpress, références disponibles dans la documentation .

2
David Sword