Avatar billede mysli Nybegynder
03. oktober 2006 - 00:20 Der er 19 kommentarer og
1 løsning

Ny session ved hver pageload

Jeg har det problem, at hver gang jeg åbner en ny side i mit script, eller bare refresher, oprettes en ny session hvorfor jeg ikke kan transportere informationer via sessions, da den hver gang bare laver et nyt array.
Avatar billede kimg Nybegynder
03. oktober 2006 - 00:55 #1
Du må nok vise lidt kode

Kim
Avatar billede mysli Nybegynder
03. oktober 2006 - 08:10 #2
Well, det kan være hvilken som helst kode. F.eks.

1.php
<?php
start_session();
$_SESSION['test'] = 'Dette er en sessiontest;
<a href='2.php'>side 2</a>
?>

2.php
<?php
start_session();
var_dump();
?>

Der får jeg bare smid et tomt array i hovedet (Array {})

Et andet eksempel:

login.php
<?php
start_session();

if (!isset($_SESSION['user'])){
echo "Opretter objekt";
$_SESSION['user'] = new user;
}

?>

Hvis den side bliver refreshet, bliver min løkke gennemgået hver gang.
Avatar billede wordwrap Nybegynder
03. oktober 2006 - 08:59 #3
ville nok starte med at rette start_session() til session_start(), hvis det ikke bare er en typo :)
Avatar billede mysli Nybegynder
03. oktober 2006 - 09:06 #4
En typo:) Sidder ikke med scriptet ved min side.

Jeg kan se i min session_tmp at der oprettes en ny session. Skal siges jeg kører på localhost - kan det skyldes jeg bruger port 82 til at køre webserveren?
Avatar billede kimg Nybegynder
03. oktober 2006 - 09:27 #5
Som strange_76 skriver ret start_session() til session_start(), så burde den være der

Kim
Avatar billede mysli Nybegynder
03. oktober 2006 - 09:31 #6
Jeg har benyttet session_start(); i de originale scripts, dette var kun hurtige eksempler kastet ud. Det er derfor ikke på grund af det. Hvis det da bare var således:)
Avatar billede kimg Nybegynder
03. oktober 2006 - 12:06 #7
Kan du så ikke lægge det på du bruger, så vi ikke retter unødige fejl ;-)

Kim
Avatar billede kimg Nybegynder
03. oktober 2006 - 12:16 #8
Gem dette som testSes.php
Den skulle gerne beholde samme session
Eksemplet er kun ment som test.
<?PHP
session_start();
if($_SESSION["timeID"] == ""){
$_SESSION["timeID"] = "Mysli -".date("d-m-Y H:i:s");
header("location:testSes.php");
} else {
echo $_SESSION["timeID"]."<br><br>";
}
?>
Avatar billede mysli Nybegynder
03. oktober 2006 - 12:21 #9
<?php
session_start();
require_once("db.php");
include("modules/user/class.user.php");
$db = new database;

if (!isset($_SESSION['user'])){
    echo "Opretter ny class";
$_SESSION['user'] = new user($db);
}

$usermenu = ($_SESSION['user']->get_user_access() == 1) ? $_SESSION['user']->draw_login() : $_SESSION['user']->draw_user_menu();
   
echo "
<html>
    <head>
        <title>Madopskrifter.dk</title>
    </head>
    <body>
        <table width=800 height=100%>
            <tr>
                <td width=20%></td>
                <td width=60%>";
if (isset($_GET['page'])){
    include("modules/".$_GET['page']."/index.php");
}
echo "</td>
                <td width=20%>".$usermenu."</td>
            </tr>
        </table>
    </body>
</html>";


?>

draw_login's form kører med action $_SERVER['PHP_SELF'] og ændrer selv i objektet. Men Det nytter ikke ret meget, når $_SESSION['user'] bliver "genstartet" ved hver load.
Avatar billede mysli Nybegynder
03. oktober 2006 - 16:39 #10
Kim - hvis jeg prøver med dit script, bliver den i IE ved med at loade (da $_SESSION["timeID"] == "" altid vil være true, når den genstarter sessions) og i FF melder den fejl ("Denne side viderefører ikke forespørgslen korrekt").

Nogen indstillinger i php.ini der kan være skyld i dette?
Avatar billede kimg Nybegynder
03. oktober 2006 - 17:48 #11
Du skal nok checke i din php.ini fil at du har oprettet det dir der gemmer sessions.
Avatar billede mysli Nybegynder
03. oktober 2006 - 18:59 #12
Det er sat, men kan se der bliver oprettet en ny fil hver gang jeg reloader - i stedet for at genbruge den allerede oprettede fil.
Avatar billede mysli Nybegynder
04. oktober 2006 - 00:08 #13
Det kan ikke være rigtigt jeg er den eneste der står med dette problem.

Jeg kører som sagt Apache server på localhost:8080. Mit session path er sat, og kan se den opretter session filer, men det er som om den ikke vil genkende dem efter dette, da den laver ny session fil i mappen, hver gang session_start() køres.
Avatar billede kimg Nybegynder
04. oktober 2006 - 00:30 #14
Har du checket "levetiden for dine sessions" det kal være noget i denne stil session.gc_maxlifetime = 1440
Avatar billede kimg Nybegynder
04. oktober 2006 - 00:32 #15
check også session.cache_expire = 180
Avatar billede mysli Nybegynder
04. oktober 2006 - 08:08 #16
De ting var sat som de skulle - aner ikke hvad der var galt. Har afinstalleret Apache og PHP, og valgt at installere XAMPP, nu virker det hele.
Avatar billede kimg Nybegynder
04. oktober 2006 - 08:43 #17
Det var nok også det bedste, held og lykke med det. ;-)

Kim
Avatar billede mysli Nybegynder
04. oktober 2006 - 09:20 #18
Smid gerne et svar, du har trods gjort hvad du kunne:)
Avatar billede kimg Nybegynder
04. oktober 2006 - 13:13 #19
Det fint nok, tag selv point

Kim
Avatar billede mysli Nybegynder
04. oktober 2006 - 13:25 #20
Helt i orden, tak for hjælpen.

Lukker
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