2016-07-07 2 views
3

Im Wokring auf einer Webseite. Der folgende Code ist in single.php.

Zunächst zähle ich jedes Mal, wenn jemand eine Seite/post + 1.

<?php 
//The cookie Besuche neeeds to be under 3 
if (isset($_COOKIE['besuche'])){ 
    if ($_COOKIE['besuche'] >= 3){ 
    //If its more than 3, cookie resets to 1 
    $besuche_anz = 1; 
    $_COOKIE['besuche'] = $besuche_anz; 
    }else{ 
    //If its less than 3. cookie + 1 
    $_COOKIE['besuche'] = $_COOKIE['besuche'] + 1; 
    $besuche_anz = $_COOKIE['besuche']; 
    } 
}else{ 
    //Cookie is not set 
    $besuche_anz = 1; 
} 

//write cookie "besuche" 
setcookie("besuche", $besuche_anz, time() + (86400 * 30), "/"); 

//Here starts my problem... I want so write three cookies: cookie_id1, cookie_id2, cookie_id3. But all cookies should be diffrent. So they sould not have the same ID --> get_the_id() 

$cookie_value = get_the_id(); 
setcookie("cookie_id".$besuche_anz, $cookie_value, time() + (86400 * 30), "/"); 
//Only if $cookie_value has the same ID --> Do nothing, else setcookie 
if ($cookie_value == $_COOKIE["cookie_id1"]){}else{ 
    setcookie("cookie_id".$besuche_anz, $cookie_value, time() + (86400 * 30), "/"); 
} 

//Only if $cookie_value has the same ID --> Do nothing, else setcookie 
if ($cookie_value == $_COOKIE["cookie_id1"] || $_COOKIE["cookie_id2"]){}else{ 
    setcookie("cookie_id".$besuche_anz, $cookie_value, time() + (86400 * 30), "/"); 
} 

get_header(); ?> 

öffnet Warum funktioniert es nicht?

Das Ziel ist, so wählen Sie die 3 IDs aus den Cookies auf der index.php (Home), um die zuletzt angesehenen Beiträge auszuwählen.

Wenn ich einige Post 3 mal aktualisiere, habe ich im Moment 3 mal den gleichen Artikel auf dem Haus.

Was mache ich falsch?

+0

Änderungen an '$ _COOKIE' ändern nicht wirklich die Cookies, Sie müssen' setcookie' jedes Mal machen. – apokryfos

Antwort

2

versuchen dies,

if(!isset($_COOKIE[$cookie_name])) 
    { 
     setcookie('cookie_name', $cookie_value, time() + (86400 * 30), "/"); 
    } 

Ich hoffe, es wird hilfreich sein.

+0

Danke für Ihre Antwort, aber ich möchte nicht überprüfen, wie der Cookie gesetzt ist ... Ich Zauberstab, um die ID des Artikels (get_the_id();) mit der Cookie-ID1 zu vergleichen. Und nur wenn sie einen anderen Wert haben, schreibt sie einen neuen Cookie. Aber vielen Dank! – Thebboii04

Verwandte Themen