Avatar billede fiil123 Nybegynder
19. januar 2006 - 15:57 Der er 9 kommentarer og
1 løsning

SESSION Password problemer

Jeg bruger det her til at logge ind med:
<?php

$brugerpass = array('' => '',
                    '' => '');
                     
// Hvis der er trykket på login formen aktiveres scriptet
if($_POST['action'] == "login") {

  //username og password fra formular
  $bruger = $_POST['brugernavn'];
  $pass = $_POST['password'];

  //tjek om felter er udfyldt
  if(empty($_POST['brugernavn'])) {
    echo "Du har ikke indtastet et brugernavn!";
  } elseif(empty($_POST['password'])) {
    echo "Du har ikke indtastet et password!";
  } else {

    //tjekker om brugernavn og password passer sammen
    if(array_key_exists($bruger, $brugerpass) && $brugerpass[$bruger] == $pass) {
      $_SESSION['login']="ok";
      $_SESSION['snr'] = session_id();
      // sender brugeren videre til en side
      header("location: index.php");
    } else {
      echo "<div id='indhold'>Brugernavn eller Password er forkert!</div>";
    }

  }

}
?>

Og smider det her på selve siden der skal beskyttes:
<?php
session_start();
if (!isset($_SESSION['login'], $_SESSION['snr']) || $_SESSION['snr'] != session_id()) {
  echo "Du er IKKE logget ind";
  exit;
}
?>

Men det kræver at filerne ligger i samme biblotek er der ikke mulighed for at få beskyttelsen til at pege bagud en mappe eller 2?
Avatar billede jakobdo Ekspert
20. januar 2006 - 11:13 #1
session burde virke fra alle mapper.
Avatar billede fiil123 Nybegynder
20. januar 2006 - 11:16 #2
Lige så snart jeg vil gå en mappe dybere kommer den med at man ikke er logget ind
Avatar billede jakobdo Ekspert
20. januar 2006 - 11:25 #3
Prøv at åben denne: http://www.codebreaker.dk/exp/680993.php
Så skulle du se session ikke ok.
Gå så til linket under! (det ligger en mappe længere fremme, der sættes en session = true)
Hop så tilbage igen, og session kan stadig læses.
Avatar billede fiil123 Nybegynder
20. januar 2006 - 11:29 #4
Kan jeg godt se... men hvad er der så galt med mit?
Avatar billede jakobdo Ekspert
20. januar 2006 - 11:35 #5
prøv at lav noget debug, f.eks.:

<?php
session_start();
echo "SNR: " . $_SESSION['snr'] . "<br>";
echo "session_id: " . session_id() . "<br>";
if (!isset($_SESSION['login'], $_SESSION['snr']) || $_SESSION['snr'] != session_id()) {
  echo "Du er IKKE logget ind";
  exit;
}
?>

osv...
Avatar billede fiil123 Nybegynder
20. januar 2006 - 11:45 #6
Jeg er ikke helt vildt hjemme i PHP, derfor vil det være fedt hvis du lige smider nogle ord på hvad det der gør!
Avatar billede fiil123 Nybegynder
20. januar 2006 - 11:51 #7
Nu virker det sq... så skal jeg bare lige havde slettet de echo'er der...
Men hvorfor virker det?
Avatar billede fiil123 Nybegynder
20. januar 2006 - 12:00 #8
Smide et svar det virker jo, og du har dermed svaret!
Avatar billede jakobdo Ekspert
20. januar 2006 - 12:01 #9
Svar!
Avatar billede jakobdo Ekspert
20. januar 2006 - 12:47 #10
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