Set cookies - virker ikke.

Tags:    php

<< < 123 > >>
Har sat dette i index.php

I toppen.
Fold kodeboks ind/udPHP kode 

Under oprettelse.php
Fold kodeboks ind/udPHP kode 


Via submit -->
Fold kodeboks ind/udPHP kode 


har før virket, men den sætter intet.



30 svar postet i denne tråd vises herunder
18 indlæg har modtaget i alt 48 karma
Sorter efter stemmer Sorter efter dato
Cookie created..

Array
(
)

Der er intet.?



Har kørt det en del :(



Ah, I see.

I så fald, er det ikke nødvendigt at bruge cookies.

Når du "poster" en form, gemmes alle variabler i $_POST arrayet.
Af samme årsag, kan du gøre følgende:

Fold kodeboks ind/udPHP kode 




Ah, ja. Min fejl. Den skulle egentlig have været lige før semi-kolonet til sidst.

Har du inkluderet index.php? Du kunne også sætte cookien idet formen bliver postet blandt dine kontrol statements og selve oprettelsen. Specielt hvis index.php bliver inkluderet på andre sider, hvor det ikke er nødvendigt med samme check.



Du kan jo prøve at lave en test så?

Opret en fil, sæt en cookie og udskrive hele cookie arrayet.. ?

Fold kodeboks ind/udPHP kode 




Som fejlen melder:
Notice: Undefined index: eln in /home/bparynqn/public_html/index.php on line 44

Det betyder grundlæggende at referer til noget du ikke aner om flyvende fis om det findes.
Det er lidt det samme som at du står og hælder kaffen ud af én beholder, og over i en anden. Men du har ikke kontrolleret at der rent faktisk er en beholder. I programmering må man ikke tro. :o)

Benytter du isset() ved du om det du refererer til også findes, og kan agere derefter.



Indlæg senest redigeret d. 14.12.2013 16:25 af Bruger #10216
Hvorfor <?php skal være først er forklaret af flere omgange. :)

Men læs denne: http://stackoverflow.com/questions/8028957/headers-already-sent-by-php så tror jeg det giver mening.



Indlæg senest redigeret d. 27.12.2013 23:05 af Bruger #10216
Læs det der står i indlægget fundet via linket til stackoverflow, så vil du forstå hvorfor webserveren tolker det som en fejl.

Og den er sippet fordi error_reporting er slået til, og error_reporting er sat til at være sippet. Hvis vi/du ikke havde gjort det, vil du aldrig opdage hvorfor din cookie ikke blev gemt korrekt.

og som ekstra note. man har aldrig måtte skrive til browseren, før header funktionerne har skrevet HTTP headers. Det har altid været en fejl. Bare fordi du ikke har set den før, betyder jo ikke at den ikke har været der. ;)

Så alt-i-alt læs:

http://stackoverflow.com/questions/8028957/headers-already-sent-by-php
og evt. http://php.net/manual/en/function.error-reporting.php



Indlæg senest redigeret d. 27.12.2013 23:20 af Bruger #10216
Og du har kørt scriptet mere end en gang?

En cookie skal skrives før den kan indlæses.

Da setcookie er en header funktion, sker den reelle funktion af setcookie() først når et response sendes til klienten. Værdier til $_COOKIE indlæses, når klienten sender et request.

Derfor er $_COOKIE ikke udfyldt, når $_COOKIE læses første gang. Hvis koden afvikles korrekt, vil $_COOKIE være udfyldt ved andet request.



Har du prøvet nogle af disse eksempler?

http://php.net/setcookie



<< < 123 > >>
t