Avatar billede exo Nybegynder
30. maj 2003 - 20:01 Der er 10 kommentarer og
1 løsning

Øhhh underlig php fejl - i guess?

Hej Eksperter

Jeg sidder her med et mærkeligt problem på mit brugersystem!

Når man skriver:
- Rigtig Brugernavn og Rigtig Kode - Logger man ind
- Forkert brugernavn og Forkert kode - "Denne bruger findes ikke i databsen"

(Her kommer den)
- Rigtig brugernavn og forkert kode - så går den amok og skriver: Warning: Cannot add header information - headers already sent by (output started at /usr/home/whitehat_dk/users/rap/test/morfar.php:7) in /usr/home/whitehat_dk/users/rap/test/tjek_logind.php on line 9

prøv evt. at gå ind på:
http://rap.users.whitehat.dk/test/morfar.php

Og forresten, så kan jeg ikke huske hvor jeg downloade scriptet men det var bare et brugersystem med session's.

hvad er fejlen?

mvh
echo "$brugernavn['eXo']";
Avatar billede fangel Nybegynder
30. maj 2003 - 20:04 #1
det er koden vil skal bruge, ikke et link!

Morten
Avatar billede spunk13 Nybegynder
30. maj 2003 - 20:04 #2
Har du brugt header('location: blah.php'); mere end 1 sted?
Avatar billede exo Nybegynder
30. maj 2003 - 20:06 #3
ok 2 sek ligger koderne ud som TXT'er !
Avatar billede exo Nybegynder
30. maj 2003 - 20:12 #4
Avatar billede exo Nybegynder
30. maj 2003 - 20:16 #5
Hmm ved ikke lige hvad der sker med "side1.txt" men den viser det som HTML, men bare tryk vis kilde så kan du/i se php'en!
Avatar billede spunk13 Nybegynder
30. maj 2003 - 20:55 #6
Jeg tror problemet er at i morfar.php bliver der på en eller anden måde uncluded tjek_logind.php. Så siden morfar.php redirecter til sig selv, hvilket den ikke kan finde ud af.

Bliver det ikke også lidt uoverskueligt med alle de forskellige filer? Jeg har lavet mit login script på den her måde:
Første side - en ganske normal html formel hvor man indtaster kode og bruger. Derefter bliver man sendt videre til login.php. Login tjekker om der er sat nogle sessions, hvis der er så tjekker den om de passer med det der står i databasen. Hvis det ikke passer så skriver den den samme kode som på login siden, bare hvor der står at det er en forkert brugernavn og/eller kode. Så kan man så prøve at logge ind igen, lige så tosset man vil. Har man det rigtige brugernavn og den rigtige kode, bliver man sendt videre til listing.php som igen tjekker brugernavn og kode. Er det lykkedes en at komme til listing.php med data i session'en, som bare ikke er det rigtige, bliver man smidt tilbage til login.php. Er det den rigtige bruger og kode viser den en medlemsliste.
Avatar billede exo Nybegynder
30. maj 2003 - 21:21 #7
Hmm... Må jeg gerne se lidt på dit login script ? for du får det tilat ldye så enkelt ;)
Men er det så også sikkert?
Avatar billede spunk13 Nybegynder
31. maj 2003 - 09:58 #8
Der er stadig 1 problem med det jeg ikke har fået rettet. Det er at i listing.php tjekker den kun om der er session, ikke hvad de indeholder. Derfor kan man skrive et forkert brugernavn og kodeord, og så oppe i adresselinjen kan man skrive stien til listing.php, og så viser den listen. Det kan dog rettes med at unset'te sessions'ne og tilføje kode og brugertjek på listing.php. Jeg ved bare ikke hvor meget du kan bruge mit system, da det er en masse brugere, med det samme kodeord. Den tjekker bare om brugernavnet findes i et array, og om koden passer. Jeg ved ikke om jeg kan tilpasse min kode til den du spørger efter. Du kan prøve at søge lidt på eksperten, jeg er sikker på at der findes en del spørgsmål hvori der er et login system. Prøv f.eks. at søge på sessions, login og script.
Avatar billede exo Nybegynder
31. maj 2003 - 21:12 #9
ja okay det lyder lidt øv :)
Men det vilel også være bedre hvis jeg kunne få tilpasset mig eget script da jeg ved hvordan det er bygget op og derfor lettere at rette i ?
Ved du hvad fejlen er?
Sætter den 2 "header"? eller hvad kan det være?
Avatar billede spunk13 Nybegynder
01. juni 2003 - 09:48 #10
Ja, jeg tror jeg ved havd der er galt. Kan være det er lettere at forstå hvis det bliver oversat.

Morfar.php:
'Hvis brugernavn ikke er sat, eller hvis brugernavn er lig med ingenting, så inkludér logind.php'.
Her er brugernavn ikke sat, så vi kommer ind på logind.php:
Her bliver der vist en form, hvor action=make_logind. Vi indtaster et forkert brugernavn og password, trykker på submit, og bliver sendt videre til make_logind.php:
Første del er kun til validering, så kommer vi til der hvor det konflikter:
'Hvis brugernavn ikke findes i databasen, så sæt navne_fejl til 1, og send brugeren videre til morfar.php'(bemærk, $_SESSION['admin'] når IKKE at blive sat). Nu er vi blevet smidt tilbage til morfar.php og den reagerer selvfølgelig på de sessions der er sat. Nu har vi sat brugernavn, så vi bliver sendt videre til side1.php:
Det første side1.php gør, er at inkludere tjek_logind.php, den tjekker om brugernavn og admin status er sat. Men da vi blev sendt videre >før< admin session'en blev sat, så er der ikke nogen admin session. Så kommer ikke igennem login tjekket, og bliver smidt direkte til morfar.php. Morfar finder ud af at der er sat et brugernavn, så den smider os videre til side1.php. Side1.php inkluderer tjek_logind.php, som finder ud af at der stadig ingen admin session er sat. Så den smider os endnu en gang videre til morfar.php, som smider os videre til side1.php, som inkluderer tjek_logind.php. Vi består stadig ikke så vi ryger straks tilbage til morfar.php, så til side1.php, så til morfar.php.

Sådan kunne jeg blive ved..
Altså, sagt på en mere simpel måde, det hele kører i en løkke, der ingen ende har, derfor melder den fejl :)

Jeg har ikke lige nogen løsning lige nu, men det kan jo være du selv finder en
Avatar billede spunk13 Nybegynder
13. juni 2003 - 13:46 #11
Hvis det ik kunne bruges skulle du ikke have accepteret..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester