Avatar billede Morten Nybegynder
07. marts 2005 - 10:09 Der er 17 kommentarer og
1 løsning

Session - virker ikke

Hej

Jeg sidder og roder med session på min Win Server 2003 med Iss og har snart været alle spørgsmål og svar igennem her på eksperten men kan ikke få det til at virke.

Jeg har lavet dette lille test script:

<?php
session_start();
if( isset($_SESSION['count']))
  $num = $_SESSION['count'];
else
  $num = 0;
$num++;
print "Num = $num<br>";
?>

og jeg kan se at den hele tiden opretter en ny session i mit session path (c:/php/tmp)

Nogen der har en ide...

Hvis i har brug for flere oplysninger om opsætning så sig til
Avatar billede Morten Nybegynder
07. marts 2005 - 10:14 #1
og ovenstående script generer hele tiden Num = 1
Avatar billede sukos Juniormester
07. marts 2005 - 10:24 #2
Du spørger jo om session er sat.
Hvis ikke, er num = 1

du sætter aldrig session'en
Avatar billede Morten Nybegynder
07. marts 2005 - 10:38 #3
jeg har ikke lavet scriptet men fundet der her på eksperten som test af session...

når man trykke reload burde den jo så tælle op  -  eller?

burde jeg selvfølgelig have skrevet - at der er ved reload at den bliver ved med at være 1 - der burde den jo tælle op.... sorry
Avatar billede sukos Juniormester
07. marts 2005 - 10:39 #4
Prøv
<?php
session_start();

if(!isset($_SESSION["count"])) {
$_SESSION["count"] = 1;
}else{
$_SESSION["count"]++;
}

echo $_SESSION["count"];
echo"<p>";
echo"<a href=\"". $_SERVER["PHP_SELF"] ."\">Opdater</a> eller <a href=\"". $_SERVER["PHP_SELF"] ."?". SID ."\">Opdater med session_id</a>";

?>
Avatar billede Morten Nybegynder
07. marts 2005 - 10:43 #5
Opdater med session id virker...

hvad betyder det at det virker... men hvorfor kan jeg så ikke få min sider til at virker...?

Jeg skriver

session_start()

$_SESSION[order_nbr]=$_post[sags_nr];

og på næste side:

echo $_SESSION[order_nbr];

og der er den tom...??
Avatar billede sukos Juniormester
07. marts 2005 - 10:49 #6
Som du selv skrev, laves der en ny fil i session.save_path ved reload
Og det er måske fordi du ikke tillader cookies?
Omend, hvis du kan logge ind her, så tillader du ihvertfald cookies sat af eksperten.
Med "cookie" mener jeg ikke den "normale" cookie, men session.cookie.

Hvad er:

session.use_trans_sid
session.use_cookies

sat til i din php.ini?
Avatar billede di8leva Nybegynder
07. marts 2005 - 10:50 #7
Skriver du "session_start()" før "echo $_SESSION[order_nbr];" på den siden også?
Avatar billede Morten Nybegynder
07. marts 2005 - 10:52 #8
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 Off Off
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 1000 1000
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.name UNQSESSID UNQSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path C:\\php\\tmp C:\\php\\tmp
session.serialize_handler php php
session.use_cookies Off Off
session.use_only_cookies Off Off
session.use_trans_sid Off Off
Avatar billede Morten Nybegynder
07. marts 2005 - 10:53 #9
di8leva>>>

Skal den ikke være det?

Jeg starter med session_start() på alle siderne....
Avatar billede di8leva Nybegynder
07. marts 2005 - 10:56 #10
cddk >> Jo, den skal vare med :) Men ibland sker det at man glemmer den
Avatar billede sukos Juniormester
07. marts 2005 - 10:57 #11
Prøv at bruge:

session.use_cookies On
Avatar billede Morten Nybegynder
07. marts 2005 - 10:57 #12
okay.. så har jeg da lært lidt ;O)
Avatar billede sukos Juniormester
07. marts 2005 - 10:58 #13
Eller:

<?php
ini_set('session.use_cookies', "On");
session_start();

if(!isset($_SESSION["count"])) {
$_SESSION["count"] = 1;
}else{
$_SESSION["count"]++;
}

echo $_SESSION["count"];
echo"<p>";
echo"<a href=\"". $_SERVER["PHP_SELF"] ."\">Opdater</a> eller <a href=\"". $_SERVER["PHP_SELF"] ."?". SID ."\">Opdater med session_id</a>";

?>
Avatar billede Morten Nybegynder
07. marts 2005 - 11:00 #14
nu virker opdater også
Men så må der jo være noget galt med det kode jeg bruger i mine filer for det virker stadig ikke - jeg prøver lige at poste mine sider
Avatar billede sukos Juniormester
07. marts 2005 - 11:03 #15
Det er jo fordi i php.ini, er session.use_cookies sat til Off
D.v.s at du hver gang selv skal parse session_id med i links og forms
Hvis du sætter den til On, og genstarter Apache, (du har vel Apache! :O) ), anyway, genstarer din webserver, så virker dine sider formodentlig.
Avatar billede Morten Nybegynder
07. marts 2005 - 11:05 #16
nope - desværre - her er jeg nød til at bruge iss..... :O(

men det kører nu okay...

jeg skal lige kigge min 4 sider igennem - tror jeg har fu... koden op i min iver efter at teste... jeg vender tilbage
Avatar billede Morten Nybegynder
07. marts 2005 - 11:28 #17
Nu virker det sq!!!!!!!

Det var vist en kombination af session.use_cookies on og rode-kode... ;O)

>>Sukos smider du ikke et svar - og så takker jeg rigtig meget for hjælpen...!!!
Avatar billede sukos Juniormester
07. marts 2005 - 11:35 #18
Et svar! :O)

Du kan også lige prøve denne:

<?php
ini_set('session.use_trans_sid', 1);
ini_set('session.use_cookies', "Off");

session_start();

if(!isset($_SESSION["count"])) {
$_SESSION["count"] = 1;
}else{
$_SESSION["count"]++;
}

echo $_SESSION["count"];
echo"<p>";
echo"<a href=\"". $_SERVER["PHP_SELF"] ."\">Opdater</a>";

?>

Skal afprøves i et helt nyt vindue, så du er sikker på at session ikke sat i forvejen! ;O)
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