/ 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
Jeg er gal på småkager (cookies) :o)
Fra : rofe@mailme.dk


Dato : 19-11-02 00:25

Hejsa NG

Som man nok kan se er jeg lidt gal på cookies, fordi jeg ikke kan få det til
at virke.

URL : http://www.squik.dk

Problem:
Man skal kunne vælge en farve ud fra den <select> box der er på siden (kun
blå og rød virker pt.)
og det kan man også og den skrifter, jubii...

Så langt så godt! Så skulle den jo gerne huske det når man skifter side vha
menuen, hvilket jeg har
forsøgt at gøre med setcookie(), og det er her problemet opstår.

Bruger jeg:
setcookie("colorTheme", $colorTheme);
virker det, den husker farven, men kun for det ene directory den står i
(siden er opdelt i directories
som set på linksne, der er ikke noget hokus pokus der)
Det vil sige, skifter jeg på infront farve til blå og går ned i contact
bliver farven rød, går jeg derefter
tilbage til infront bliver den blå igen, ergo der er sat en cookie, som
husker colorTheme værdien, men
kun for www.squikdk/infront/

Jeg har forsøgt at sætte path, time, domain osv, men tilføjer jeg bare én
parameter mere, bliver cookien
ikke sat, det funker bare ikke, ikke engang vha sessions selv om den der
beholder samme session-id mens
man er på siden, kan den ikke hente $colorTheme i eks contact hvis den er
registreret vha session_register()
under infront.

Jeg er ved at blive gammel og få ben af porre af det her :P

cookie bliver for resten sat i top.php som inkluderes på alle sider fra
samme sted.
Source : http://www.squik.dk/top.phps

Er der ikke en venlig sjæl der kan se hvad jeg gør galt eller komme med gode
forslag ?

På forhånd tak for hjælpen.

Med venlig hilsen
Ronni
rofe@mailme.dk




 
 
Tinky Winky (19-11-2002)
Kommentar
Fra : Tinky Winky


Dato : 19-11-02 00:28

> Som man nok kan se er jeg lidt gal på cookies, fordi jeg ikke kan få det
til
> at virke.

Har du set på sessions? Nemt at arbejde med, og hvis det passer ligeså godt
til dit problem som selvdefinerede cookies...



rofe@mailme.dk (19-11-2002)
Kommentar
Fra : rofe@mailme.dk


Dato : 19-11-02 00:40

Hej Tinky Winky

Ja jeg har set på sessions, og jeg kan godt starte en session som beholder
samme
session_id() mens man er på siden, og browser gennem de forskellige i
menuen.
Der opstår bare igen samme problem som med cookies, nemlig at når jeg bruger
session_register($colorTheme) eksempelvis i infront/ husker den det stadig
kun
for den enkelte side og ikke de andre.

Jeg kunne køre sessions over en database, men det kræver at jeg skriver
?PHPSESID=hubbalubba på alle links der bliver lavet.
Det er jeg ikke interessert i, hvorfor ?
- dovenskab
- overskueligheden
- føler det er irreaterende at skulle huske at lægge den til HVER eneste
gang man
laver et link

Det må da også kunne lade sig gøre med cookies alene.


/Ronni
rofe@mailme.dk




rofe@mailme.dk (19-11-2002)
Kommentar
Fra : rofe@mailme.dk


Dato : 19-11-02 00:35

debug()
en funktion jeg selv har lavet der ser ud som følgende:

function debug($var)
{
echo '<script>alert("' . $var . '");</script>';
}

gør blot at man kan se en variabels værdi vha javascript alert()


------------------------------------------------------------------

Tankegangen bag:

if(isset($_GET["colorTheme"]))
{
$colorTheme = $_GET["colorTheme"];
}
else if(isset($_COOKIE["colorTheme"]))
{
$colorTheme = $_COOKIE["colorTheme"];
}
else if(!isset($colorTheme))
{
$colorTheme = 0;
debug($colorTheme);
}

Når farven ændres vha <select> boxen sættes colorTheme vha javascript.
?colorTheme=<værdi>
Dette gøres vha følgende funktion:
function selectSubmit()
{
location.href = "?colorTheme=" + document.ct.colorTheme.value;
}

Derfor tjekker jeg først $_GET om den har en værdi (1. prioritet)
Hvis $_GET ikke er sat, er farven ikke ændret, dvs hvis
farven dog er blevet ændret på noget tidspunkt bør denne værdi
findes i $_COOKIE (2. prioritet)
Er $_COOKIE heller ikke sat er det første gang du kommer ind på
siden og haver i infront/ hvor $colorTheme sættes til 0 for rød, default
farve.

Alle farver ligger i en tabel i db med id og farve.

Håber det hjælper lidt på klarheden over hvad jeg foretager mig og har tænkt


/Ronni
rofe@mailme.dk





Ukendt (19-11-2002)
Kommentar
Fra : Ukendt


Dato : 19-11-02 18:45

Du husker at hente cookie variablen med enten
$_REQUEST["kagemand"];
eller
$_COOKIE["kagemand"];
ikk ?

rofe@mailme.dk (19-11-2002)
Kommentar
Fra : rofe@mailme.dk


Dato : 19-11-02 20:26

Se http://www.squik.dk/top.phps
Det er netop det jeg gør.

Har også forsøgt med
$HTTP_COOKIE_VARS
men det var den også ligeglad med.

/Ronni



rofe@mailme.dk (19-11-2002)
Kommentar
Fra : rofe@mailme.dk


Dato : 19-11-02 22:14

Fik problemet løst vha sessions.

Bare mig der i første omgang ikke havde tænkt på at når man registrerer
en variabel så skal man ikke skrive session_register($var) men
session_register("var");

FLOT af mig ! Så nu har jeg fået ben af porre, så kan jeg lære det!


/Ronni
rofe@mailme.dk
[anti-laf giraf - giraffen der ikke ville dø]



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

Månedens bedste
Årets bedste
Sidste års bedste