मेरे पास एक साधारण कुकी अधिसूचना के लिए निम्न कोड है और यदि मैं स्वीकार करता हूं तो कुकी अधिसूचना गायब हो जानी चाहिए। हालांकि मुझे दो बार स्वीकृति बटन दबा देना है और मुझे नहीं पता क्यों?

if(isset($_POST['accept'])) //if Cookies are accepted
{
    Cookie::setCookieAccept();
  
    
}
else if(isset($_POST['deny'])) //If Cookies are denied
{
    header("Location:index.php");
}

if(!isset($_COOKIE['cookie'])) //Are Cookies accepted?
{
    echo '<div class = "container">
    <div class="alert cookiealert alert-dark alert-dismissible fade show mb-0 pb-0 d-flex justify-content-center " >
        
        <div class = "test">
            <div class = "row">
                <div class="col-sm-12 text-center">
                    Mit Verwendung dieser Website stimmen Sie zu dass wir Cookies bei Ihnen speichern.
                </div>

            </div>

            <div class = "d-flex justify-content-center" "row">
                
                    <form action="login.php" method="post">
                    <input type="submit" class="btn btn-success" name="accept" value="Akzeptieren" data-dismiss="alert&submit"> 
                
                
                    <input type="submit" class="btn btn-danger" name="deny" value="Ablehnen" data-dismiss="alert&submit">
                    </form>
                
            </div>
        </div>
        
    </div>';

}
php
0
Nico1300 20 मार्च 2021, 20:42
यह फ़ंक्शन क्या कर रहा है? Cookie::setCookieAccept();
 – 
Bijay Regmi
20 मार्च 2021, 21:05
यह एक कुकी सेट कर रहा है, जिसे कुकी कहा जाता है, इसलिए मैं जांच सकता हूं कि कुकीज़ स्वीकार की जाती हैं या नहीं।
 – 
Nico1300
20 मार्च 2021, 22:13

1 उत्तर

सबसे बढ़िया उत्तर

$_COOKIE['cookie'] पुनः लोड करने के बाद उपलब्ध है।

इसलिए हम एक अस्थायी चर $accept का उपयोग करते हैं और कुकी सेट होने पर इसे सही पर सेट करते हैं। यदि कुकी पहले से नहीं है, तो हम स्वीकृति की जांच करते हैं और यदि यह है, तो हम स्वीकार करते हैं।

बाद में हम स्वीकृति के लिए फिर से जांच करते हैं, और यदि कुकी अलर्ट नहीं दिखाते हैं, तो फिर से।

$accept = isset($_COOKIE['cookie']);
if(!$accept) {
    if(isset($_POST['accept']))
    {
        Cookie::setCookieAccept();
        $accept = true;
    }
    else if(isset($_POST['deny']))
    {
        header("Location:index.php");
        exit;
    }
}

if(!$accept)
{
    // not accepted
}

0
Markus Zeller 20 मार्च 2021, 21:18