/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
HASTER: problem med sessions
Fra : Henrik Hedegaard


Dato : 21-08-03 23:39

Jeg er mystisk problem med mine session vars.

Som det fremgår af nedenstående kode så registrerer jeg mine vars user og
user_id:

function dologin($user,$password)
{
connect_db();

if( isset($user) && isset($password) )
{
$password = md5($password);

$query = mysql_query("SELECT username,user_password,user_id FROM
phpbb_users WHERE username='$user'");
$result = mysql_fetch_array($query);

if ( $password == $result[1] )
{
$user_id = $result[2];
session_register('user');
session_register('user_id');
}
}
}


i med html side har jeg koden:

global $user;

// bruger er logget ind
if ( session_is_registered('user') )
{
print "Du er logget ind som $user.<p>";
print "Er dette ikke er dig, så <a
href=\"".$server."scripts/navigation.php?do=logout\">log ud</a>.<br>";
}
else
{
include_once($dir."content/frontlogin.html");
}

Den kan sagtens finde ud af, at jeg har registreret user, men jeg kan ikke
skrive den ud med print $_SESSION['user']. Det er ganske enkelt en tom
streng. Alt i mit login virker, bortset fra udskrivelsen af denne streng.

Hvad er der galt?

Kig evt. ind på imv.au.dk/inf2003

/Henrik

PS: ja, jeg har tidligere startet session_start()


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.512 / Virus Database: 309 - Release Date: 20-08-2003



 
 
Benny Nissen (21-08-2003)
Kommentar
Fra : Benny Nissen


Dato : 21-08-03 23:50

<snip kode>
> Den kan sagtens finde ud af, at jeg har registreret user, men jeg kan ikke
> skrive den ud med print $_SESSION['user']. Det er ganske enkelt en tom
> streng. Alt i mit login virker, bortset fra udskrivelsen af denne streng.

Øh, er det mig, eller tildeler du aldrig $_SESSION('user') en værdi ?
Altså: $_SESSION('user') = $user;

--
Benny



Henrik Hedegaard (21-08-2003)
Kommentar
Fra : Henrik Hedegaard


Dato : 21-08-03 23:53

så vidt jeg ved kan man nøjes med at bruge session_register til at give en
værdi.

men nu er det også først idag, at jeg er begyndt at lege med sessions.

skulle det så være noget i retningen af:

$_SESSION('user') = $user;
session_register('user');

altså først en tildeling efterfulgt af en registrering?

/Henrik


"Benny Nissen" <news@bennynissen.dk> wrote in message
news:3f454ca0$0$21562$edfadb0f@dread11.news.tele.dk...
> <snip kode>
> > Den kan sagtens finde ud af, at jeg har registreret user, men jeg kan
ikke
> > skrive den ud med print $_SESSION['user']. Det er ganske enkelt en tom
> > streng. Alt i mit login virker, bortset fra udskrivelsen af denne
streng.
>
> Øh, er det mig, eller tildeler du aldrig $_SESSION('user') en værdi ?
> Altså: $_SESSION('user') = $user;
>
> --
> Benny
>
>


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.512 / Virus Database: 309 - Release Date: 20-08-2003



Benny Nissen (21-08-2003)
Kommentar
Fra : Benny Nissen


Dato : 21-08-03 23:59

> skulle det så være noget i retningen af:
>
> $_SESSION('user') = $user;
> session_register('user');
>
Prøv i omvendt rækkefølge.

Det er ikke så meget jeg har arbejdet med sessions, så jeg er ikke sikker.

--
Benny



Henrik Hedegaard (22-08-2003)
Kommentar
Fra : Henrik Hedegaard


Dato : 22-08-03 00:02

sorry, det virker stadig ikke - hverken den ene eller den anden rækkefølge.

/Henrik

"Benny Nissen" <news@bennynissen.dk> wrote in message
news:3f454ea1$0$21583$edfadb0f@dread11.news.tele.dk...
> > skulle det så være noget i retningen af:
> >
> > $_SESSION('user') = $user;
> > session_register('user');
> >
> Prøv i omvendt rækkefølge.
>
> Det er ikke så meget jeg har arbejdet med sessions, så jeg er ikke sikker.
>
> --
> Benny
>
>


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.512 / Virus Database: 309 - Release Date: 20-08-2003



J. Nielsen (22-08-2003)
Kommentar
Fra : J. Nielsen


Dato : 22-08-03 10:31

> $_SESSION('user') = $user;
> session_register('user');

Uden at vide alverden om temaet, så vil jeg da ikke stå tilbage for at
udbrede mig lidt. I den omtalte tutorial benyttes syntaksen

$_GET["navn"];

til at hente en variabel (istedet for $user).

Måske er det problemet?

Mvh



Peter Sepstrup (22-08-2003)
Kommentar
Fra : Peter Sepstrup


Dato : 22-08-03 00:04

Henrik Hedegaard skrev:

> Hvad er der galt?

Nu er jeg lige lidt for træt til at læse alt koden igennem men tjek
http://www.php-faq.dk/index.php?faq=14 der står lidt om sessions + der er
et link til en rigtig god tutorial.
--
Mvh. Peter.
___________________________________
www.SepstrupNET.dk & www.PHP-FAQ.dk

Henrik Hedegaard (22-08-2003)
Kommentar
Fra : Henrik Hedegaard


Dato : 22-08-03 00:08

nope, virker stadig ikke.

har fulgt den tutorial til punkt og prikke.

/henrik


"Peter Sepstrup" <peter@_REMOVE_sepstrupnet.dk> wrote in message
news:3f454fda$0$83040$edfadb0f@dtext01.news.tele.dk...
> Henrik Hedegaard skrev:
>
> > Hvad er der galt?
>
> Nu er jeg lige lidt for træt til at læse alt koden igennem men tjek
> http://www.php-faq.dk/index.php?faq=14 der står lidt om sessions + der er
> et link til en rigtig god tutorial.
> --
> Mvh. Peter.
> ___________________________________
> www.SepstrupNET.dk & www.PHP-FAQ.dk


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.512 / Virus Database: 309 - Release Date: 20-08-2003



Christian (23-08-2003)
Kommentar
Fra : Christian


Dato : 23-08-03 10:27


"Henrik Hedegaard" <adonis@daimi.au.dk> skrev i en meddelelse
news:Xgc1b.52857$Kb2.2451939@news010.worldonline.dk...
> nope, virker stadig ikke.
>
> har fulgt den tutorial til punkt og prikke.
>
> /henrik
>
>
Lad os tage et hurtigt check på om din session overhovedet virker med noget.
opret en test.php eller hvad du nu vil kalde den.

<?
session_start();

$_SESSION['test'] = "Test besked.";

printf("%s", $_SESSION['test']);
?>

Hvis du får en beskeden på siden virker dine sessions.
PS: session_start(); skal ALTID være som den første linie på en side ellers
kan det medføre underlig opførsel.

Mvh
Christian



Henrik Hedegaard (23-08-2003)
Kommentar
Fra : Henrik Hedegaard


Dato : 23-08-03 13:47


"Christian" <none@ofyer.com> wrote in message
news:3f473380$0$7814$ba624c82@nntp03.dk.telia.net...
>
> "Henrik Hedegaard" <adonis@daimi.au.dk> skrev i en meddelelse
> news:Xgc1b.52857$Kb2.2451939@news010.worldonline.dk...
> > nope, virker stadig ikke.
> >
> > har fulgt den tutorial til punkt og prikke.
> >
> > /henrik
> >
> >
> Lad os tage et hurtigt check på om din session overhovedet virker med
noget.
> opret en test.php eller hvad du nu vil kalde den.
>
> <?
> session_start();
>
> $_SESSION['test'] = "Test besked.";
>
> printf("%s", $_SESSION['test']);
> ?>
>
> Hvis du får en beskeden på siden virker dine sessions.
> PS: session_start(); skal ALTID være som den første linie på en side
ellers
> kan det medføre underlig opførsel.
>
> Mvh
> Christian
>
>

Jeg kan sagtens udskrive mine session vars i min funktion, dologin, men når
jeg foretager en ny navigation på websiden (med navigation.php), så kan jeg
ikke længere se værdien af mine session vars. Som det første i
navigation.php er session_start(); idet session.auto er slået fra på
serveren.

mvh

Henrik


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.512 / Virus Database: 309 - Release Date: 19-08-2003



Poul-Erik Andreasen (22-08-2003)
Kommentar
Fra : Poul-Erik Andreasen


Dato : 22-08-03 11:19

On Fri, 22 Aug 2003 00:52:38 +0200
"Henrik Hedegaard" <adonis@daimi.au.dk> wrote:

> så vidt jeg ved kan man nøjes med at bruge session_register til at give en
> værdi.
>
> men nu er det også først idag, at jeg er begyndt at lege med sessions.
>
> skulle det så være noget i retningen af:
>
> $_SESSION('user') = $user;
> session_register('user');

Du behøver ikke at gøre begge dele

$_SESSION('user') = $user vil automatisk
registrere den

Men se lige efter om session.auto er on eller of
i php.ini hvis den er off skal du have start_session()
i starten af siden;

Du kan også sætte den til on men så for du problemer hvis
du vil til at bruge classer.

--
Poul-Erik Andreasen

Henrik Hedegaard (23-08-2003)
Kommentar
Fra : Henrik Hedegaard


Dato : 23-08-03 13:59

Her er lige lidt mere kode, der viser starten af min navigations-fil, der
bruges hver gang brugeren klikker på et link:

<?
....

session_start();

include_once("/gruppe/faelles/inf2003/scripts/config.inc");
include_once($dir."scripts/userfunctions.php");
include_once($dir."scripts/calendar.php");
include($dir."scripts/dbfunctions.php");
include($dir."scripts/galleryfunctions.php");

global $do;

checkNavigation($do);

function checkNavigation($nav)
{
global $dir,$uname;
switch($nav)
{
case "login":
global $brugernavn,$password,$uname;
print dologin($brugernavn,$password);
include_once($dir."content/topBegin.html");
include_once($dir."content/start.html");
include_once($dir."content/bottom.html");
break;

....
?>

og i min topBegin.html er der følgende:

<?
global $dir;

// bruger er logget ind
if ( session_is_registered('user') )
{
print "Du er logget ind som ".$_SESSION['user_id'].".<p>";
print "Er dette ikke er dig, så <a
href=\"".$server."scripts/navigation.php?do=logout\">log ud</a>.<br>";
}
else
{
include_once($dir."content/frontlogin.html");
}

?>

hvor frontlogin.html blot er en html-form for login.


jeg synes stadig, at det er mystisk, at jeg ikke kan udskrive mine session
vars. men kan se, at de er registrerede.

/Henrik




---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.512 / Virus Database: 309 - Release Date: 19-08-2003



Christian (23-08-2003)
Kommentar
Fra : Christian


Dato : 23-08-03 15:24

> Her er lige lidt mere kode, der viser starten af min navigations-fil, der
> bruges hver gang brugeren klikker på et link:
> jeg synes stadig, at det er mystisk, at jeg ikke kan udskrive mine session
> vars. men kan se, at de er registrerede.
>
> /Henrik

Måske har du gjort det og jeg har overset det, men du skal på hver eneste
side du vil bruge sessions værdier indsætte session_start(); som det første
på siden ellers kan du ikke fået adgang til $_SESSION variablen.

Mvh
Christian



Henrik Hedegaard (23-08-2003)
Kommentar
Fra : Henrik Hedegaard


Dato : 23-08-03 16:52

jeg mener også jeg har brugt min session_start() på alle php sider.

Skal jeg også have session_start() på alle html-sider, hvis disse inkluderes
via en php-fil, der allerede har kørt session_start()?

/Henrik

"Christian" <none@ofyer.com> wrote in message
news:3f4778e7$0$26624$ba624c82@nntp04.dk.telia.net...
> > Her er lige lidt mere kode, der viser starten af min navigations-fil,
der
> > bruges hver gang brugeren klikker på et link:
> > jeg synes stadig, at det er mystisk, at jeg ikke kan udskrive mine
session
> > vars. men kan se, at de er registrerede.
> >
> > /Henrik
>
> Måske har du gjort det og jeg har overset det, men du skal på hver eneste
> side du vil bruge sessions værdier indsætte session_start(); som det
første
> på siden ellers kan du ikke fået adgang til $_SESSION variablen.
>
> Mvh
> Christian
>
>


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.512 / Virus Database: 309 - Release Date: 19-08-2003



Peter Sepstrup (23-08-2003)
Kommentar
Fra : Peter Sepstrup


Dato : 23-08-03 17:56

Henrik Hedegaard skrev:

> jeg mener også jeg har brugt min session_start() på alle php sider.
>
> Skal jeg også have session_start() på alle html-sider, hvis disse
> inkluderes via en php-fil, der allerede har kørt session_start()?

Nej det burde ikke være nødvendigt... kun "hoved-filen" så den i det
"sammensatte" dokument kommer øverst....
--
Mvh. Peter.
___________________________________
www.SepstrupNET.dk & www.PHP-FAQ.dk

Henrik Hedegaard (24-08-2003)
Kommentar
Fra : Henrik Hedegaard


Dato : 24-08-03 12:20

Nå, jeg har fået lavet et lille hack til at komme udenom problemet.

Tak for hjælpe - selv om det ikke hjalp :)

/Henrik


"Henrik Hedegaard" <adonis@daimi.au.dk> wrote in message
news:ZRb1b.52847$Kb2.2451327@news010.worldonline.dk...
> Jeg er mystisk problem med mine session vars.
>
> Som det fremgår af nedenstående kode så registrerer jeg mine vars user og
> user_id:
>
> function dologin($user,$password)
> {
> connect_db();
>
> if( isset($user) && isset($password) )
> {
> $password = md5($password);
>
> $query = mysql_query("SELECT username,user_password,user_id FROM
> phpbb_users WHERE username='$user'");
> $result = mysql_fetch_array($query);
>
> if ( $password == $result[1] )
> {
> $user_id = $result[2];
> session_register('user');
> session_register('user_id');
> }
> }
> }
>
>
> i med html side har jeg koden:
>
> global $user;
>
> // bruger er logget ind
> if ( session_is_registered('user') )
> {
> print "Du er logget ind som $user.<p>";
> print "Er dette ikke er dig, så <a
> href=\"".$server."scripts/navigation.php?do=logout\">log ud</a>.<br>";
> }
> else
> {
> include_once($dir."content/frontlogin.html");
> }
>
> Den kan sagtens finde ud af, at jeg har registreret user, men jeg kan ikke
> skrive den ud med print $_SESSION['user']. Det er ganske enkelt en tom
> streng. Alt i mit login virker, bortset fra udskrivelsen af denne streng.
>
> Hvad er der galt?
>
> Kig evt. ind på imv.au.dk/inf2003
>
> /Henrik
>
> PS: ja, jeg har tidligere startet session_start()
>
>
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.512 / Virus Database: 309 - Release Date: 20-08-2003
>
>


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.512 / Virus Database: 309 - Release Date: 19-08-2003



Rasmus Christian Kaa~ (30-08-2003)
Kommentar
Fra : Rasmus Christian Kaa~


Dato : 30-08-03 05:22

"Henrik Hedegaard" <adonis@daimi.au.dk> skrev i en meddelelse
news:ZRb1b.52847$Kb2.2451327@news010.worldonline.dk...
> Jeg er mystisk problem med mine session vars.

snip fra http://dk.php.net/manual/en/function.session-register.php:

"If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use
session_register(), session_is_registered(), and session_unregister(). "

==>

session_start();

if (!isset($_SESSION['user'])) {
$_SESSION['user'] = "Testbruger";
} else {
echo "Gammel session ".$_SESSION['user'];
}
echo $_SESSION['user'];

---
Rasmus Christian Kaae
www.3kings.dk | www.hestebasen.com



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408935
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste