kati: überprüfen ob cookie gesetzt

Beitrag lesen

hallo daniel,

wenn ich mir deinen Code anschaue, dann glaube ich es ist doch richtig, du hast den Namen des Cookie als Konstante, versuch es mal ohne Hochkommata. Bei mir klappts wunderbar. Also ich habe ein Formular (html-Dokument) mit 2 Textfeldern - Kennung und Password, dient zur Authentifizierung bei der mysql-DB. Ich will mir jedoch den Namen (also Kennung) des Besuchers merken, daher speichere ich es als Cookie, ansonsten sollte es ziemlich deinen Vorstellungen entsprechen.

also das hier ist erprobt, musst du nur deinen Vorstellungen anpassen:

<?php
//Festlegen der Gültigkeitsdauer
function valid($stunden) {
         $sekunden = time() + 3600 * $stunden;
         return $sekunden;
}

//auslesen der vom Client geschickten Daten
while(list($key,$value) = each($HTTP_POST_VARS)) {
//Verbinden mit der Datenbank:
if ($key == 'kennung') $k = $value;
if ($key == 'password') $p = $value;
}

//Verbindung mit der DB herstellen
$conn = mysql_connect('localhost', $k, $p);
// prüfen, ob ok
if ($conn) {

//da... prüfen, ob die cookie_name schon gesetzt ist
if(!isset($_COOKIE[cookie_name])) {
//wenn nicht, für 2 Stunden Cookie setzen
  setcookie(cookie_name,$k,valid(2));
} else {
  //beim zweiten Login-Versuch kommt einfach diese Meldung :-)
  echo "es wurde KEIN Cookie gesetzt/Cookie ist bereits gesetzt!";
}

//das hier betrifft die DB... nichts mit Cookies zu tun
if ($ergebnis = mysql_list_dbs()) {
echo '<select name="st" width="100" style="width:500px;" size="5">';
while($ds = mysql_fetch_row($ergebnis)) {
    echo '<option>';
    for ($i = 0; $i < mysql_num_fields($ergebnis); $i++) {
        echo $ds[$i];
        if (mysql_num_fields($ergebnis) > 1) echo ' - ';
    }
    echo '</option>';
}
echo '<select>';
} else {
//daweil nur eine einfache Ausgabe der Fehlermeldung
echo 'Fehlermeldung: ' .mysql_error();
};
};
?>

Wenn du willst kann ich dir das ganze Projekt schicken, wenn du eine mysql-DB hast, kannst du es ausprobieren, ich habe nämlich in der nächsten Datei (in einem anderen Frame) die Begrüßung reingetan.

<html>
<head></head>
<body>

<table>
<tr>
<td>
<font face="Arial">
<?php
echo 'Hallo ' . $HTTP_COOKIE_VARS['cookie_name'];
?>
</font>
</td>
</tr>
</table>

</body>
</html>

also es funktioniert.

cu kati

hallo forumler,

ich dreh noch durch mit diesen sch* -cookies....

ich will checken, ob ein cookie schon gesetzt wurde, und es, falls nicht, setzten.

ich dachte das geht dann folgendermaßen:

<?php
if(isset($sent))
{
if(!isset($_COOKIE["dvcunited"])) {
  $value="teilgenommen"; setcookie("dvcunited",$value,time()+3628800); }
else {
     echo "es wurde KEIN Cookie gesetzt/Cookie ist bereits gesetzt!"; }
}
?>

dieses code steht VOR allem html code auf der seite.
die unterscheidung ob gesetzt oder nicht scheint auch zu funktionieren. aber der neue cookie wird _nicht_ gesetzt ???

wenn ich die seite lade, OHNE das der cookie gesetzt ist, müßte es ja eigentlich mit setcookie() gesetzt werden.
stattdessen folgende fehlermeldung:

Warning: Cannot add header information - headers already sent by (output started at /is/htdocs/29799/www.baseball-cheerleading.de/Sites/sonstiges/gewinnspiel_popup.php:4) in /is/htdocs/xxxxxx/www.baseball-cheerleading.de/Sites/sonstiges/gewinnspiel_popup.php on line 7

wiso klappt das denn nicht???
an einfachen setcookie kann es doch nicht so viele prbleme geben???
*schluchz*

grüße und danke für jede hilfe !!!
daniel