web-dev-qa-db-ja.com

クッキー名をサニタイズする方法

みんな! Gravity Formが送信された後にクッキーを設定します。名前は現在のページに基づいているため、このフォームを持つ各ページには独自のCookieがあります。/324234-2 /のようにURLの末尾が一部のページでは、Cookieが設定されず、エラーメッセージが返されません(\n\013\014)、他のより一般的な名前の人はそうするでしょうが。私はこのクッキー名をサニタイズしようとしていますので、私はまったくエラーを受けません。

これは私の機能です:

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);
};

どのように私は私のクッキー名を消毒するのですか?ありがとうございました!

1
Paulo Gabriel

$from_pageが文字列値であり、配列やオブジェクトではない場合、sanitize_key()はトリックを行う必要があり、a-z0-9_-のみが許可され、パーマリンクに使用されると考えられます。

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

多数のwordpressサニタイズ関数があります。 ドキュメントで参照可能

2
David Sword