Sida 1 av 1

Variabel med inloggad användare?

Postat: 2007-04-30 15:52
av rfr
Jag behöver skicka med användarnamnet som ett hidden-fält i ett formulär och undrar om det finns någon variabel för det? {USERNAME} verkar mest logiskt men det funkar inte.
Hur gör man?

Postat: 2007-04-30 16:09
av Marcus
Du är på rätt spår, men USERNAME måste tilldelas ett värde i bakomliggande PHP-skript.

Kan inte svara tydligare, då jag inte har myckat att gå på i din fråga.

/marcus

Postat: 2007-04-30 16:18
av rfr
Jag har försökt med detta:

Kod: Markera allt

$template->assign_vars(array(
'USERNAME' => $user->data['username'])
);
i bakomliggande php-skript men då får jag felmeddelandet "Call to a member function on a non-object in template.php". Så det verkar inte bita.

Postat: 2007-04-30 16:27
av Marcus
Det verkar som den vill ha det till att ett objekt helt saknas, kan vi få se hela koden? Om det är objetet $user eller $template som saknas framgår inte av felmeddelandet.

/marcus

Postat: 2007-05-05 19:18
av rfr
Jag har försökt ignorera detta problem ett tag men tänkte ta tag i det nu igen.

Innan jag börjar posta kod, finns det något "officiellt" sätt att skapa egna variabler?

Eller om det går att hitta användarnamnet med vanlig php-kod i templaten så kan jag köra med det istället.
Den behöver inte fungera globalt utan det räcker med den sidan.

Postat: 2007-05-05 19:52
av Kail
rfr: Du är på rätt väg. Testa detta:

Kod: Markera allt

print "<pre>"; print_r($user); exit;
och kolla på hur objektet ser ut.

Postat: 2007-05-06 13:00
av rfr
$user verkar inte innehålla nånting alls.

Postat: 2007-05-06 13:34
av Kail
Ja då heter objektet någonting annat. :) Du får leta mer!

Postat: 2007-05-06 17:43
av rfr
Det jag gjorde från början borde ha fungerat, men det blev problem att använda {USERNAME} på grund av all trasslig php-kod i templaten. Jag upptäckte även att ingen annan variabel funkade som till exempel {SITENAME} som borde funka överallt.

Det löste sig dock genom denna sträng som ger användarnamnet på den inloggade användaren:

Kod: Markera allt

<?php global $userdata; echo $userdata['username']; ?>
Det tog tid att komma på att global behövdes dock, jag förstår inte varför men nöjer mig med att det fungerar nu. :)

Tack för hjälpen.

Postat: 2007-05-06 18:52
av Kail
Du verkade införstådd i PHP så jag antog att du hade deklarerat variabeln som global. Deklarationen har att göra med dess scope, som normalt bara sträcker sig inom den funktion där den lever. Objekt som innehåller data som flera funktioner och objektmetoder använder sig måste vara globala.