Avatar billede snuseren.dk Nybegynder
02. november 2003 - 19:13 Der er 36 kommentarer og
1 løsning

Problem med sessions

Hey..

Jeg har en server, med PHP og Apache installeret.. Jeg har oprettet en tmp mappe til alle sessions. Og når jeg så kører en side der bruger sessions, bliver sessionen fint gemt i mappen tmp, men jeg kan ikke læse indholdet af den fra php siden..

Hvad kan jeg gøre? Jeg tror det er en eller anden forkert opsætning i php.ini eller sådan noget..

mvh. Anders
Avatar billede detox Nybegynder
02. november 2003 - 19:17 #1
Hvordan gemmer og henter du dine sessionvariabler?
Avatar billede detox Nybegynder
02. november 2003 - 19:18 #2
Husker du: session_start(); på alle sider?
Avatar billede sukos Juniormester
02. november 2003 - 19:23 #3
jahh, lidt kode ville jo ikke være af vejen! :O)
Avatar billede snuseren.dk Nybegynder
02. november 2003 - 19:24 #4
Jeps, jeg skriver session_start(); i toppen af alle sider.. Men det har virket det script, det var efter det kom over på min egen server
Avatar billede detox Nybegynder
02. november 2003 - 19:26 #5
Sikkert noget med register_globals.
Avatar billede snuseren.dk Nybegynder
02. november 2003 - 19:26 #6
ok, hvor kan jeg rette det henne?
Avatar billede detox Nybegynder
02. november 2003 - 19:28 #7
Kan du give et eksempel på noget kode?
Avatar billede sukos Juniormester
02. november 2003 - 19:29 #8
For den dovne. er det at ændre
register_globals = Off
i php.ini til
register_globals = On
Avatar billede sukos Juniormester
02. november 2003 - 19:32 #9
æhh, jeg mente nu sløsede og ikke dovne!
Avatar billede detox Nybegynder
02. november 2003 - 19:32 #10
Eller lav en .htacces med linien:
php_flag register_globals on
i den mappe dine scripts skal køre fra.
Men endnu bedre er det nok at rette din kode til den nyere standard med register_globals = Off
Avatar billede snuseren.dk Nybegynder
02. november 2003 - 19:37 #11
ehmm jeg har ændret linjen i register_globals fra Off til On men det hjælper ikke.. Jeg har genstartet Apache. Detox ->> Hvordan laver jeg en .htaccess? bare i notepad?
Avatar billede kr-data Nybegynder
02. november 2003 - 19:39 #12
Du mangler nok et temp-dir! F.eks. c:\php\temp

Så skal du også rette i php.ini kan ikke huske hvor men jeg finder det lige!
Avatar billede detox Nybegynder
02. november 2003 - 19:42 #13
Du kan tjekke om register_globals er On eller Off med:
echo ini_get('register_globals'); // 0 = Off, 1 = On
Avatar billede snuseren.dk Nybegynder
02. november 2003 - 19:42 #14
nej jeg har en temp mappe der hedder tmp, og ligger i C:\tmp.. Og session-filerne kommer fint ind i mappen..
Avatar billede kr-data Nybegynder
02. november 2003 - 19:42 #15
under "[Session]" finder du "session.save_path=", den skal så hedde "session.save_path={sti}" altså f.eks. hvis du har lavet mappen i c:\php\temp, så skal den hedde: "session.save_path=c:\php\temp"
Avatar billede kr-data Nybegynder
02. november 2003 - 19:44 #16
nå ok, sry!
Avatar billede snuseren.dk Nybegynder
02. november 2003 - 19:44 #17
Den skriver 1.. Altså On.
Avatar billede kr-data Nybegynder
02. november 2003 - 19:45 #18
du kan ikke altid oprette en .htaccess i win, fordi den tror at du mangler et filnavn!
Avatar billede detox Nybegynder
02. november 2003 - 19:50 #19
Du vil altså hjælpe med lidt kode.
Avatar billede snuseren.dk Nybegynder
02. november 2003 - 19:50 #20
hmm.. Har osse lavet en .htaccess fil nu, men lige lidt hjælper det :-/
Avatar billede kr-data Nybegynder
02. november 2003 - 19:50 #21
ganske enig, for det ligge lige så vel være en syntaksfejl du ikke har opdaget
Avatar billede kr-data Nybegynder
02. november 2003 - 19:51 #22
og så evt. hvis den kommer med en fejlmelding, så vil den også gavne!
Avatar billede snuseren.dk Nybegynder
02. november 2003 - 19:53 #23
<?php
session_start();
if (! $_SESSION['status'] == "OK") {
echo "Status: OK";
}else{
echo "Status: Ikke OK";
}
?>

...Og session bliver sat, for der kommer en masse filer i min tmp mappe når jeg loader en side der bruger sessions..

mvh. Anders
Avatar billede snuseren.dk Nybegynder
02. november 2003 - 19:53 #24
<?php
session_start();
if ($_SESSION['status'] == "OK") {
echo "Status: OK";
}else{
echo "Status: Ikke OK";
}
?>

