Avatar billede michael_stim Ekspert
24. august 2005 - 11:40 Der er 8 kommentarer og
1 løsning

Læse cookie direkte efter man har sendt den!

Når man sender cookien skal den checkes lige efter, men den kan ikke nå det. Er der nogen der har været ude for det før, eller har en løsning på problemet?

KODE_START
-------------------------------

<?php
if(isset($_POST['cookiea_x'])){
    setcookie('SF_wordwrap[a]','a', time()+3600);
}

    function checkcookie(){
        if (isset($_COOKIE['SF_wordwrap'])) {
            foreach ($_COOKIE['SF_wordwrap'] as $name => $value) {
                if($name==a){
                    $tilbage="<img src='word_wrap_pics/a_klik.jpg'<br />\n";
                }

            }
        }
        else {
            $tilbage="<input type=\"image\" value=\"cookiea\" src=\"word_wrap_pics/a.jpg\" name=\"cookiea\">";
        }
        return $tilbage;
    }
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>**Ordleg**</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="leverandor.css" type="text/css">
</head>
<body bgcolor="#fbfbfb">
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']?>">
<?php
echo checkcookie();
?>
<a href="cookieshow.php" target="_blank">Se dine bogstaver-></a>
</form>
</body>
</html>
------------------------------------------------------------
KODE_SLUT
Avatar billede michael_stim Ekspert
24. august 2005 - 11:46 #1
Jeg sætter en session samtidigt med at jeg sætter cookien. Men er der nogen der har en bedre løsning må i gerne poste den. Lader spørgsmålet stå åbent lidt til.
Avatar billede Slettet bruger
24. august 2005 - 12:02 #2
Det er korrekt at man ikke kan læse en cookie på samme side som du sætter den. Så den med en session er nok det bedste, medmindre du vil genere brugeren med en redirect :)
Avatar billede bromer Nybegynder
24. august 2005 - 12:03 #3
Du kan vel manuelt ændre i $_COOKIE arrayet?
Avatar billede Slettet bruger
24. august 2005 - 12:08 #4
Det vil jeg mene er en dårlig ide. Så har du ikke styr på om cookien rent faktisk blev læst/sat eller det blot er noget du tror. Og så er vi jo tilbage til problemet med globalt scope som $_GET, $_POST, $_COOKIE osv. skulle forhindre.
Avatar billede bromer Nybegynder
24. august 2005 - 12:13 #5
el_barto: Jeg er enig om at det ikke er fornuftigt, men vi er ikke ude i samme problem.
Avatar billede michael_stim Ekspert
24. august 2005 - 12:53 #6
Løsningen blev at jeg lagde alt koden på en anden side, og postede dertil istedet for til sig selv. Og så redirectede med en header.
Avatar billede michael_stim Ekspert
24. august 2005 - 21:15 #7
OK, ved at det er uden for spörgsmålet. Men eftersom jeg selv löste det, så tänkte jeg at i evt  kunne hjälpe mig med denne.

Den cookie jeg sätter skal checkes på alle siderne. Der er ét bogstav (image) man kan trykke på, og når der er trykket på det skal det forsvinde (ikke cookien). Dvs den skal checke om cookienarrayet eksisterer og derefter om navnet eksistere. Kan ikke rigtigt fådet til at köre:

KODE START
------------------------
function checkcookie(){
        if (isset($_COOKIE['SF_wordwrap'])) {
            foreach ($_COOKIE['SF_wordwrap'] as $name => $value) {
                if($name=='a'){
                                //Hvis der er a, skal der ikke komme noget image
                    break;
                }
                else {
                    $tilbage="<input type=\"image\" value=\"cookiea\" src=\"word_wrap_pics/a.jpg\" name=\"cookiea\">";
                }
            }
        }
        else {
            $tilbage="<input type=\"image\" value=\"cookiea\" src=\"word_wrap_pics/a.jpg\" name=\"cookiea\">";
        }
        return $tilbage;
    }

-----------------------------------
KODE SLUT
Avatar billede michael_stim Ekspert
25. august 2005 - 20:23 #8
Lukker her og opretter et nyt, med det nye spörgsmål. Eller hvis der er nogle der vil have point er det bare at lägge et svar.

//Michael
Avatar billede michael_stim Ekspert
27. august 2005 - 17:46 #9
Closed...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester