/ 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
PHP kan lige pludselig ikke finde funktion~
Fra : Michael Jensen


Dato : 24-09-01 19:04

Hejsa

Jeg har en klasse jeg bruger til at styre de sessions der logger ind i
systemet m.m. Det hele med at bruge getUid(), getUname() og getLevel()
fungere fint nok så længer jeg ikke er logget ind. Men så sker der noget
mystisk når jeg prøver at logge ind.

se http://ogj.dk/scripts/class.session.phps for kildekode

Den godkender passwordet fint nok og det hele ser fint nok ud. Lige indtil
jeg kalder $session->getUid() m.m. Det lader til at alle funktioner efter
function updateLastLogin() ikke virker derefter (ca. linie 270)

Hvis jeg kalder en af funtionerne men fx. getLevel() så fejler den med:
Fatal error: Call to undefined function: getlevel() in menu.inc.php on line
7

Men inde i menu.inc.php har jeg altså skrevet det funktionskald med STORT L
og ikke lille. Hvorfor leder den så efter det?

Er der nogen der kan løse det problem inden jeg for alvor bliver sindsyg

--
Michael Jensen
www.gamleelever.dk

 
 
Jonas Koch Bentzen (24-09-2001)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 24-09-01 20:36

Michael Jensen skrev:
>
> Hvis jeg kalder en af funtionerne men fx. getLevel() så fejler den
> med: Fatal error: Call to undefined function: getlevel() in
> menu.inc.php on line 7
>
> Men inde i menu.inc.php har jeg altså skrevet det funktionskald med
> STORT L og ikke lille. Hvorfor leder den så efter det?

Det tror jeg ikke, den gør. Jeg mener at have oplevet, at den i de der
fejlmeddelelser altid skriver funktionerne med små bogstaver.

Jeg tror nærmere, problemet er, at du har skrevet kaldet til funktionen
før selve funktionen. Normalt er det vist fra PHP 4 sådan, at man godt
kan skrive funktionen *efter* funktionskaldet, men det kan være, det
ikke gælder i klasser.

--
Jonas Koch Bentzen

http://understroem.dk

Michael Jensen (24-09-2001)
Kommentar
Fra : Michael Jensen


Dato : 24-09-01 22:20

Sometime around Monday 24 September 2001 21:35 Jonas Koch Bentzen mumbled:

> Michael Jensen skrev:
>>
>> Hvis jeg kalder en af funtionerne men fx. getLevel() så fejler den
>> med: Fatal error: Call to undefined function: getlevel() in
>> menu.inc.php on line 7
>>
>> Men inde i menu.inc.php har jeg altså skrevet det funktionskald med
>> STORT L og ikke lille. Hvorfor leder den så efter det?
>
> Det tror jeg ikke, den gør. Jeg mener at have oplevet, at den i de der
> fejlmeddelelser altid skriver funktionerne med små bogstaver.

Det kan godt tænkes, egentlig ikke særligt smart

> Jeg tror nærmere, problemet er, at du har skrevet kaldet til funktionen
> før selve funktionen. Normalt er det vist fra PHP 4 sådan, at man godt
> kan skrive funktionen *efter* funktionskaldet, men det kan være, det
> ikke gælder i klasser.

Det har jeg lidt svært ved at tro.
1) Funktionerne virker jo fint nok hvis jeg ikke har prøvet at logge ind
2) Selve filen med klassen bliver hentet som noget af det første så den
burde da være indlæst før jeg begynder at bruge den.
3) "Constructor"'en kalder jo også andre funktioner som bliver læst efter
den. Ret upraktisk hvis det ikke fungerede sådan.
4) Jeg har lige prøvet at flytte funktionen getUid() øverst i klassen, men
lige lidt hjalp det.
5) På det tidspunkt hvor den fejler, har jeg allerede brugt klassen og
"constructoren" har kaldt 3 funktioner.

Jeg har før løst problemet med simplethen at smide de sidste funktioner
uden for klassen og bare bruge den som normale funktioner, men det syntes
jeg ikke lige holder mere.

Hvis du har lyst til at dykke lidt dybere i problemet skal du bare skrive
så kan du da godt komme til at se nogle flere filer.
--
Michael Jensen
www.gamleelever.dk

Michael Jensen (25-09-2001)
Kommentar
Fra : Michael Jensen


Dato : 25-09-01 22:11

Sometime around Monday 24 September 2001 23:20 Michael Jensen mumbled:

> Sometime around Monday 24 September 2001 21:35 Jonas Koch Bentzen mumbled:
>
>> Michael Jensen skrev:
>>>
>>> Hvis jeg kalder en af funtionerne men fx. getLevel() så fejler den
>>> med: Fatal error: Call to undefined function: getlevel() in
>>> menu.inc.php on line 7
[snip beskrivelse af problemet]
Jeg har lige lidt mere information om problemet.
Når jeg første gang kalder funktionen login() så kommer den med siden:

Fatal error: Call to undefined function: updatelastlogin() in
class.session.php on line 133

Hvis jeg så trykker på "reload" så kommer fejlen:

Fatal error: Call to undefined function: getuid() in header.php on line 65

