Avatar billede webcreator Nybegynder
06. august 2003 - 17:04 Der er 27 kommentarer og
1 løsning

Session - er dette korrekt ?-lille eksempel

Hej.

Jeg vil nu kontakte freepaq.dk, efter en del problemer på deres hotel. Sessions virker ikke. Jeg har vedlagt et eksempel, hvor en side laver en session med et indhold, og efterfølgende redirecter til en anden side, som _burde_ udskrive indholdet.

Men inden afsendelse vil jeg sikre, at koden er korrekt :

nr1.php:
--------
<?php

start_session();

$_SESSION['test'] = "Overført med succes";

header("location: nr2.php");

?>
--------


nr2.php
--------
<?php

start_session();

echo "Indhold af Session:<br>";

echo $_SESSION['test'];

?>
-------

Nogen fejl ?
Avatar billede webcreator Nybegynder
06. august 2003 - 17:05 #1
Freepaq's undskyldning var, at de havde opgraderet til nyere PHP version. Måske den håndtere SESSIONS anderledes ??
Avatar billede schaefner Juniormester
06. august 2003 - 17:06 #2
der ser ikke ud til at være nogen fejl.
Avatar billede nicklasb Nybegynder
06. august 2003 - 17:11 #3
der ser da så sandelig ud til at være en fejl, hvis serveren er sat bare en anderledes op!

prøv eventuelt at se om det er krævet at sessions registreres på den rigtige måde..

altså med en : session_register ('variabel');
Avatar billede nicklasb Nybegynder
06. august 2003 - 17:12 #4
anelse anderledes..
resten er gratis.. ;D
Avatar billede webcreator Nybegynder
06. august 2003 - 17:12 #5
Prøver jeg.
Avatar billede webcreator Nybegynder
06. august 2003 - 17:12 #6
Hehe :)
Avatar billede spunk13 Nybegynder
06. august 2003 - 17:13 #7
Prøv med session_start();
Avatar billede webcreator Nybegynder
06. august 2003 - 17:13 #8
Dvs. sådan :

session_register('$_SESSION['test'] = "hej"');
Synes det ser underligt ud..
Avatar billede spunk13 Nybegynder
06. august 2003 - 17:15 #9
Hvorfor afviser du mit? Du finder ingen funktion der hedder start_session() på http://dk.php.net
Avatar billede webcreator Nybegynder
06. august 2003 - 17:18 #10
Spunk > Jeg har en session_start() i mine dokumenter
Avatar billede spunk13 Nybegynder
06. august 2003 - 17:20 #11
Okay, hvorfor fremgår det så ikke af dine kode?
Avatar billede webcreator Nybegynder
06. august 2003 - 17:21 #12
Det gør det da også. Det står i toppen af hvert dokument
Avatar billede webcreator Nybegynder
06. august 2003 - 17:21 #13
Og hvad har dk.php.net i øvrigt med sagen at gøre ?
Avatar billede webcreator Nybegynder
06. august 2003 - 17:23 #14
Nicklasb > Hvordan fungere session_register ?
Jeg har læst på php.net, men alt hvad jeg kan finde er :

$barney = "A big purple dinosaur.";
session_register("barney");

Først og fremmest mener jeg, at der mangler et $ foran variablen i register (ikke?). Men hvad hedder min session nu ? Kan den kaldes med $_SESSION['barney'] ?
Avatar billede nicklasb Nybegynder
06. august 2003 - 17:24 #15
nææ.. du starter med at give en variabel et navn, og et indhold..
altså fx;

$username = $r['username']; // Evt. udtræk fra en database, eller andet..
session_register ('username');


Nu skulle variabelen gerne være $_SESSION['username']; og ind holdet dit udtræk..

Hvis du videre i scriptet ikke må have en variabel der hdder $username kan du så evt unset() variabel.. Eksempelvis unset($username);
Så er det kun din session der indeholder dataene..

se evt http://dk.php.net/manual/en/ref.session.php for mere info.. ;D
Avatar billede webcreator Nybegynder
06. august 2003 - 17:24 #16
Spunk > Vi har snakket forkert af hinanden. Og jeg har skrevet forkert :)
Der skulle self. stå session_start()
Avatar billede webcreator Nybegynder
06. august 2003 - 17:24 #17
Ok, tak, nicklasb
Avatar billede nicklasb Nybegynder
06. august 2003 - 17:25 #18
så ikke lige din kommentar før jeg postede.. men dit eksempel er HELT rigtigt.. ;D..

Og nej.. der mangler intet $ foran.. ;D
Avatar billede nicklasb Nybegynder
06. august 2003 - 17:27 #19
kan du få dine sessions på serveren til at virke nu?? altså kommer de ind i _SESSION -variablen nu eller??
Avatar billede tipsen Nybegynder
06. august 2003 - 18:20 #20
http://dk.php.net/manual/en/ref.session.php

For at starte med at bruge sessions:

session_start(); //ikke start_session(); !

Derudover fra php.net (http://dk.php.net/manual/en/function.session-register.php):

Caution
If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered(), and session_unregister().

Dvs. det miks, der foreslåes ovenfor, af $_SERSSION-arrayet og session_register() skal man IKKE benytte, da det kan give uberegnelig opførsel!!
Avatar billede webcreator Nybegynder
06. august 2003 - 18:21 #21
Uha, nu virker det hele pludselig på freepaq :-)
Det viste sig, at de havde opgraderet servere med nyeste PHP. Og derfor havde der været problemer. Men hotellet køre godt igen.

I øvrigt blev problemet løst (ang. min kode i dette indlæg) ved at rette min fejl i toppen - nemlig start_session. Det var self. omvendt.

Spunk > Smid lige et svar igen.
Nicklasb > Du skal også have points :-)
Avatar billede tipsen Nybegynder
06. august 2003 - 18:22 #22
Dit oprindelige eksempel er tæt på rigtigt - bare ret til:

<?php
session_start();
$_SESSION['test'] = "Overført med succes";
header("location: nr2.php");
?>
--------

nr2.php
--------
<?php
session_start();
echo "Indhold af Session:<br>";
echo $_SESSION['test'];
?>
Avatar billede tipsen Nybegynder
06. august 2003 - 18:23 #23
Bemærk desuden, at der er nogle fejl i PHP 4.2.x, som først er blevet rettet fra v. 4.3, så hvis Freepaq ikke er med fremme, vil du stadig få problemer med dine sessions.
Avatar billede webcreator Nybegynder
06. august 2003 - 18:38 #24
Freepaq køre med PHP Version 4.3.3RC1. Så jeg tror ikke der bliver problemer dér. Men en RC ? Findes der ikke en 4.3_Stable ?
Avatar billede tipsen Nybegynder
06. august 2003 - 18:41 #25
Der findes både en stabil 4.3.2 og en 4.3.3RC2!
Avatar billede nicklasb Nybegynder
06. august 2003 - 19:01 #26
tipsen -> Så vidt jeg har forstået er der da intet galt i på den ene side at registrer med session_register, og så på en senere side hive dataene ud fra _SESSION -variablen?!? Eller er det mig der har forstået galt? Gør selv sådan på et par sider, og det virker som det skal..
men godt du fik det til at virke ;D
Avatar billede tipsen Nybegynder
06. august 2003 - 19:03 #27
nicklasb: Jeg vil tro det ikke er optimalt når de ligefrem gør opmærksom på problemet med denne kombination på php.net, som skrevet ovenfor.
Avatar billede spunk13 Nybegynder
06. august 2003 - 19:47 #28
:)
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