Pagina systeem, onderscheiden van andere paginas.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Hans -

Hans -

29/10/2012 23:06:19
Quote Anchor link
Beste programmeurs,

ik zit op dit moment beetje met een probleem, logisch anders zou ik dit topic niet openen. Beetje rare titel, weet niet zo goed hoe ik het moet omschrijven. Maar het zit dus zo.

In mijn website maak ik gebruik van een pagina systeem, en zet in de index dus al de inlog controle, als diegene niet is ingelogd komt hij automatisch op de inlog pagina. Maar, hoe kan ik nou 1 pagina niet laten lopen via de inlog controle, omdat diegene daar eigenlijk altijd op moet kunnen. Het gaat namelijk om een link die ik stuur via de mail, en als de gebruiker hem dan opent, moet hij niet afgekeurt worden omdat hij niet ingelogd is.

Heeft iemand ideeën hoe ik dit kan gaan oplossen? Alles is welkom, bedankt!

misschien handig om te kijken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
$ar = array("home", "login", "register", "profile", "editprofile", "logout", "admin", "dkConfig", "dagklik", "dkLink");                            
        $p = $_GET['pagina'];                    
        if(in_array($p, $ar)) {                
            echo '<br />';
            require_once('./pagina/' . $p . '.php');
            echo '<br /><br />';
        }
        else {
        echo '<br />';
        require('pagina/error.php');
        echo '<br /><br />';
        }
 
PHP hulp

PHP hulp

25/04/2024 10:57:54
 
Ozzie PHP

Ozzie PHP

29/10/2012 23:22:06
Quote Anchor link
Waar is dan je inlog controle? Die zie ik helemaal niet.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

29/10/2012 23:40:15
Quote Anchor link
je zult naar deze structuur moeten maar zoals ozzie al zegt waar is de login controlle want die moet je natuurlijk overslaan voor publieke pagina's

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php

$protected
    = array("home", "register", "profile", "editprofile", "logout", "admin", "dkConfig", "dagklik", "dkLink");                            
$open        = array("login", "openpage", "openpage2");      
                      
$p = $_GET['pagina'];  
                
if(in_array($p, $protected)) {                
    echo '<br />';
    require_once('./pagina/' . $p . '.php');
    echo '<br /><br />';
}
else if(in_array($p, $open)) {                
    echo '<br />';
    require_once('./pagina/' . $p . '.php'); // geen logincontrolle
    echo '<br /><br />';
}
else {
    echo '<br />';
    require('pagina/error.php');
    echo '<br /><br />';
}

    
?>
Gewijzigd op 29/10/2012 23:41:39 door Frank Nietbelangrijk
 
Hans -

Hans -