I header.php laver jeg et objekt der hedder $session og det bruger jeg til
at kalde funktionerne $session->getUid() osv.
--
Michael Jensen
www.gamleelever.dk

Thomas L. Kjeldsen (09-10-2001)
Kommentar
Fra : Thomas L. Kjeldsen


Dato : 09-10-01 17:22

Heja,

In article <9onsae$mrb$1@sunsite.dk>, Michael Jensen wrote:
>
> Den godkender passwordet fint nok og det hele ser fint nok ud. Lige indtil
> jeg kalder $session->getUid() m.m. Det lader til at alle funktioner efter
> function updateLastLogin() ikke virker derefter (ca. linie 270)
>
> Hvis jeg kalder en af funtionerne men fx. getLevel() så fejler den med:
> Fatal error: Call to undefined function: getlevel() in menu.inc.php on line
> 7

Har du løst problemet? Ellers kunne jeg godt tænke mig at se
menu.inc.php.


> Men inde i menu.inc.php har jeg altså skrevet det funktionskald med STORT L
> og ikke lille. Hvorfor leder den så efter det?

Som Jonas nævnte, er det også min erfaring at php-parseren skriver
funktionsnavne med småt i fejlmeddelelser.


mvh Thomas

Michael Jensen (12-10-2001)
Kommentar
Fra : Michael Jensen


Dato : 12-10-01 14:33

> Har du løst problemet? Ellers kunne jeg godt tænke mig at se
> menu.inc.php.

Nej jeg har stadig ikke løst problemet. Jeg har desværre meget travlt lige
nu, men prøver at smide et link afsted i morgen. så du kan se filen.

--
Med venlig hilsen Michael


Michael Jensen (16-10-2001)
Kommentar
Fra : Michael Jensen


Dato : 16-10-01 16:17


"Thomas L. Kjeldsen" <tlk@tigerdyr.wheel.dk> wrote in message
news:slrn9s691j.2jg0.tlk@tigerdyr.wheel.dk...
> Heja,
>
> In article <9onsae$mrb$1@sunsite.dk>, Michael Jensen wrote:
> >
> > Den godkender passwordet fint nok og det hele ser fint nok ud. Lige
indtil
> > jeg kalder $session->getUid() m.m. Det lader til at alle funktioner
efter
> > function updateLastLogin() ikke virker derefter (ca. linie 270)
> >
> > Hvis jeg kalder en af funtionerne men fx. getLevel() så fejler den med:
> > Fatal error: Call to undefined function: getlevel() in menu.inc.php on
line
> > 7
>
> Har du løst problemet? Ellers kunne jeg godt tænke mig at se
> menu.inc.php.

Du kan se menu.inc.php på http://ogj.dk/scripts/menu.inc.phps men jeg tror
ikke lige det er der fejlen skal findes, men værsegod at kigge.

--
Med venlig hilsen

Michael


Thomas L. Kjeldsen (22-10-2001)
Kommentar
Fra : Thomas L. Kjeldsen


Dato : 22-10-01 00:15

In article <9qhj2t$av7$1@sunsite.dk>, Michael Jensen wrote:
>
>> > Hvis jeg kalder en af funtionerne men fx. getLevel() så fejler den med:
>> > Fatal error: Call to undefined function: getlevel() in menu.inc.php on
> line
>> > 7
>>
>> Har du løst problemet? Ellers kunne jeg godt tænke mig at se
>> menu.inc.php.
>
> Du kan se menu.inc.php på http://ogj.dk/scripts/menu.inc.phps men jeg tror
> ikke lige det er der fejlen skal findes, men værsegod at kigge.

Tjaeh, det ser stadig underligt ud. Har du prøvet at se nærmere på
objektet, det sted hvor det begynder at opføre sig underligt? Brug fx
get_class_methods til at se om det har de metoder du forventer.

http://www.php.net/manual/en/function.get-class-methods.php


mvh Thomas

Michael Jensen (26-10-2001)
Kommentar
Fra : Michael Jensen


Dato : 26-10-01 16:22


"Thomas L. Kjeldsen" <tlk@tigerdyr.wheel.dk> wrote in message
news:slrn9t6lnj.212e.tlk@tigerdyr.wheel.dk...
> Tjaeh, det ser stadig underligt ud. Har du prøvet at se nærmere på
> objektet, det sted hvor det begynder at opføre sig underligt? Brug fx
> get_class_methods til at se om det har de metoder du forventer.
>
> http://www.php.net/manual/en/function.get-class-methods.php

Jeps og den finder alle metoderne, på de sider hvor de metoder der gør vrøvl
ikke bliver kaldt så den ved da at de er der. Iøvrigt skriver den også alle
metoderne med småt der. Burde de ikke få det rettet?

Jeg prøver lige at lave en anden test senere hvor jeg får den til at skrive
metoderne ud og så lave fejlen lige bagefter.

.... eller også finder jeg en anden løsning og deler det op i flere klasser
eller noget andet bavl, men det er da underligt at det ikke virker.
--
Med venlig Hilsen Michael


Søg
Reklame
Statistik
Spørgsmål : 177522
Tips : 31968
Nyheder : 719565
Indlæg : 6408670
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste