Avatar billede tlunde Nybegynder
07. marts 2004 - 11:22 Der er 24 kommentarer og
2 løsninger

Vis bestemt ting, hvis man er logget ind.

Hejsa,
Jeg har lavet et login modul der kører sessions, og det virker også fint nok, men nu vil jeg gerne have sådan, at der i menuen kommer et ekstra menupunkt, hvis man er logget ind. Og hvis man ikke er logget ind, så skal man ikke kunne se det...Hvordan lavet det?

Hilsen
Thomas Lunde
Avatar billede webcreator Nybegynder
07. marts 2004 - 11:25 #1
Du kan jo tjekke, om du session eksisterer. Hvis den gør, så må det tolkes som om, at personen er logget ind.

if ($_SESSION["navn"]) {
    echo "<a href=\"#\">Logud</a>";
}
Avatar billede webcreator Nybegynder
07. marts 2004 - 11:26 #2
Nu ved jeg ikke hvilken funktion du snakker om. Men hvis det er en funktion som kræver, at der er brugt rigtigt brugernavn og password, så skal dette naturligvis også tjekkes :)
Avatar billede tlunde Nybegynder
07. marts 2004 - 11:27 #3
Ja, man logger ind via brugernavn og password, og hvis de to ting er true, så skal der vises det ekstra punkt i menuen...
Avatar billede krydset Nybegynder
07. marts 2004 - 11:27 #4
<table>
<tr>
<td>En menu</td>
</tr>


<tr>
<td>En menu til</td>
</tr>

<?PHP
if($_SESSEION['tjek'] == "OK") {
//vis menu her hvis sessionen er sat
?>
<tr>
<td>En menu vises her hvis man er logget ind</td>
</tr>
<?PHP
}
?>
</table>
Avatar billede tlunde Nybegynder
07. marts 2004 - 11:30 #5
Mit session der tjekker om login er korrekt, har jeg skrevet sådan her:
if (isset($_POST['login'])) {

    if ($_POST['navn'] == "*****" && $_POST['password'] == "*****") {

$_SESSION['sessionnr'] = session_id();
$_SESSION['Name'] = $_POST['navn'];

header("Location:loggedin.php");
exit;

Hvordan kobler jeg det på så, og viser et ekstra menupunkt?
Avatar billede webcreator Nybegynder
07. marts 2004 - 11:31 #6
Du smider bare min kode ind, hvor du vil have det nye menu-punkt. Ret simpelt :)
Avatar billede tlunde Nybegynder
07. marts 2004 - 11:32 #7
webcreator >> jeg prøver lige...
Avatar billede webcreator Nybegynder
07. marts 2004 - 11:34 #8
Bare i orden :)
Avatar billede tlunde Nybegynder
07. marts 2004 - 11:35 #9
webcreactor >> Jeg har lige prøvet at skrive dette:
<? if ($_SESSION["navn"]) { echo "<a href=\"#\">Logud</a>";} ?>

Men den viser ikke "Logud" når jeg er logget ind? Den viser slet ikke noget, lige som når jeg ikke er logget ind?
Avatar billede webcreator Nybegynder
07. marts 2004 - 11:38 #10
Du skal erstatte "navn" med navnet på din session
Avatar billede tlunde Nybegynder
07. marts 2004 - 11:38 #11
Skal der ikke også stå noget med: if SESSION["navn"] == navn then noget andet???
Avatar billede webcreator Nybegynder
07. marts 2004 - 11:40 #12
Nej, du skal bare erstatte "navn" med navnet på din session
Avatar billede tlunde Nybegynder
07. marts 2004 - 11:42 #13
Sorry, men jer er ikke så meget inde i sessions endnu :) Er navnet på min session ikke bare login?? Lige som det jeg brugte her:

if (isset($_POST['login'])) {

    if ($_POST['navn'] == "*****" && $_POST['password'] == "*****") {

$_SESSION['sessionnr'] = session_id();
$_SESSION['Name'] = $_POST['navn'];

header("Location:loggedin.php");
exit;
Avatar billede webcreator Nybegynder
07. marts 2004 - 11:43 #14
Den er nærmere Name - så prøv at skrive det :)
Avatar billede webcreator Nybegynder
07. marts 2004 - 11:44 #15
Du har 2 sessions : sessionnr og Name
Avatar billede tlunde Nybegynder
07. marts 2004 - 11:45 #16
Skal jeg ikke bare have den ene med? ELler skal begge to tjekkes?
Avatar billede webcreator Nybegynder
07. marts 2004 - 11:48 #17
Prøv bare med Name.
Avatar billede tlunde Nybegynder
07. marts 2004 - 12:03 #18
Webcreator >> Hejsa igen, det virker delvist...når jeg er logger inde via login.php og bliver videresendt til filen loggedin.php, så kan jeg godt at at det er kommet det ekstra menupunkt, men når jeg så går tilbage til index.php så er punktet der ikke?? Hvordan kan det være?
Avatar billede webcreator Nybegynder
07. marts 2004 - 12:05 #19
Måske fordi du ikke har indsat det på begge sider ? Jeg ved jo ikke, hvordan din side er bygget op :)

Men løsningen jeg gav dig er i hvertfald den rigtige.

Hvad sker der, hvis du opdatere din side? Kommer menu-punktet så ?
Avatar billede tlunde Nybegynder
07. marts 2004 - 12:08 #20
Jeg har lavet min menu i en fil, og henter den så via include på alle de andre sider, så det skulle jo virke. Det er her er hvad jeg har skrevet i menuen, for at få punktet frem:
if ($_SESSION['Name'] && $_SESSION['sessionnr']) { echo "| Kontrolpanel";}

Prøv evt. at se: www.thomaslunde.dk/jobs/thomas/admin/login.php

login med lunde/lunde
Avatar billede tlunde Nybegynder
07. marts 2004 - 12:11 #21
Kan du se det? Hvis man logger ind, så kommer kontrolpanel godt nok frem, men hvis man så trykker på forside, så er det der ikke mere...Skulle det ikke være det, når jeg nu også kun køre en menu fil?
Avatar billede webcreator Nybegynder
07. marts 2004 - 12:12 #22
Hm, det tror jeg nærmest skyldes en fejl i din kode på dit login - måske at din session overskrives med ingen ting. Så det har ikke så meget med min løsning at gøre.
Avatar billede tlunde Nybegynder
07. marts 2004 - 12:17 #23
Hmm...ja, det lyder sgu da lidt mærkeligt ik? Hvad kan kan gøre ved det?
Avatar billede tlunde Nybegynder
07. marts 2004 - 12:23 #24
Kom lige til at tænke på noget...er det ikke noget med at der i toppen af hver af de andre filer, skal være noget med session_start() ??
Avatar billede tlunde Nybegynder
07. marts 2004 - 12:35 #25
Det var den session_start jeg manglede...takker for hjælpen, du får selvfølgelig alle points :)
Avatar billede webcreator Nybegynder
07. marts 2004 - 13:18 #26
Ah, ja. Der skal være en session_start() i toppen. Godt du fandt ud af det :)
Og beklager den lange svartid. Var lige igang med lidt andre ting.

Tak for points :)
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