/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
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 />";
}
?>


Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408942
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste