function admin_login()

Tags:    php

Jeps, så er jeg her igen, functions er nu problemet, men ved ikke liiiige hvad det er der går galt..
mit problem lige nu består i jeg ikke kan få min funktion til at gøre som jeg vil, jeg tror problemet ligger i jeg ikke få skrevet til funktionen.

Altså:
Fold kodeboks ind/udKode 


Inden i gør mig opmærksom på jeg ikke har en while($row.... er det helt bevidst.

Mit problem ligger i at jeg kommer igennem hele svineriet ind til den skal sammenligne brugerens input sammen med databasen. Altså kan jeg konkludere at jeg får skrevet fint nok til min funktion, i al fald viser den ikke fejl ved empty(); Jeg prøvede at udtrække fra databasen med
Fold kodeboks ind/udKode 


Det virkede også fint nok og jeg fik admin12831721462, altså ved jeg mine data i MysQL er fine, og passworded er md5(); krypteret.

Jeg er næsten sikker på min fejl ligger her:

Fold kodeboks ind/udKode 

Jeg kan ikke rigtig få den til at smide en brugbar fejlmelding ud, ud over jeg får min fejlmelding e=2, som bare er en standard der er sat til brugeren. Jeg har prøvet flere versioner af admin_login(), bla. admin_login($username, $password); og den der er oven for.. Min form er for sig ligegyldig, da jeg får sendt NOGET til mit script, men ved ikke hvad, og jeg forstår ikke hvorfor det ikke liige vil virke.

Kan jo være jeg har stiret mig blind på det og der er en tumpe fejl, meen så spark mig lige i røv** og få mig videre ;)

Regards





Indlæg senest redigeret d. 02.02.2007 21:14 af Bruger #9485
8 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Altså, en vigtig del ved at opdele sit kode i funktioner, for ikke at tale om klasser, at at have "seperation of concerns". Altså at opdele sit kode så de ting der hører sammen står sammen.

du lægger op til du har en side der checker GET variabler, for at redelegere dig. Så du bør kun bruge login functionen til selve validering. Altså:

Fold kodeboks ind/udKode 


Og så funktionen:

Fold kodeboks ind/udKode 


Prøv med det istedet. Og så debug derfra.

Og så vil jeg anbefale dig at kigge på klasser også, object orienteret programmering er vejen frem :-)





For at få brugbare fejl, smid en die(), og et eller andet mock-up kode, ind før dine header() kommandoer.

...og som Nørden skriver er det header() med lille H.

Næste ting:
tilføj altid en die() efter dine header('location...') da al kode på den pågældende side, ellers vil blive eksekveret.



du har ret i at Header ikke giver en fejl men du burde stadigvæk skrive header.

Det er ret underligt at du sender $_POST værdierne til din admin_login function som parametre hvorefter du checker om de er tomme i post_collection og hvis ikke til deler du de 2 argumenter værdien igen, giver dog ingen fejl.

Medmindre den første row i resultatet af din query til admin er den der passer til brugeren vil du altid få e2 fejlen, du burde nok skrive en WHERE i din query og søge efter en row der har det rigtige pass og username også branch på om der bliverr returneret nogen rækker af queryen.



har du prøvet at skrive Header med lille h evt.?



Kan du ikke rydde op i funktionen, og skrive den som du oprindelig havde tænkt dig. Der er jo et utal af ting der går galt i dit copy/pate :-)

Prøv at udskrive både $username, $password, samt dit db username og password for at samligne selv, det er højst sandsynligt der problemmet ligger.

Har du husket at md5 kryptere værdierne i DB'en???



Problemet er jeg egentlig ikke er helt fix med functions endnu, jeg har altid brugt en meeeeget underlig metode til og lave de her ting, men jeg tænkte, nu skal det være, functions er vejen frem!

Normalt har jeg lavet det i stil med:

Fold kodeboks ind/udKode 


Så for at være ærlig er jeg ikke helt med på hvad det er der er galt i min function, så kan i ikke liiige ridse lidt regler op for mig ;)

Mht. header(); med stort, så har jeg aldrig haft problemer med at skrive det som Header(); ? sikker på det kan udlede en fejl?

Password er krypteret i databsen.

Regards, tak for hjælpen :)



Kunne det bruges? :)




Jeps fik den til at fungere :) Takker mange gange



t