Avatar billede sqwer Nybegynder
13. oktober 2003 - 20:48 Der er 13 kommentarer

Funktioner i sessions

Er der en måde at lægge en funktion ind i en session?
Jeg laver en hjemmeside hvor sproget kan skiftes, så alle labels o.l. ligger i $_SESSION. Og nu står jeg så og skal bruge ordenstal (1st, 2nd, 3rd, etc.). Umiddelbart ville jeg lave en funktion til dette, men så skal den jo helst kunne puttes ind i $_SESSION, så den skifter med sproget. Kan man det?
Ellers vil jeg nok lave et array med tallene 1-100 (jeg skal heldigvis ikke bruge flere), men jeg tænkte det andet ville være fiksere :).
Avatar billede erikjacobsen Ekspert
13. oktober 2003 - 20:52 #1
Du kan have

  function dansk($a) {...}
  function serbokratisk($a) {...}

så kan du

  $_SESSION['sprog']="serbokroatisk";

og

  print $_SESSION['sprog'](7);
Avatar billede ztyxx Nybegynder
13. oktober 2003 - 20:53 #2
if ($_SESSION["dansk"]){
    dansk_funktion();
    }

kan vel gøre det??
Avatar billede ztyxx Nybegynder
13. oktober 2003 - 20:54 #3
havde ikke set eriks svar...
Avatar billede sqwer Nybegynder
13. oktober 2003 - 21:48 #4
Så skal jeg jo stadig inkludere alle funktionerne på hver side (det var det jeg håbede at undgå)...
Avatar billede erikjacobsen Ekspert
13. oktober 2003 - 21:55 #5
Ja, men det er heller ikke den smarteste løsning jeg har givet. Det er
blot det, der mest ligner det du spørger om. Det bedste er umådeligt meget
simplere:

  $_SESSION['sprog']="serbokroatisk";

og

  include($_SESSION['sprog'].'.php');

og så skal funktionerne i de forskellige sprogfiler blot have samme navn.
Avatar billede sqwer Nybegynder
13. oktober 2003 - 22:49 #6
Nogle gange skal man ikke svare på det folk spørger om, der er jo visse der ikke kan se skoven for bare træer ;)
Men det jeg vist egentlig tænkte var om jeg også kunne slippe for at inkludere den ene fil hver gang... (hvilket snart ikke har så meget med det oprindelige spørgsmål at gøre, undskyld jeg roder lidt rundt i det :))
Avatar billede olebole Juniormester
13. oktober 2003 - 23:28 #7
<ole>

Det kan da ikke være et problem at inkludere en fil  :D

Pas i øvrigt lige på med at få andre 'kreative' idéer af Eriks post.
Skriv f.eks. _aldrig_:
  include($_POST['sprog'].'.php');
eller:
  include($_GET['sprog'].'.php');

og _slet_ ikke:
  include($_POST['sprog']);
eller:
  include($_GET['sprog']);
hvor variablen indeholder hele filnavnet og inkluderes ukritisk. Det giver en 'hacker' direkte adgang til at inkludere en hvilken somhelst fil - men ses desværre alt for ofte!

/mvh
</bole>
Avatar billede erikjacobsen Ekspert
14. oktober 2003 - 06:42 #8
"...om jeg også kunne slippe for at inkludere ...."

Men det gør du jo også med mit forslag. Det er maskinen, der gør
arbejdet med inkludering for dig, så du slipper for det.


;)
Avatar billede olebole Juniormester
14. oktober 2003 - 10:27 #9
... hvad har man ellers maskiner til?  :D
Avatar billede sqwer Nybegynder
14. oktober 2003 - 23:44 #10
hehe... ok, må vist hellere lukke det her spørgsmål inden jeg får vrøvlet mere...
erik, pointene venter...
Avatar billede erikjacobsen Ekspert
15. oktober 2003 - 08:12 #11
Kan du bruge noget?
Avatar billede sqwer Nybegynder
25. oktober 2003 - 21:48 #12
Er det dig eller mig der bestemmer om jeg giver point? ;)
Nå ja, så længe du ikke vil lægge et svar er det vel egentlig dig...
Men ja, jeg har fået hjælp til at rydde op inde i mit lille, forvirrede hoved, så tag nu og smid et svar...
Avatar billede erikjacobsen Ekspert
25. oktober 2003 - 21:52 #13
Point er ligemeget - jeg vil hellere høre hvad du er nået frem til. Derfor spørger jeg ;)
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