Avatar billede tendal Nybegynder
02. december 2005 - 00:47 Der er 16 kommentarer og
1 løsning

Problem med header i login check

Hej
Jeg har lavet en side hvor forskellige brugere kan logge sig ind og redigere i forskellig data. Jeg har forsøgt at lave en fil hvor der kontrolleres om brugeren er logget ind sådan at det første på mine admin siden er <? require ("tjeklogin.php"); ?>
Men jeg kan ganske enkelt ikke få tjeklogin.php til at gøre det jeg gerne vil. Jeg har forskellige brugertyper son jeg af uforklarlige årsager gennem i $_SESSION['id'] desuden gemmer jeg deres brugernavn i $_SESSION['name']. De forskellige brugertyper skal have forskellige muligheder derfor forskellige menuer. Min tjeklogin.php fil ser ud som følger:
<?
session_start();
if (isset($_SESSION['name']) && $_SESSION['id'] == "admin")
{
header("Location: admin-1.php");
}
else if (isset($_SESSION['name']) && $_SESSION['id'] == "bruger")
{
header("Location: admin-2.php");
}
else if (!isset($_SESSION['name']))
{
header("Location: login.php");
}
?else if (isset($_SESSION['name']) && $_SESSION['id'] == "bruger")
{
header("Location: admin-2.php");
}
?>
Men det virker ikke - kan nogen hjælpe mig med at få det til at virke :o)
Avatar billede jaw Nybegynder
02. december 2005 - 00:50 #1
?else if (isset($_SESSION['name']) && $_SESSION['id'] == "bruger")  <- hvorfor har du et ? der? Og så bør du altid have exit(); efter dine headers. Og er du sikker på, at de sessions indeholder det du tror de gør?
Avatar billede showsource Seniormester
02. december 2005 - 00:53 #2
Og hvorfor ikke blot bruge:
<?php
session_star();
if(!isset($_SESSION["name"], $_SESSION["id"])) {
header("Location:login.php");
exit;
}
?>

Og så i fil hvor man kan ændre divers ting, tjekke hvilken værdi session "name" har, og ud fra det vise noget forskelligt.
Avatar billede showsource Seniormester
02. december 2005 - 00:54 #3
Nåh, det er jo så "id" og ikke name :O)
Avatar billede tendal Nybegynder
02. december 2005 - 00:59 #4
Kan du give et eksempel - jeg er ikke helt med på hvad du mener
Avatar billede tendal Nybegynder
02. december 2005 - 01:01 #5
Til Jaw - ignorer ? det var en tryk fejl da jeg lige skrev scriptet ind her på siden - og ja jeg er sikker på at mine sessions indeholder det jeg tror de gør
Avatar billede tendal Nybegynder
02. december 2005 - 01:05 #6
Til showsource - det virker, men det jeg gerne vil have lidt mere at vide om er det med de forskellige brugere - det ville jo være smart hvis de blev ledt hen til det rigtige sted i denne fil, men hvis det er lettere at lave det i en anden fil så gør jeg gerne det, bare det virker :o)
Avatar billede showsource Seniormester
02. december 2005 - 01:21 #7
Der er flere måder at gøre det på.

<?php
session_star();

    if(!isset($_SESSION["name"], $_SESSION["id"])) {
    header("Location:login.php");
    exit;
    }

    if(is_file("brugerfil_". $_SESSION["name"] .".php")) {
    include("brugerfil_". $_SESSION["name"] .".php");
    }
?>
?>
Avatar billede tendal Nybegynder
02. december 2005 - 01:30 #8
Jeg ser hvad du mener, men jeg har allerede lavet de forskellige sider med forskellige menuer og kunne derfor godt tænke mig at man i filen checker brugertypen og derigennem besluttet hvilken side de skal sendes hen til - altså i stil med det jeg havde lavet til at starte med, men det kan måske ikke lade sig gøre?
Avatar billede showsource Seniormester
02. december 2005 - 01:45 #9
f.eks.
<?php
session_star();

    if(!isset($_SESSION["name"], $_SESSION["id"])) {
    header("Location:login.php");
    exit;
    }

    $files = array("admin" => "bruger_1.php", "bruger" => "bruger_2.php");

        if(isset($files[$_SESSION["id"]])) {
        header("Location:". $files[$_SESSION["id"]] .".php");
        exit;
        }else{
        echo"FEJL!";
        }
    }
?>

Men er lige lidt ude af den! :O)
Avatar billede tendal Nybegynder
02. december 2005 - 01:45 #10
Jeg har nu lavet en ny fil der hedder vaelgmenu.php med følgende indhold
<?
session_start();
if($_SESSION['id']=="admin"){
header("Location:admin-1.php");
exit;
}
else if ($_SESSION['id']=="bredde"){
header("Location:admin-2.php");
exit;
}
else if ($_SESSION['id']=="klub"){
header("Location:admin-3.php");
exit;
}
?>
I mit link til admin delen har jeg valgt denne fil - burde det ikke virke? Måske kan I regne ud at det ikke virker - så måske nogen kan sige mig hvorfor det ikke virker?
Avatar billede showsource Seniormester
02. december 2005 - 01:52 #11
Kan ikke se hvorfor det ikke skulle virke?
Evt. hvis du har tom luft i starten af din fil?
Altså
<?
lkflkllk
?>
Avatar billede tendal Nybegynder
02. december 2005 - 02:01 #12
Nej - jeg tror også det virker nu, men det hjælper ikke på mit problem, men det er ikke din skyld - det er vist mig der ikke har tænkt mig om da jeg startede udviklingen af siden, så nu må jeg virkelig til at tænke mig om hvad jeg kan gøre for det som jeg har nu spiller ikke. Men smid et svar og du får de point som du trods alt fortjener
Avatar billede showsource Seniormester
02. december 2005 - 02:03 #13
Ingen point her, ellers tak!
Men hvad præcis er problemet?
Avatar billede tendal Nybegynder
02. december 2005 - 02:12 #14
Ja problemet er jo nok at jeg ikke fra start havde tænkt alt helt igennem, men jeg tror nu jeg kan løse det sådan rimeligt. Jeg får bare en masse filer som indeholder  det samme, med undtagelse af menuen som så bliver ændre. Jeg skulle nok have lavet menuen for sig og brugt include. Men jeg tror nu nok det skal løse sig :o) Det er lidt svært at forklare synes jeg, men overordnet er det min menu er der problemet
Avatar billede tendal Nybegynder
02. maj 2006 - 21:46 #15
Har ikke givet point her, men kan se at showsource har lagt en del tid i det, så et svar og pointene er dine
Avatar billede showsource Seniormester
03. maj 2006 - 00:04 #16
ingen point til mig her, ellers tak.

En mulighed er f.eks. at include en fil hvor forskellige nivauer er defineret, eller bruge en DB til at hente nivau fra.
Avatar billede tendal Nybegynder
25. september 2006 - 23:01 #17
lukker
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