..mente jeg :D
Avatar billede snuseren.dk Nybegynder
02. november 2003 - 19:54 #25
Der kommer ingen fejlmelding, den kan bare ikke finde ud af at der er en session.. Det er som om den ikke kan læse den eller..
Avatar billede detox Nybegynder
02. november 2003 - 19:56 #26
Og du har gemt den sådan?:

<?php
session_start();
$_SESSION['status'] = "OK";
Avatar billede snuseren.dk Nybegynder
02. november 2003 - 19:58 #27
Ja sådan ser login siden ud:

<?PHP
session_start();
// Variabler
    $Email =  $_POST["Email"];
    $Adgangskode1  =  $_POST["Adgangskode"];
    $Adgangskode  =  md5($Adgangskode1);
   
// Variabler til MySQL oplysninger
    $mysql_host = "localhost"; // MySQL server
    $mysql_user = "root"; // MySQL brugernavn
    $mysql_pw = ""; // MySQL Adgangskode
    $mysql_db = "netstatistik"; // MySQL database navn
   
// Her åbnes for MySQL databasen
    $DB = mysql_connect($mysql_host, $mysql_user, $mysql_pw)or die(mysql_error());
    mysql_select_db($mysql_db, $DB)or die(mysql_error());

    $tjek = mysql_query("SELECT id FROM brugere WHERE email = '$Email' AND adgangskode = '$Adgangskode1'")or die(mysql_error());

    $antal = mysql_num_rows($tjek);

    if ($antal == 1) {
        $_SESSION['logind1'] = $Email;
        $_SESSION['logind2'] = $_POST['Adgangskode'];
        $_SESSION['status'] = "OK";
        header("location: forside.php?login=ok");
    }else{
        echo "Du kunne ikke logges ind :o(";

    }
?>
Avatar billede snuseren.dk Nybegynder
02. november 2003 - 19:59 #28
Sorry jeg bliver nødt til at gå.. Jeg kommer igen imorgen. Håber det er ok.!
Avatar billede detox Nybegynder
02. november 2003 - 20:04 #29
Ja, dit script ser ok ud. Fejlen må ligge i din php.ini.
Avatar billede sukos Juniormester
02. november 2003 - 20:45 #30
som default bliver fejlmeddelser af typen NOTICE jo ikke vist.
Umiddelbart vil jeg tro du skal bruge isset()

<?php
session_start();
if(!isset($_SESSION["test"])) {
echo"Session er ikke sat";
$_SESSION["test"] = "Blot en tester";
}else{
echo $_SESSION["test"];
}
?>
Avatar billede snuseren.dk Nybegynder
03. november 2003 - 17:13 #31
sukos ->> Tror ikke det er det, for scriptet har virket fint, bare på en anden server..
Avatar billede snuseren.dk Nybegynder
03. november 2003 - 17:17 #32
Har sat point op til 200..
Avatar billede krydset Nybegynder
03. november 2003 - 18:44 #33
vi er lige kommet frem til via msn at session i php virker og bliver overført til en anden side via det her lille script, ergo er det koden fejlen ligger i. ligger lige scriptet har så i kan teste videre hvis det er

<?php

session_start();
$_SESSION['test'] = "HEY SESSIONEN ER SAT OG VIRKER";


?>

//se.php
Den her side sætter sessionen, næste side viser sessionen
<br />
Tryk på næste for at se om session virker
<br />
<A href="se2.php">NÆSTE</a>


//se2.php
<?php

session_start();

echo $_SESSION[test];
?>

Håber i koemmere videre med det
Avatar billede krydset Nybegynder
03. november 2003 - 18:45 #34
RETTELSE !!!!!

//se.php
<?php
session_start();
$_SESSION['test'] = "HEY SESSIONEN ER SAT OG VIRKER";
?>

Den her side sætter sessionen, næste side viser sessionen
<br />
Tryk på næste for at se om session virker
<br />
<A href="se2.php">NÆSTE</a>


//se2.php
<?php

session_start();

echo $_SESSION[test];
?>
Avatar billede snuseren.dk Nybegynder
03. november 2003 - 18:50 #35
Jeps, jeg kom til at skrive if($_SESSION['status'] != "OK") istedet for if(! $_SESSION['status'] == "OK).

krydset for pointene, da han hjalp mig mest, håber det er ok, og han er osse den eneste der har svaret..

mvh. Anders
Avatar billede krydset Nybegynder
03. november 2003 - 18:53 #36
takker
Avatar billede snuseren.dk Nybegynder
03. november 2003 - 18:54 #37
Og osse tak for hjælpen til jer andre.
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

IT-JOB

Det Nationale Forskningscenter for Arbejdsmiljø

IT-sikkerhedsspecialist med fokus på AI inden for forskning

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Applikationsarkitekt til stor applikationstransformation i Forsvaret

BEC Financial Technologies

Development Manager for Core Banking

Capgemini Danmark A/S

Java Engineer

Politiets Efterretningstjeneste

Netværksspecialist til IT i PET