Emil Petersen wrote:
> Hejsa,
> Er igang med at lave et blogsystem.
> Har lavet et lille login script, hvor at når man logger ind
> bliver der registreret to session variabler, myusername og
> mypassword.
> Når jeg så skal oprette et nyt blog inlæg skal der som standard
> stå brugerens navn i input feltet name. Hvordan henter jeg det ud
> fra session'et ? brugernavnet og brugerens navn ligger i samme
> tabel i en MySQL db, havde tænkte på noget ligende dette men det
> virker ikke ?:
>
> function getName() {
> $sess = $_SESSION['myusername'];
> $result = mysql_query("SELECT * FROM bonanza_admin WHERE
> username='$sess'") or die(mysql_error());
> $row = mysql_fetch_array($result);
> $row['name'];
> }
Du mangler "return" foran $row['name']
Derudover er der ingen grund til at selecte alt fra tabellen når du kun
skal bruge navn....
function getName() {
$result = mysql_query("SELECT name FROM bonanza_admin WHERE username
= '".$_SESSION['myusername']."'");
$r = mysql_fetch_assoc($result);
return $r['name'];
}
Bør virke - hvis det forsat ikke virker kan mulige fejl være:
1. Du mangler session_start(); i filen et sted?
2. Du selecter fra den forkerte tabel/queryen fejler (løs evt. via
mysql_error og se om den kommer med en fejl)
3. Din sessionsvariabel er tom - prøv var_dump($_SESSION);
Men hvis det er copy paste af din funktion er jeg overbevist om at det
er den manglende return der er problemet :)
--
Johan Holst Nielsen
Freelance PHP Developer -
http://phpgeek.dk