Avatar billede djthomas Nybegynder
05. december 2003 - 15:25 Der er 7 kommentarer og
1 løsning

set en session

Hej jeg har lavet et afstemningsscript, på nogle billeder, men jeg vil gerne sætte en session med id'et på hver enkelt billede, så man kun kan stemme engang pr besøg.
Men det driller lidt. Jeg har sat session_start();

$pic_id = $pic["id"];
if(isset($_SESSION["$pic_id"])){
                       
  echo "Der er stemt";                           
} else {                           
  $_SESSION["$pic_id"] = "yes";
  echo "Stem her";
}
Avatar billede Slettet bruger
05. december 2003 - 22:16 #1
Jeg tror ikke, at du skal sætte $_SESSION["$pic_id"] = "yes"; på det sted... Det er vel der, hvor du skal skrive linket, man klikker på for at stemme, og du skal først sætte $_SESSION["$pic_id"] = "yes"; når man reelt har stemt.

Ellers må du fortælle lidt mere, for der er ikke umiddelbart noget galt med den vidste kode.
Avatar billede djthomas Nybegynder
06. december 2003 - 16:56 #2
Oki jeg har ændret lidt på det, men der er en tig som undre mig MEGET... Nu ser det sådan her ud:

if($_SESSION["$pic_id"] == "yes"){
  echo "<td>Der er stemt</td>";
  echo "</tr><tr><td colspan='2' class='vote_new'>Nyt billede? <a href='".$url."'>TRYK HER</a></td></tr>";
} else {
  AFSTEMINGEN HER
}

Så har jeg skrevet : $_SESSION["$pic_id"] = "yes"; Der hvor afstemningen bliver fyret af, altså først når der bliver stemt. MEN hvis jeg laver en var dump liger efter $_SESSION["$pic_id"] = "yes"; så er den sat men i det kode jeg har skrevet øverst i denne kommentar er den ikek sat mere når jeg skriver var_dump($_SESSION["$pic_id"]);
Avatar billede Slettet bruger
06. december 2003 - 17:43 #3
Er du sikker på at $pic_id indeholder noget meningsfuldt på dette sted?

Prøv at lave følgende lige før din if-blok:

print_r($_SESSION);
print_r($pic_id);

Så kan du se, om der $pic_id har det rigtige indhold, og om der findes en $_SESSION-variabel med det rigtige navn og indhold.
Avatar billede djthomas Nybegynder
06. december 2003 - 21:05 #4
Den skriver: Array ( [804] => yes ) 804 Så det er jo godt nok, men når man så refresher siden, så skriver den bare Array () 804 Så det er som om at sessionen bliver nulstillet, og det skal den jo ikke... Og der står session_start(); som det først på siden. Den burde vel gemme sessionen til at man lukker browseren eller til den timer out....
Avatar billede Slettet bruger
07. december 2003 - 01:30 #5
Jeg har lige fundet et sted, hvor der står, at nøgleværdierne i £_SESSION-arrayet er undelagt samme regler som normale variablenavne. De kan for eksempel ikke starte med et tal.

Prøv at finde alle steder, hvor du bruger $_SESSION["$pic_id"] og ret det til $_SESSION["pic_$pic_id"]

Dette gør, at den vil forsøge at bruge nøgleværdier i stil med pic_804 i stedet for bare 804
Avatar billede djthomas Nybegynder
07. december 2003 - 20:57 #6
Det er da rigtigt nu du siger det.. Vidste det faktisk godt. Tænkte bare ikke lige på det. Svar lige så får du point
Avatar billede Slettet bruger
07. december 2003 - 23:15 #7
Fik du det til at virke så?
Avatar billede djthomas Nybegynder
08. december 2003 - 08:40 #8
yeps det gjorde jeg. Takker
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

IT-JOB