Avatar billede andy17 Nybegynder
22. juli 2008 - 15:28 Der er 7 kommentarer og
1 løsning

"Dynamisk" login box

Hey derude!

Jeg håber, at titlen giver mening for nogen. Jeg skal gøre mit bedste for at forklare mit problem.

Jeg er ny i at kode PHP og er ved at lave en hjemmeside. Indtil videre har jeg lavet sådan at man kan registrere sig, hvor informationerne er gemt i en MySQL database. Koden der tjekker om de indtastede login informationer er rigtige, er også færdig.

Mit problem er så, at når man logger ind, så vil jeg gerne have, at min login box (der hvor man indtaster brugernavn og password) forsvinder og erstattes med en anden menu - sådan at man fx kan ændre sine personlige oplysninger.

Jeg har altid troet, at det ville være nemt at kode vha. en simpel if...else, men det kan jeg ikke få til at virke. Altså hvis $logged er 1, så bruger man require til at vise menu A, ellers vises menu B. Problemet er bare, at jeg ikke ved hvordan jeg erstatter min login box når jeg har brugt require til at vise den. Et andet problem er også, at hvis jeg bruger require til at vise en menu når man er logged ind, så køres den kode uendelig antal gange, hvorfor der bliver vist menuer hele vejen ned.

Jeg har skrevet html og PHP delen af min login box på en seperat side, hvor jeg så bruger require funktionen til at få den på plads (fx på min index side). Jeg er ikke sikker på, om det er muligt at kode det vha. require/include, eller om det bare er mig der har gjort noget forkert.

Jeg håber ovenstående har været forståeligt. Ellers har jeg smidt min kode op, hvis der er nogen der gider hjælpe. Jeg har skrevet en kommentar tæt på bunden, hvor jeg mangler en kode der skifter menu.


http://test.jokeheaven.eu/logbox.txt (Koden)
http://test.jokeheaven.eu/ (Hvis det hjælper nogen at se siden, selvom den er langt fra færdig)


Hvis der er noget I ikke forstår vedrørende mit spørgsmål eller andet, så spørg endelig - så skal jeg prøve at forklare det.

På forhånd mange tak for hjælpen!
Andy
Avatar billede w13 Novice
22. juli 2008 - 15:31 #1
Du skal have if-sætningen rundt om HTML-koden for loginboksen.

F.eks.:

<?php

if($logged==1){
?>

Du er logget ind!

...REDIGERING AF PROFIL...

<?php
}else{
?>

Du er ikke logget ind!

...LOGIN-BOKS...

<?php
}
?>
Avatar billede andy17 Nybegynder
22. juli 2008 - 16:43 #2
Tusind tak for hjælpen, w13. Havde slet ikke tænkt på, at man kunne splitte sin PHP kode op sådan, selvom det egentlig er meget logisk. Har fået det til at virke nu (bortset fra, at jeg lige skal have fixet min session kode, sådan at den husker på ens status når man skifter side). :)

Tak igen.
Avatar billede supersquirrel Nybegynder
22. juli 2008 - 19:59 #3
du skal huske at smide en session_start(); i toppen af din(e) fil(er) :))
Avatar billede Six Nybegynder
23. juli 2008 - 16:09 #4
Du kunne også med fordel bruge en switch() til dette.

switch ($logged) {
case 0:
    echo "Du er ikke logget ind";
    break;
case 1:
    echo "Du er nu logget ind";
    break;
}

hvor case 0 betyder at logged er = 0 og case 1 betyder at logged = 1. Kunne også gøre så logged indeholder tekst. case logged_ind og case ingen_adgang, så skal variablen bare indeholde den tekst istedet for tal.

Se mere på: http://dk.php.net/switch
Avatar billede w13 Novice
23. juli 2008 - 16:28 #5
Så opretter jeg et svar her, som du kan acceptere! :)
Avatar billede w13 Novice
23. juli 2008 - 16:29 #6
Du er ny her, kan jeg se, så du får lige en instruktion.

For at acceptere et svar skal du vælge brugernavnet i boksen nederst på denne side og klikke på "Accepter". Så får brugeren point og spørgsmålet lukkes.
Avatar billede andy17 Nybegynder
28. juli 2008 - 01:31 #7
Tak for hjælpen allesammen! :)
Avatar billede w13 Novice
28. juli 2008 - 07:50 #8
Og tak for point! :)
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