2017-11-17 2 views
-3

Bei jeder Anfrage an meine Seite möchte ich den Abfragezeichenfolgenwert in Cookie speichern. Ich meine, wenn:Abfragezeichenfolge in Cookie speichern

$_GET['id'] = 28 to get 28. 

Das nächste Mal, wenn:

$_GET['id'] is 36. 

Ich möchte 36 bekommen und fügen Sie es 28. Wie kann ich das erreichen?

+1

Haben Sie sich die Setcookie-Funktion angesehen? http://php.net/manual/en/function.setcookie.php – chris85

Antwort

0

Sie können Cookies verwenden, wie Sie bereits erwähnt haben, aber je nach Arbeitsablauf möchten Sie möglicherweise $_SESSION verwenden, da es im Allgemeinen sicherer ist. Cookies können vom Kunden geändert werden und zwischen den Besuchen bestehen bleiben. Wenn das Ihr gewünschtes Verhalten ist, dann wird setcookie() Ihre beste Wette sein.

<?php 
// The intval() function helps to ensure that numbers are being used, floatval() could work too 
// Get current cookie value 
$currentValue = intval($_COOKIE['CookieCounter']); 
// Get new passed value 
$incrementBy = intval($_GET['id']); 
// Set the cookie and have it saved for 30 days 
setcookie('CookieCounter', str($currentValue + $incrementBy), time()+60*60*24*30); 

Eine alternative Methode ist die Verwendung von Sitzungen.

Sitzungen sind eine einfache Möglichkeit zum Speichern von Daten für einzelne Benutzer mit einer eindeutigen Sitzungs-ID . Dies kann verwendet werden, um die Statusinformation zwischen Seitenanforderungen zu erhalten. Sitzungs-IDs werden normalerweise über Sitzungscookies an den Browser gesendet, und die ID wird verwendet, um vorhandene Daten der Sitzung abzurufen. Durch das Fehlen einer ID oder eines Sitzungscookies kann PHP eine neue Sitzung erstellen und eine neue Sitzungs-ID generieren.

<?php 
// Start the session 
session_start(); 
// Check if the session value is already set 
if (!isset($_SESSION['count'])) { 
    $_SESSION['count'] = intval($_GET['id']); 
} else { 
// Increment the session value 
    $_SESSION['count'] += intval($_GET['id']); 
} 

jedoch Cookies sind veränderbar und können auch durch Browser-Einstellungen entfernt bekommen, etc. Wenn Sie es wollen, sicherer und bestehen sein, habe ich eine Datenbank oder einer anderen persistenten Datenspeicher verwenden würde.

+0

Vielen Dank für die Antwort. Ich werde es versuchen. Ich möchte letzte Ansicht Beiträge/Elemente vom Benutzer machen. Ich sollte Cookies verwenden oder nicht –

+0

Hängt von Ihrer Absicht ab. Wenn ich die Gesamtzahl der Posts über einen langen Zeitraum hinweg verfolgen soll, würde ich das letzte Segment meiner Antwort verwenden und dieses in einer Datenbank speichern (Sie haben wahrscheinlich eine, seit Sie "Posts" erwähnt haben). – kchason

+0

Sie haben Recht, ich werde es in der Datenbank speichern –

0
$value=$_COOKIE['TestCookie']; 
setcookie("TestCookie", $value+$_GET['value'], time()+(10 * 365 * 24 * 60 * 60)); 

Dies wird Ihr Problem lösen. Ich setze die Verfallszeit des Cookies so groß, dass du es modifizieren kannst.

+0

Vielen Dank für die Antwort. –

+0

Wenn es für Sie funktioniert, vergessen Sie nicht, es zu akzeptieren. – pr1nc3