PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Cookie - aktiviert?


[UMC]Curby
14.05.2002, 19:23:51
Hallo,

gibt es eine möglichkeit ,abzufragen ,ob bei einem cookies aktiviert sind? Hiermit funzte es komischwerweise nicht:

<?
if (setcookie("a", "a", time()+60)) echo "a";
else echo "b";
?>

|Coding
14.05.2002, 19:33:28
frag die variable des cookies mal mit:

$variable = $HTTP_COOKIE_VARS["cookie_name"];


...ab. das sollte klappen

[UMC]Curby
14.05.2002, 19:42:32
naja...prüfen ob der dann gesetzte cookie existiert ist scheisse ,da er erst beim 2ten aufrufen der seite erkannt wird ,sofern gesetzt.

|Coding
14.05.2002, 20:46:28
ich versteh jetzt nicht ganz... du willst nur prüfen ob ein cookie gesetzt ist? wenn ja, lass es dir ausgeben (den cookie wert).

das was du da gefummelt hast kann nicht funktionieren, weil vor einem cookie set keine andere aufgabe/sache an den browser gesendet werden darf. deine seite MUSS also mit <? setcookie(...); ?> beginnen. kriegts du keinen fehler ausgegeben?

[UMC]Curby
14.05.2002, 21:02:42
ich will nur überprüfen ,ob bei einem user cookies gesetzt werden können. in diesem sinn e ,thx an Progman

ingo
14.05.2002, 21:31:19
²|coding

wo siehst du da eine ausgabe?
müsste schon funktionieren.
abzufragen ob ein browser cookies unterstützt geht auch mit javascript.

lg, ingo

[UMC]Curby
14.05.2002, 21:41:32
also der code mit get_browser funzt nicht wirklich...gibt es da noch eine weitere möglichkeit?

|Coding
14.05.2002, 21:55:54
@ ingo,

ich habe auch nicht gesagt das da eine ist :-)

ingo
14.05.2002, 21:59:04
ich hab hier drei scripts:


<script language="JavaScript">
function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}

function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}
var enabled="";
var exp = new Date();
exp.setTime(exp.getTime() + (60*1000));
// valid: one minute (60seconds*1000 hundreds)
SetCookie ('wannasomecookie', 1, exp);
enabled = GetCookie('wannasomecookie');
</script> <script
language="JavaScript">
if (enabled==null) document.write("<font face=verdana
size=-1><b><center>
Ihr Browser aktzeptiert keine Cookies<br>Your Browser
does not accept Cookies</font>");
else document.write("<font face=verdana
size=-1><b><center>
Ihr Browser aktzeptiert Cookies<br>Your Browser does
accept Cookies</font>");
</script>

das 1.macht im endeffekt nichts anderes als eine cookie zu setzen und zu schaun ob er abrufbar ist. wenn nicht: keine cookieunterstützung


das ist das ganze ein bisschen kürzer:

function checkCookie(){
setCookie("CookieTest", "OK")
if (!getCookie("CookieTest"))
return false
else{
eraseCookie("CookieTest")
return true
}
}


und das beste ist im endeffekt folgendes:

if (document.cookie){
// Cookie-Code
}

oder:


if (document.cookie.length>0){
// Cookie-Code
}

am sichersten und besten zu verwenden allerdings die beiden ersten.

ahja im übrigen: das ist alles javascript

lg, ingo

ingo
14.05.2002, 22:02:47
²coding

das was du da gefummelt hast kann nicht funktionieren, weil vor einem cookie set keine andere aufgabe/sache an den browser gesendet werden darf.

es gibt keine ausgabe bei dem code:
<?
if (setcookie("a", "a", time()+60)) echo "a";
else echo "b";
?>

und ich versteh eigentlich auch nicht, wieso das nicht funktioniert..

lg, ingo

Progman
14.05.2002, 23:44:09
Was funktioniert denn da nicht? Es wird ein Cookie mit dem Namen a und den Inhalt a an den Browser gesendet. Was _der_ damit macht ist seine Sache, nicht die von PHP.

[UMC]Curby
15.05.2002, 15:04:14
ich habs getestet ,egal ,ob cookies angenommen werden oder nicht ,es wird immer "a" ausgegeben.

Progman
15.05.2002, 15:22:07
ja, da setcookie immer 1 zurückliefert. Es sein denn es ist ein Fehler aufgetreten.

[UMC]Curby
15.05.2002, 15:30:33
Original geschrieben von Progman
ja, da setcookie immer 1 zurückliefert. Es sein denn es ist ein Fehler aufgetreten.

müsste der das in diesem Fall nicht auch ,da der Cookie nicht gesetzt werden konnte?

|Coding
15.05.2002, 15:38:18
Original geschrieben von ingo
²coding



es gibt keine ausgabe bei dem code:
<?
if (setcookie("a", "a", time()+60)) echo "a";
else echo "b";
?>

und ich versteh eigentlich auch nicht, wieso das nicht funktioniert..

lg, ingo

Ingo,

was den nun??? wo habe ich den was von einer ausgabe geschrieben??

das mit dem cookie kann doch nicht gehen weil nichts vor dem cookie geschrieben werden darf, also es darf vor dem cookie set kein byte an den browser gesendet werden... und ich finde wenn ein if(... davor steht, dann wird doch was gesendet, oder?

[UMC]Curby
15.05.2002, 15:52:31
das mit dem cookie kann doch nicht gehen weil nichts vor dem cookie geschrieben werden darf, also es darf vor dem cookie set kein byte an den browser gesendet werden... und ich finde wenn ein if(... davor steht, dann wird doch was gesendet, oder?

nun darf ich auch mal korrigieren ,es darf keine echo befehl ,also kein HTML davor stehen....php befehle dürfen so viele wie man will davor setzen!

EDIT: rechtschreibfehler dienen einzig und allein der belustigung der forumleser :D

Progman
15.05.2002, 16:22:38
(Die Datei fängt mit <?php an)
<?php
$a=4;
$b=7;
$str="Hi all";
$c=$a+$b;
if($a%$b)
$d=3;
else
$d=7;
setcookie("bla","bli");
echo("bla");
?>

Wo wird denn vor dem setcookie-Befehl was ausgegeben?

|Coding
15.05.2002, 16:31:43
axo, ich wusste nicht, dass das nur für html gilt mit dem cookies, dass man auch alles mögliche an php außer echos oder so davor schreiben kann, naja nun hab ich es endlich verstanden mit den cookies :-)

[UMC]Curby
15.05.2002, 16:44:45
aber mir kann niemand bei meinem prob auf php-basis helfen ,oder?