|
| check for cookie support Fra : Thomas L. Pilegaard |
Dato : 17-11-04 16:02 |
|
Hej
Er der en måde man kan checke for cookie support i php ?
Det kan gøres i javascript, men i php har jeg ikke fundet anden måde
end at skrive en cookie og reloade siden og checke om cookien findes.
mvh Thomas
| |
Christian Joergensen (17-11-2004)
| Kommentar Fra : Christian Joergensen |
Dato : 17-11-04 17:20 |
|
On Wed, 17 Nov 2004 16:02:07 +0100, Thomas L. Pilegaard wrote:
> men i php har jeg ikke fundet anden måde end at skrive en cookie og
> reloade siden og checke om cookien findes.
Det er saadan man goer.
--
Christian Jørgensen | It's always a long day
http://www.razor.dk | - 86400 doesn't fit into a short.
| |
Thomas L. Pilegaard (17-11-2004)
| Kommentar Fra : Thomas L. Pilegaard |
Dato : 17-11-04 21:11 |
|
On Wed, 17 Nov 2004 17:19:53 +0100, Christian Joergensen
<mail@razor.dk> wrote:
>On Wed, 17 Nov 2004 16:02:07 +0100, Thomas L. Pilegaard wrote:
>
>> men i php har jeg ikke fundet anden måde end at skrive en cookie og
>> reloade siden og checke om cookien findes.
>
>Det er saadan man goer.
Det anede mig.
Tag følgende kode:
<?php
session_start();
if(isset($_COOKIE["PHPSESSID"])) {
echo "success <br />";
echo session_id();
}
else {
//echo "fejl<br />";
header("Location: $_SERVER[PHP_SELF]");
}
?>
Hvis cookies understøttes hos clienten, virker det jo meget godt. Men
hvis ikke får vi en uendelig løkke.
Hvordan finder man ud af det, hvis session_cookies ikke kan sættes ?
Umiddelbart syntes jeg at når session_cookies ikke er muligt så vil
man altid rende ind i problemer med at der ved hvert reload altid
startes forfra. Hvordan skal scriptet så kunne vide at cookien
allerede burde være skrevet ?!
mvh Thomas
| |
Daniel Overby (18-11-2004)
| Kommentar Fra : Daniel Overby |
Dato : 18-11-04 09:13 |
|
> Umiddelbart syntes jeg at når session_cookies ikke er muligt så vil
> man altid rende ind i problemer med at der ved hvert reload altid
> startes forfra. Hvordan skal scriptet så kunne vide at cookien
> allerede burde være skrevet ?!
Jeg ville kontrollere det med en variabel - helst session, men det går nok
ikke i dette tilfælde, da det ser ud til at du vil ligge session-id i den
cookie.
Alternativt må du tilføje "?cookie=placed" til din URL og teste med $_GET.
Du kan også bruges $_POST - omend det skal sættes anderledes op.
- Daniel
| |
Thomas L. Pilegaard (18-11-2004)
| Kommentar Fra : Thomas L. Pilegaard |
Dato : 18-11-04 15:11 |
|
DOH !!
Engang imellem må man jo indrømme at løsningen ligger lige for ens
næse, men at man ikke kan se den.
Jeg har nu løst problemet ved at index.php undersøger om
session-cookien er der,
hvis ikke kaldes noocookie.php der undersøger om index.php har skrevet
cookien
Er den der returneres der til index.php. Er den der ikke udskrives
fejlmeddelelse og programafviklingen stoppes.
index.php:
<?php
session_start();
if(!isset($_COOKIE["PHPSESSID"])) {
header("Location: noocookie.php");
}else {
echo "success <br />";
echo session_id();
}
?>
noocookie.php
<?php
session_start();
if(isset($_COOKIE["PHPSESSID"])) {
header("Location: test.php");
}else {
echo "fejl<br />";
}
?>
| |
|
|