Avatar billede the_magician Nybegynder
16. marts 2003 - 03:27 Der er 3 kommentarer og
1 løsning

Prob med sessions

Jeg har kodet en side, men med en gammel version af både Apache og PHP (kan ikke huske hvor gammel...)
Nu hor jeg har opgraderet (installeret på en ny computer) til den nyeste version af både Apache og PHP virker mit script ikke.

Jeg skulle lave et login, og det så sådan ud da det virkede inden jeg opdaterede...

<?php
session_start();
session_register('logintimes');
/// Gem sendte info i variabler
$myUser=$_GET[email];
$kodeord=$_GET[kode];
$act=$_GET[action];
$loggedIn=$HTTP_SESSION_VARS[logged];
$brugerIn=$HTTP_SESSION_VARS[bruger];
$levelIn=$HTTP_SESSION_VARS[level];

if (action=="login") {
session_register('logged');
session_register('bruger');
session_register('level');
}

include_once("menu.php");

if ($loggedIn=="1") {
//Hvis du er logget ind allerede...

$msglog="1";
$logged="1";
$bruger=$brugerIn;
$level=$levelIn;
}
else {
//ellers
if ($myUser && $kodeord) {

/// Hvis der er blevet sendt noget data så...
include("sql-connect.php");
$resultAT = mysql_query("SELECT usrMail,passWord,usrLvl FROM user WHERE usrMail='$myUser'");
///Gem kode, navn og level i en variabel
$kode = @mysql_result($resultAT, 0, "passWord") or die('Something wrong (1)');
$level = @mysql_result($resultAT, 0, "usrLvl") or die('Something wrong (1)');
$brugerEn = @mysql_result($resultAT, 0, "usrMail") or die('Something wrong (1)');

if ($kodeord <> $kode) {
//Hvis den submittede kode og koden fra db'en ikke er ens
$msglog="2";
$logintimes++;
$logged="0";
$loggedIn="0";
$level="4";
$levelIn="4";
$bruger="none";
$brugerIn="none";
}
else {
//ellers (hvis begge koder er ens)
$msglog="3";
$logged="1";
$bruger=$myUser;
}
mysql_close();
}
else {
//ellers (hvis der ikke er sendt data)
$msglog="4";
}
}
//$msglog=[1,2,3,4]
//1= allready logged
//2= username/password faul
//3= succes
//4= no data
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>Taastrup Roleplaying Club - TRC.dk</title>
<meta name="generator" content="TSW WebPad">
<meta http-equiv="imagetoolbar" content="no">
<META NAME="Robots" CONTENT="NONE">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-store">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body bgcolor="000000" link="ff6633" alink="ff6633" vlink="ff6633" text="f0ffff">
<font type="verdana">
<table width="100%" id="ground" cellspacing="0" cellpadding="0"><tr height="100%" width="100%"><td width="100%">
<table width="100%" cellspacing="0" cellpadding="0" valign="top">
<tr height="99" width="100%" valign="top">
    <td width="150" height="99" valign="top"><img src="left_top_midsize.jpg" height="99" width="100"></td>
    <td><center><img src="title.jpg"></center></td>
</tr>

<tr>
    <td width="150">
<?php
Lvl4();
if ($levelIn=="3" || ($logged=="1" && $level=="3")) {
Lvl3();
}
if ($levelIn=="2" || ($logged=="1" && $level=="2")) {
Lvl3();
Lvl2();
}
if ($levelIn=="1" || ($logged=="1" && $level=="1")) {
Lvl3();
Lvl2();
Lvl1();
}
?>
    <td>
        <table width="100%" height="100%" cellspacing="0" cellpadding="0">
        <tr width="100%" height="100%">
        <td width="85%" height="100%">
            <table width="80%" cellspacing="2" cellpadding="1" valing="top" align="center"><font type="verdana">
            <tr><td id="ground2">
            <center><h4>Status</h4>
<?php
//Hvis du er logget ind
if ($msglog=="1") {
//msglog=1 - allready logged
echo "Du er logget ind.<br>";
logOut();
}
if ($msglog=="2") {
//msglog=2 - username/password faul
echo "Forkert brugernavn eller kodeord !<br>";
}
if ($msglog=="3") {
//msglog=3 - succes
echo "Du er nu logget ind !<br>";
logOut();
}
if ($msglog=="4") {
//msglog=4 - not submitted
echo "Du er ikke logget ind.<br>";
}
?>
                <br><br><br><br>
            </td></tr>
            <tr><td>&nbsp;</td></tr>
            <tr><td id="ground2">
            <center><h4>Login form</h4>
                <form method="get" action="login.php">
                <input type="text" name="email" alt="Brugernavn" value=""><br>
                <input type="password" name="kode" alt="Kodeord" value=""><br>
                <input type="hidden" name="action" value="login">
                <input type="submit" value="login"><br>
                </form>
            </td></tr>
            <tr><td>&nbsp;</td></tr>

            </table>
        </td>
...(more page, but it's just the rest of the design... No important code)

Når jeg nu (efter opdateringen submitter den, så logger den ind, og den kommer med den besked der siger at jeg er logget ind, men når jeg så går videre til næste side, så er jeg ikke logget ind... Heller ikke hvis jeg opdaterer denne side...

Undskyld hvis det ikke giver helt mening, men klokken er jo halv fire om morgenen... Prøver at omformulere spørgsmålet i morgen hvis det er nødvendigt...
Avatar billede jakoba Nybegynder
16. marts 2003 - 04:25 #1
kan du forklare denne if-sætning:
    if (action=="login") {
jeg ville forvente  $action  der.

og det er vis inden i den if det går galt;
  session_register('logged');
den sætning går ud fra at der findes en variabel  $logged  som så bliver registreret.

I gamle dage blev $_GET og $_POST arraysene automatisk pakket ud til individuelle variable. det bliver de ikke i de nyere versioner.

Men du burde da have fået både advarsler og fejlmeldinger om det. Du har da forhåbentlig ikke været så dum at sætte errorlevel så du ikke får information om dine kodefejl ?

mvh JakobA
Avatar billede the_magician Nybegynder
16. marts 2003 - 07:55 #2
if (action=="login") { - simpel fejl som jeg har lavet, da jeg ændrede lidt i koden, for at prøve at få det til at virke...

php.ini -
error_reporting  =  E_ALL
display_errors = On
httpd.conf -
LogLevel info

Jeg logger rigtigt ind, men jeg forbliver IKKE logget ind!

Jeg har kørt det som jeg har postet det tidligere, uden problemer. Altså med at jeg registrerer session'et og bagefter tildeler det en værdi. Det kan jo ikke gøres anderledes, medmindre man slet ikke skal bruge session_register. (Det tror jeg nok det stod noget om på php.net - men det var jo sent.
Avatar billede the_magician Nybegynder
16. marts 2003 - 14:20 #3
Problemet er formentligt en af følgende:
1) Session variablerne bliver ikke gemt.æ
2) Der startes et nyt session for hver side jeg går ind på.
- Dvs. login.php_session2, index.php_session1. Den bruger ikke samme session på alle siderne...
Avatar billede the_magician Nybegynder
17. juli 2003 - 15:03 #4
problemet er løst. Kan ikke huskle hvordan, men nu lukkes spørgsmålet.
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