30/10/2012 09:44:56
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
session_start();
if(isset($_SESSION['login']))
{
    $id = $_SESSION['id'];
    $username = $_SESSION['username'];
    $login = $_SESSION['login'];
    
include '../config.php';
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="keywords" content="" />
<meta name="description" content="" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Veilingsysteem</title>
<link href="../style.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<body>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
    echo "<div id='stats'>";
    
    $query = mysql_query("SELECT * FROM users WHERE username='".$username."'");
    echo "<table>";
    while($row = mysql_fetch_assoc($query))
    {

        echo "<tr><td colspan='3'><u>Gebruikersnaam:</u></td></tr>";
        echo "<tr><td colspan='3'>".$row['username']."</td></tr>";
        echo "<tr><td colspan='3'><u>Aantal punten:</u></td></tr>";
        echo "<tr><td colspan='3'>".$row['punten']."</td></tr>";
        echo "<tr><td></td></tr><tr><td></td></tr><tr><td></td></tr>";
        echo "<tr><td><a href='index.php?pagina=profile'><img src='../images/profile.png'/></a></td><td><a href='index.php?pagina=inbox'><img src='../images/mail.png'/></a></td><td><a href='index.php?pagina=logout'><img src='../images/exit.png' height='24' width='24'/></a></td></tr>";
    }

    echo "</table>";
    echo "</div>";
?>

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/slider.js"></script>
<div id="subMenu">
<img src="images/button.png" width="142" height="32" class="menu_class" />
<ul class="the_menu">
<li><a href="index.php?pagina=dagklik">Dagklik</a></li>
<li><a href="#">Weekklik</a></li>
<li><a href="#">Raad het getal!</a></li>
<li><a href="#">Blackjack</a></li>
<li><a href="#">Fruitautomaat</a></li>
</ul>
</div>
<div id="header" class="container">
<div id="logo">
<h1><a href="index.php?pagina=home">NAAM</h1>
<p>JOUW ONDERTEKST</a></p>
</div>
<div id="menu">
<ul>
<li><a href="index.php?pagina=home">Home</a></li>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
                $qry
= mysql_query("SELECT * FROM users WHERE username='".$username."'");
                while($row = mysql_fetch_assoc($qry))
                {

                    if($row['rechten'] >= 1)
                    {

                        echo "<li><a href='index.php?pagina=admin'>Beheer</a></li>";
                    }
                }

            ?>

<li><a href="index.php?pagina=getpunten">Punten uitgeven</a></li>
<li><a href="index.php?pagina=hulp">Hulp</a></li>
<li><a href="index.php?pagina=profiel">Mijn profiel</a></li>
<li><a href="index.php?pagina=contact">Contact</a></li>
</ul>
</div>
</div>
<!-- end #header -->
<div id="wrapper">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php      
        $ar
= array("home", "login", "register", "profile", "editprofile", "logout", "admin", "dkConfig", "dagklik", "dkLink");                            
        $p = $_GET['pagina'];                    
        if(in_array($p, $ar)) {                
            echo '<br />';
            require_once('./pagina/' . $p . '.php');
            echo '<br /><br />';
        }

        else {
        echo '<br />';
        require('pagina/error.php');
        echo '<br /><br />';
        }

    ?>

</div>
<div id="footer">
<p>FOOTER - TEXT - FOOTER - TEXT - FOOTER - TEXT - FOOTER - TEXT</p>
</div>
<!-- end #footer -->
</body>
</html>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
}

else
{
    echo "<meta http-equiv='refresh' content='0;URL=../index.php?pagina=login'/>";
}
    
?>



Dit is het script, zoals je ziet wordt er aan het begin gecontroleerd.
Gewijzigd op 30/10/2012 10:03:12 door Hans -
 
Frank Nietbelangrijk

Frank Nietbelangrijk

30/10/2012 11:42:09
Quote Anchor link
Maak bovenin dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
session_start();
if(!isset($_SESSION['login']))
{

// if(pagina = public) {

// laad public pagina

// } else {

// redirect naar login

header('Location: index.php?pagina=login');
die();
// }
}
$id = $_SESSION['id'];
$username = $_SESSION['username'];
$login = $_SESSION['login'];
    
include '../config.php';
?>


en dan onderin die else met die <meta... weghalen!
Gewijzigd op 30/10/2012 11:49:39 door Frank Nietbelangrijk
 
Rick van Riel

Rick van Riel

30/10/2012 11:54:42
Quote Anchor link
Je kunt hier natuurlijk ook een leuke class voor bouwen die je dan ongeveer zo aanroept:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$login
= new checkLogin();
$login->addPageException('pagina');
if($login->loggedIn() == false) {
    header('Location: index.php?pagina=login');
    exit;
}


$id = $_SESSION['id'];
$username = $_SESSION['username'];
$login = $_SESSION['login'];
    
include '../config.php';
?>

Op deze manier hoef je niet elke keer als je een pagina wil toevoegen waarvoor je niet hoeft in te loggen een if toe te voegen maar kun je dat gewoon doen via de "addPageException" functie doen.
 
Hans -

Hans -

30/10/2012 15:55:20
Quote Anchor link
Hmm, ik denk dat de functie inderdaad wel wat interessanter klinkt. Maar toch bedankt Frank!

Rick, kunt u een beetje uitleggen wat hij precies hier doet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
$login = new checkLogin();
$login->addPageException('pagina');
if($login->loggedIn() == false) {
    header('Location: index.php?pagina=login');
    exit;
}


En waar moet ik dit plaatsen etc?

Toevoeging op 31/10/2012 13:39:37:

Rick kunt u alsjeblieft antwoord geven? Of natuurlijk iemand anders die het me uit kan leggen?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.