Avatar billede tlunde Nybegynder
27. august 2005 - 10:37 Der er 13 kommentarer og
1 løsning

Gøre side sikker udenom login?

Hejsa,
Jeg har siddet og rodet med et community, www.selvhjaelp.dk/login/login.php (user:marie, pass:12345)

Efter login, bliver man stillet videre til kontrolpanel.php, og der har jeg følgende kode:

<?
session_start();
include("../config.php");
?>
<html>
<head>
<title>Untitled Document</title>
</head>

<body>
<?
if($_SESSION[brugernavn])
{   
echo "Du er nu logget korrekt ind!";
echo "Velkommen ";;
echo $_SESSION['brugernavn'];
echo "<a href='logud.php'>Log ud</a>";
}
else
{
        echo"
        <table border='0' cellspacing='0' cellpadding='0'>
        <tr>
            <td>Du skal være logget ind for at se denne side. Du kan logge ind <a href='login.php'>her</a><br><br>
            Med venlig hilsen<br><strong>ThomasLunde.dk </strong></td>
        </tr>
        </table>";
}
?>
</body>
</html>

Det virker fint nok sådan her, men den if sætning jeg har, der tjekker om man er logget ind, den ville jeg gerne have over i en fil, der hedder tjeklogin.php så jeg ikke skal programmere hele mit kontrolpanel indeni echos...

Forstår i hvad jeg gerne vil??
Nogen der kan hjælpe mig??

Har rodet med det, men kan ik rigtigt få det til at virke, hvis jeg smider noget af koden over i en tjeklogin.php fil...

Mvh.
Thomas
Avatar billede jakobdo Ekspert
27. august 2005 - 10:55 #1
Du kunne lave en funktion?
function tjekLogin()
{
  $result = false;
  if(isset($_SESSION['brugernavn']))
  {
    $result = true;
  }
  return $result;
}
Avatar billede jakobdo Ekspert
27. august 2005 - 10:56 #2
Får du nogen fejl med det du selv har rodet med?
Avatar billede tlunde Nybegynder
27. august 2005 - 10:58 #3
jakobdo, prøver lige dit forslag...

Det jeg selv rodede med, havde problemer med at den ikke ville sende videre til min header, og nogle gange skrev den både at den var logget ind og ikke logget ind. Lidt underligt...
Avatar billede jakobdo Ekspert
27. august 2005 - 10:59 #4
Endnu smartere:

function tjekLogin()
{
  return isset($_SESSION['brugernavn']);
}
Avatar billede jakobdo Ekspert
27. august 2005 - 11:00 #5
Du skal huske, når du bruger header() så må der ikke være output over.
Fejl:
echo "Hej mor";
header("location: www.mor.dk");
exit();

korrekt:
header("location: www.far.dk");
exit();
echo "Hej far";
Avatar billede tlunde Nybegynder
27. august 2005 - 11:02 #6
Skal den function tjeklogin() ikke være noget ala dette:

function tjekLogin()
<?
{
  $result = false;
  if(isset($_SESSION['brugernavn']))
  {
    $result = true;
    header("Location:kontrolpanel.php");
  }
  else
  {   
      header("Location:kontrolpanel.php");
  }
    return $result;
}
?>

og så skal jeg vel bare smide den i en fil der hedder tjeklogin.php, og include den i toppen af kontrolpanel.php...eller er der noget jeg har misforstået?
Avatar billede jakobdo Ekspert
27. august 2005 - 11:06 #7
Du kan smide functionen i en fil og f.eks. kalde den: tjeklogin.php, du kunne også smide den i en fil som hed funktioner.php
Så kunne du smide alle dine små funktioner i den.

Men i toppen af kontrolpanel.php kunne du lave:

<?
session_start();
tjeklogin();
//resten af din kontrolpanel side...
?>

og tjeklogin-funktionen:
function tjekLogin()
<?
{
  $result = true;
  if(!isset($_SESSION['brugernavn']))
  {
    $result = false;
    header("Location:login.php");
  }
  return $result;
}
?>
Avatar billede jakobdo Ekspert
27. august 2005 - 11:07 #8
Og smid evt exit efter header, det er ofte en god ide.

<?
{
  $result = true;
  if(!isset($_SESSION['brugernavn']))
  {
    $result = false;
    header("Location:login.php");
    exit();
  }
  return $result;
}
?>
Avatar billede tlunde Nybegynder
27. august 2005 - 11:09 #9
I kontrolpanel.php skal det så være sådan som du skriver:

<?
session_start();
tjeklogin();
//resten af din kontrolpanel side...
?>

kunne det ikke bare være:

<?
session_start();
tjeklogin();
?>
<html>
<head>
<title>Untitled Document</title>
</head>

<body>
//resten af din kontrolpanel side...
</body>
</html>
Avatar billede tlunde Nybegynder
27. august 2005 - 11:10 #10
Hvad gør den exit(); efter en header?
Avatar billede jakobdo Ekspert
27. august 2005 - 11:28 #11
Det kan godt være:

<?
session_start();
include("funktioner.php");
//eller include("tjeklogin.php");

tjeklogin();
?>
<html>
<head>
<title>Untitled Document</title>
</head>

<body>
//resten af din kontrolpanel side...
</body>
</html>

exit() stopper scriptet fra at køre længere.
Avatar billede tlunde Nybegynder
29. august 2005 - 12:10 #12
takker, det virker som det skal nu, så smid lige et svar, og du får nogle point!
Avatar billede jakobdo Ekspert
29. august 2005 - 14:12 #13
Svar!
Avatar billede jakobdo Ekspert
29. august 2005 - 14:51 #14
takker 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