Avatar billede RasmusTheR Seniormester
29. juli 2017 - 16:56 Der er 11 kommentarer og
3 løsninger

Sessioner virker ikke efter opdatering til php 5.6

Efter jeg har opdateret til php 5.6 på mit webhotel hos GoDaddy, virker sessionsvariabler ikke mere.

Jeg kan sætte en sessionsvariabel, og den virker på siden, men er glemt så snart jeg går ind på en underside.

Jeg bruger følgen script til at teste.. 
den skulle gerne skrive test1test2 når siden hentes, og efterfølgende test2test2, men skriver altid test1test2

Er det ved min kode eller hos GoDaddy, der er en fejl??
Hjælp..

<?php
session_start();

if ($_SESSION['test']=="") {
      $_SESSION['test']="test1";
}
echo $_SESSION['test'];
                   
$_SESSION['test']="test2";
echo $_SESSION['test'];
                   
?>
Avatar billede michael_stim Ekspert
29. juli 2017 - 18:40 #1
Hvad sker der hvis du skriver:

if (!isset($_SESSION['test']))
Avatar billede RasmusTheR Seniormester
29. juli 2017 - 19:39 #2
Når jeg sætter nedenstående i toppen af siden skriver den "jep", men hvis jeg sætter den i bunden sker der ikke noget. Det samme når jeg laver en refresh..

if (!isset($_SESSION['test'])) {
    echo "jep";
}
Avatar billede michael_stim Ekspert
29. juli 2017 - 19:46 #3
Det er jo også det den skal göre. Den checker om variabelen er sat og er den ikke det skriver den jep. Og den er jo ikke sat i starten.
Avatar billede RasmusTheR Seniormester
29. juli 2017 - 20:32 #4
ja, men sessionvariablen skal vel stadig være sat når jeg så laver en refresh af siden, eller klikker ind på en underside, men det er den ikke.
Så skriver den igen "jep" i toppen. Her burde den ikke skrive noget..
Avatar billede michael_stim Ekspert
29. juli 2017 - 20:46 #5
Har du en session_destroy eller lignende? Hvordanser din kode ud nu?
Avatar billede RasmusTheR Seniormester
29. juli 2017 - 21:00 #6
Alt virkede fint, indtil for et par dage siden. Det eneste jeg kan komme i tanke om der er ændret er, at jeg har opdateret min webhosting til PHP 5.6

jeg har lavet to test sider med følgende kode:

temp05.php
<?php
session_start();

if (!isset($_SESSION['test']))  {
      $_SESSION['test']="test1";
}
echo $_SESSION['test'];
                 
$_SESSION['test']="test2";
echo $_SESSION['test'];
                 
?>
<a href="temp06.php">link</a>


temp06.php
<?php
session_start();

if (!isset($_SESSION['test']))  {
      $_SESSION['test']="test1";
}
echo $_SESSION['test'];
                 
$_SESSION['test']="test2";
echo $_SESSION['test'];
                 
?>
<a href="temp05.php">link</a>
Avatar billede michael_stim Ekspert
29. juli 2017 - 21:12 #7
Hvad sker der når du klikker på linksene?

Det der skal ske er jo at der skal stå test1test2 förste gang du kommer ind på siden alle andre gange skal der stå test2test2.
Avatar billede RasmusTheR Seniormester
29. juli 2017 - 21:17 #8
Der står altid test1test2
Avatar billede michael_stim Ekspert
29. juli 2017 - 21:21 #9
Ja, det skal der jo ikke göre??? Pröv at köre en phpinfo() og se om du kan se noget märkeligt under session.
Avatar billede RasmusTheR Seniormester
29. juli 2017 - 21:47 #10
Det kan jeg ikke lige gennemskue ;-) men den ser sådan ud for sessioner...

session
Session Support     enabled
Registered save handlers     files user wincache
Registered serializer handlers     php_serialize php php_binary wddx
Directive    Local Value    Master Value
session.auto_start    Off    Off
session.cache_expire    180    180
session.cache_limiter    nocache    nocache
session.cookie_domain    no value    no value
session.cookie_httponly    Off    Off
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.hash_bits_per_character    5    5
session.hash_function    0    0
session.name    PHPSESSID    PHPSESSID
session.referer_check    no value    no value
session.save_handler    files    files
session.save_path    D:\Temp\php\session\    D:\Temp\php\session\
session.serialize_handler    php    php
session.upload_progress.cleanup    On    On
session.upload_progress.enabled    On    On
session.upload_progress.freq    1%    1%
session.upload_progress.min_freq    1    1
session.upload_progress.name    PHP_SESSION_UPLOAD_PROGRESS    PHP_SESSION_UPLOAD_PROGRESS
session.upload_progress.prefix    upload_progress_    upload_progress_
session.use_cookies    On    On
session.use_only_cookies    On    On
session.use_strict_mode    Off    Off
session.use_trans_sid    0    0
Avatar billede NielsErikP Mester
29. juli 2017 - 22:21 #11
Kan du ikke sætte en IF mere på?



<?php
session_start();

if (!isset($_SESSION['test'])) {
      $_SESSION['test']="test1";
}
echo $_SESSION['test'];

if (isset($_SESSION['test']))  {                   
    $_SESSION['test']="test2";
}
echo $_SESSION['test'];
                   
?>



Håber du kan bruge det :-)
Avatar billede RasmusTheR Seniormester
29. juli 2017 - 22:26 #12
Jeg har lige indsat error_reporting(-1); og får nu nedenstående fejl:

Er der ikke noget galt med denne URL: D:\Temp\php\session\\sess_ra1tqs6tdrn154thueg3i3kek0
Kan det hele skyldes dobbelt \\ ??

PHP Warning:  session_start(): open(D:\Temp\php\session\\sess_ra1tqs6tdrn154thueg3i3kek0, O_RDWR) failed: No such file or directory (2) in D:\Hosting\10823103\html\YOURSITE\temp05.php on line 5
PHP Warning:  Unknown: open(D:\Temp\php\session\\sess_ra1tqs6tdrn154thueg3i3kek0, O_RDWR) failed: No such file or directory (2) in Unknown on line 0
PHP Warning:  Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (D:\Temp\php\session\) in Unknown on line 0
Avatar billede michael_stim Ekspert
29. juli 2017 - 22:46 #13
Jeg ville skrive eller ringe til dem der hoster dit site.
Avatar billede RasmusTheR Seniormester
30. juli 2017 - 14:21 #14
Så har GoDaddy fundet fejlen og rettet den :-)
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

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