2016-12-15 1 views
0
<html> 
    <head> 
     <meta charset="UTF-8"> 
     <title> Cookies </title> 
    </head> 
    <body> 
<h1> Cookies Concept </h1> 
     <form method="get" action="index.php"> 
      Enter Your Name: <input type="text" name="name"> 
      <input type="submit" name="done"> 
     </form> 
    </body> 
</html> 
<?php 
if(!empty($_GET['name']))  
{ 
    if(empty($_COOKIE['name'])) 
    { 
     setcookie('name',$_GET['name']."<br",time()+86400); 
    } 
    else 
    { 
     setcookie('name',$_GET['name'].<br>".$_COOKIE['name'],time()+86400);  
    }  
}  
if(isset($_COOKIE['name'])) 
{ 
     echo $_COOKIE['name']; 
} 
else 
{ 
    echo "Cookie cannot be set"; 
} 
?> 

Ich möchte die letzten zehn eingegebenen Namen ausdrucken. Wie kann ich das tun? Ich weiß es nicht. Bitte helfen Sie mir.Drucken der Geschichte mit Cookies in PHP

+1

Sie können nicht. Nicht, wenn Sie sie nicht auch woanders aufbewahren. Cookies werden auf dem Computer des Benutzers gespeichert, nicht auf dem Server. Es gibt keine Möglichkeit, gleichzeitig auf die letzten 10 Cookies zuzugreifen, oder wenn Sie dies tun (dh wenn mehr als 10 gleichzeitige Benutzer vorhanden sind, ist es ein großer Aufwand, alle ihre Cookies zu ziehen, zu erstellen und auf einem zu zeigen (Sie müssen die Cookies für alle Benutzer auf allen Seiten ziehen und die letzten 10 herausfiltern.) Vergessen Sie es, finden Sie einen anderen Weg, um zu tun, was Sie wollen. – junkfoodjunkie

+0

Genau das, was @junkfoodjunkie gesagt hat. Außerdem möchte ich das hinzufügen kann Cookies, die durch die Funktion '$ _COOKIE' gesetzt werden, leicht manipulieren.So wenn Sie wirklich' $ _COOKIE' und nicht Sitzungen verwenden wollen, stellen Sie sicher, dass Sie auch die erlaubten Pfad-, Domänen- und HttpOnly-Parameter gesetzt haben. –

Antwort

0

Wenn Sie die letzten 10 vom selben Benutzer speichern möchten, können Sie serialize verwenden, um ein Array im Cookie zu speichern. Aber denken Sie daran, dass keine Informationen zwischen Benutzern ausgetauscht werden, da Cookie nur für diesen Besucher bestimmt ist. Zum Beispiel:

if(isset($_GET['name'])){ #get the name 
    $name = strip_tags($_GET['name']); 
    $names = []; # just names in case there is no names array 
    if(isset($_COOKIE['cookie'])){ #read cookie  
    $names = unserialize($_COOKIE['names']);  
    } 

    array_unshift($names, $name); #put the name in begging of the list 

    if(count($names) > 10){ #remove last entry if have more then 10 
    array_pop($names);  
    } 
    setcookie('names', serialize($names), time()+3600); 
} 

//to print just read cookie and 
foreach($names as $name){ 
    echo $name; 
}