4

ビューで twig アノテーションを使用して、特定の Cookie 値が設定されているかどうかを検出しようとしていますが、twig に詳しくなく、現在機能していません。

まず、Cookie をコントローラーに設定しました。ブラウザーから Cookie が存在することを確認できます。関連する PHP コードは次のとおりです。

if (isset($_GET['accept-cookie'])) {
    setcookie("acceptCookies", "true", time() + (86400 * 300));
}

ブラウザで Cookie を表示し、コンテンツが正しく true に設定されていることを確認できます。

私の見解では、Cookie が存在することを確認する必要があります。存在しない場合は、Cookie バナーを表示する必要があります。コードは次のとおりです。

{% if app.request.cookies.get("acceptCookies") != null %}
    <h1>Cookies are set!</h1>
{% else %}
    <div id="cookieBanner">
        <div id="cookieContainer">
            <p>We use cookies on this website. By using this website, we'll assume that you consent to <a href="/cookies">the cookies we set.</a></p>
            <a href="?accept-cookie" class="button">Okay, continue.</a>
        </div>
    </div>
{% endif %}

私が読んだドキュメントによると、これは正しく動作するはずですが、ブラウザーにブラウザーが存在することを確認できても、Cookie バナーが表示され続けます。

これを解決するにはどうすればよいですか?

4

2 に答える 2

6

小枝テンプレートでクッキーにアクセスするには、これが最良の方法だと思います!

この変数にはすべての Cookie が含まれます

{% app.request.cookies %}

例:

{% if app.request.cookies.has('acceptCookies') %} Yes you accept cookies {% endif %}

完全なチュートリアルを参照してください: http://enarion.net/news/2012/access-cookies-in-a-twig-template-using-symfony2/

Cookie を正しい方法で設定する方法については、symfony のドキュメントも参照してください: http://symfony.com/doc/current/components/http_foundation/introduction.html#setting-cookies

于 2013-10-21T12:49:36.023 に答える
0

$_GET['accept_cookie']PHPで、html twig コードに存在しない値を確認します。そのため、ブラウザーは Cookie バナーを表示します。を取得するにはフォームを使用する必要があります$_GET['accept_cookie']

于 2013-10-21T12:46:07.073 に答える