Avatar billede greenie Nybegynder
07. november 2013 - 21:02 Der er 10 kommentarer og
1 løsning

Log ind beskyttelse

Før havde jeg et simpelt log ind system, og en beskyttelse på hver af de sider der krævede log ind, men det er skiftet ud til et bedre system.

Jeg har ikke helt regnet ud hvad der skal stå i toppen af siden hvor indholdet kun må ses af medlemmer der er logget ind?

Det her er den nye kode, eller en del af det

            <?php
           
            if(!$_SESSION['id']):
           
            ?>
           
            <div class="left">
                <!-- Login Form -->
                <form class="clearfix" action="" method="post">
                    <h1>Medlems logind</h1>
                   
                    <?php
                       
                        if($_SESSION['msg']['login-err'])
                        {
                            echo '<div class="err">'.$_SESSION['msg']['login-err'].'</div>';
                            unset($_SESSION['msg']['login-err']);
                        }
                    ?>
                   
                    <label class="grey" for="username">Brugernavn:</label>
                    <input class="field" type="text" name="username" id="username" value="" size="23" />
                    <label class="grey" for="password">Kodeord:</label>
                    <input class="field" type="password" name="password" id="password" size="23" />
                    <label><input name="rememberMe" id="rememberMe" type="checkbox" checked="checked" value="1" />  Husk mig</label>
                    <div class="clear"></div>
                    <input type="submit" name="submit" value="Login" class="bt_login" />
                </form>
            </div>
            <div class="left right">           
            </div>
           
            <?php
           
            else:
           
            ?>
           
            <div class="left">
           
            <h1>Medlems panel</h1>
           
            <p>You can put member-only data here</p>
            <a href="registered.php">View a special member page</a>
            <p>- or -</p>
            <a href="?logoff">Log ud</a>
           
            </div>
           
            <div class="left right">
            </div>
           
            <?php
            endif;
            ?>
        </div>
    </div> <!-- /login -->   

    <!-- The tab on top -->   
    <div class="tab">
        <ul class="login">
            <li class="left"> </li>
            <li>Hej <?php echo $_SESSION['usr'] ? $_SESSION['usr'] : 'Gæst';?>!</li>
            <li class="sep">|</li>
            <li id="toggle">
                <a id="open" class="open" href="#"><?php echo $_SESSION['id']?'Vis panel':'Log ind';?></a>
                <a id="close" style="display: none;" class="close" href="#">Skjul panel</a>           
            </li>
            <li class="right"> </li>
        </ul>
    </div> <!-- / top -->
   
</div> <!--panel -->


Her er den gamle beskyttelse

<?php
  if (isset($_SESSION["username"]) && isset($_SESSION["userid"])) {
?>

Wagga wagga... <- beskyttet indhold ;)

<?php
  } else { echo "<center><h1>Denne side kræver log ind..</h1></center>"; }
?>
Avatar billede madslundholm Novice
07. november 2013 - 21:39 #1
Den første del er dem der ikke er logget ind og nederste del er for dem det er
Avatar billede greenie Nybegynder
07. november 2013 - 22:31 #2
Den er jeg med på :) Jeg tænker på beskyttelse af selve siden, hvis nu man taster hele adressen ind, så kan man jo gå uden om log ind delen, så skal der være noget på selve siden der gør at man kun kan se den når man er logget ind.
Avatar billede madslundholm Novice
08. november 2013 - 10:04 #3
Det klarer du jo med at tjekke om $_SESSION['id'] er sat
Avatar billede Stickano Nybegynder
13. november 2013 - 17:06 #4
if(!isset($_SESSION['id'])){
    <- indhold til folk der ikke er logget ind.
}else{
    <- indhold til folk der er logget ind.
};
Avatar billede greenie Nybegynder
05. december 2013 - 20:58 #5
Jeg kan ikke få det til at virke :(

Har lavet siden sådan her


<?php
  $page_title         = "Lokalaftaler";
  include($_SERVER["DOCUMENT_ROOT"].'/php/head2.php');
  if(!isset($_SESSION['id'])){
?>

  <div id="main">
    <div class="container">
Indhold, bla bla bla bla...

    </div>
  </div>
<?php
  } else { echo "<center><h1>Denne side kræver log ind..</h1></center>"; }
  include($_SERVER["DOCUMENT_ROOT"].'/php/tail2.php');
?>



Men når jeg taster hele adressen ind, så vises indholdet stadig, selvom jeg ikke er logget ind.
Avatar billede Stickano Nybegynder
05. december 2013 - 21:37 #6
Lige nu ser du garanteret "Indhold, bl bla bla bla"?

Husker du at lave en @session_start(); på alle dine dokumenter?

Bl.a. også hvis du har et andet dokument der håndtere login delen.
Avatar billede greenie Nybegynder
09. december 2013 - 18:08 #7
Skal @session_start(); være før body ??
Avatar billede Stickano Nybegynder
09. december 2013 - 18:11 #8
@session_start(); skal stå i starten af dit dokument, ja.
Avatar billede greenie Nybegynder
09. december 2013 - 18:23 #9
Kan det være derfor jeg konstant (hver gang jeg klikker en ny side) bliver logget af systemet?
Avatar billede Stickano Nybegynder
09. december 2013 - 18:25 #10
Det er det nok, ja.
Avatar billede greenie Nybegynder
09. december 2013 - 20:19 #11
Hmm... nu virker den her fint..

if(!isset($_SESSION['id'])){
    <- indhold til folk der ikke er logget ind.
}else{
    <- indhold til folk der er logget ind.
};


Måske manglede jeg @session_start();
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