Hallo,
ich habe ein Cookie-Problem.
Man kann sich das wie folgt vorstellen: Ich habe eine Seite, bei der man mittels Checkboxen auswählen kann, welche Nachrichten man angezeigt bekommt. Z.B. Welt, FAZ, Spiegel.
Diese Auswahl sendet dann die Auswahl weiter und ausgegeben werden nur die Nachrichten der ausgewählten Zeitungen. Z.B. Welt ist angekreuzt, FAZ und Spiegel nicht => Nur Nachrichten aus der Welt erscheinen.
Ich möchte jetzt, dass die Haken mittels Cookies gespeichert werden können. D.h. wer beim letzten Mal die Welt angekreuzt hat, soll diesen Haken auch wieder vorfinden.
Meine bisherigen Codes:
1. Seite (hier wird die Auswahl getroffen)
<head>
<script type="text/javascript">
function blah(btn,frm){
btn.checked=!btn.checked;
cbs=frm['ctrl[record][]'];
for(var i=0;i<cbs.length;i++)cbs[i].checked=btn.checked;
}
</script>
</head>
<body>
<form action="test.php" method="post" name="myform" enctype="multipart/form-data">
<input type="checkbox" name="ctrl[record][]" value="welt">Welt<br>
<input type="checkbox" name="ctrl[record][]" value="faz">FAZ<br>
<input type="checkbox" name="ctrl[record][]" value="spiegel">Spiegel<br>
<input type="button" value="Alle markieren" onclick="blah(this,this.form)">
<input type="submit" name="btn[show]" value="Berichte lesen"></form>
</body>
2. Seite (Ausgabe)
(...)
<?
// Datenbank verbinden
include("config.php");
// Datenbank auswählen
mysql_select_db("*") or die("Fehler beim Öffnen der Datenbank");
{
$table = "news";
$liststr = "('')";
if (isset($_POST['btn']['show']))
{
if (isset($_POST['ctrl']['record']) and is_array($_POST['ctrl']['record']))
{
$_liste = array_map('mysql_real_escape_string', $_POST['ctrl']['record']);
$liststr = "('" . implode("','", $_liste) . "')";
setcookie("favpresse", $liststr, time()+10000000);
}
else
{
$_output['errors'][] = 'Sie haben keine Option ausgewählt';
}
}
if(!empty($_COOKIE["favpresse"])) $liststr = $_COOKIE["favpresse"];
$sql = "select * from $table WHERE presse IN $liststr Order By date DESC LIMIT 10";
$result = mysql_query($sql);
echo mysql_error();
if ($result)
{
while ($row = mysql_fetch_array($result,MYSQL_ASSOC))
{
(...)
?>
Bisher habe ich mit Cookies noch nicht gearbeitet. Diese Variation schien mir logisch, funktioniert aber nicht; d.h., dass zwar die angeklickten Zeitungen ausgegeben werden, doch beim nächsten Aufruf die Haken nicht gesetzt sind. Ich weiß nicht weiter und würde mich daher über Hilfe freuen - vielen Dank!