buttons alleen zichtbaar voor administrator.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Marcel sauer

marcel sauer

24/05/2012 21:55:47
Quote Anchor link
Hallo!

ik heb een inlog script draaien waar ik de admin ben en de rest user. (5 pers)
nu wil ik dat als ik inlog ik in het button menu een button heb voor admin cp.
als ik dit nu doe dan zien de users dit ook.
als de user er op klikt wordt bij weer naar de inlog pagina gestuurd.
als de admin dit doet kom ik wel op de goeie pagina.
ik vind het storend dat de users deze button ook zien hoe kan ik dit veranderen?

stukje code hier onder:

Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if (isset($_SESSION['user_id'])) {?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php }
/*******************************END**************************/
?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
if (checkAdmin()) {
/*******************************END**************************/
?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php } ?>

<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p></td>
<td width="732" valign="top">
<h3 class="titlehdr">My Account - Settings</h3>
<p>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php    
    if(!empty($err))  {
       echo "<div class=\"msg\">";
      foreach ($err as $e) {
        echo "* Error - $e <br>";
        }

      echo "</div>";    
       }

       if(!empty($msg))  {
        echo "<div class=\"msg\">" . $msg[0] . "</div>";

       }

      ?>

</p>

<center>
<FORM METHOD="link" ACTION="admin.php">
<p>
<input type="submit" value="Admin Control Pannel" style="width:200px; height:30px;">
</p>
</FORM>
</center>
Gewijzigd op 24/05/2012 22:14:18 door Marcel sauer
 
PHP hulp

PHP hulp

22/12/2024 23:48:59
 
Roel -

Roel -

24/05/2012 21:57:02
Quote Anchor link
Werk je met een database? Meer details a.u.b.
 
Marcel sauer

marcel sauer

24/05/2012 21:57:58
Quote Anchor link
ja werk met een database.
 
Obelix Idefix

Obelix Idefix

24/05/2012 22:12:47
Quote Anchor link
code aub tussen [code.] [/code.] tags (zonder .)

Je zult ergens de bevoegdheid van een user en administrator hebben vastgelegd. (in een tabel). Op basis van de bevoegdheid dan de button (niet) tonen.
 
Marcel sauer

marcel sauer

24/05/2012 22:18:05
Quote Anchor link
op iedere pagina moet ik dit include:

Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
include 'dbc.php';
page_protect();?>


in dbc.php staan de levels voor admin :

Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
/* Specify user levels */
define ("ADMIN_LEVEL", 5);
define ("USER_LEVEL", 1);
define ("GUEST_LEVEL", 0);?>


http://php-login-script.com/
Gewijzigd op 24/05/2012 22:18:52 door marcel sauer
 
Obelix Idefix

Obelix Idefix

24/05/2012 22:19:37
Quote Anchor link
Dan kun je toch controleren op het level-niveau? Als dat != 5 is, dan geen button tonen.
 
Marcel sauer

marcel sauer

24/05/2012 22:25:10
Quote Anchor link
bij admin juist wel button tonen dus bij 1 en 0 niet toch?
ik als admin moet de button wel kunnen zien.
dus dat wordt dan zo iets toch:

Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?php
if (!=5(hier text of button))?>


waar staat de uitroep voor?
 
Obelix Idefix

Obelix Idefix

24/05/2012 22:30:25
 
Marcel sauer

marcel sauer

24/05/2012 22:34:03
Quote Anchor link
hey thx voor die site !

maar hoe zeg ik dan dat ik geen button of text wil laten zien?
Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php if (!=5.............) [/quote]
 
Wouter J

Wouter J

24/05/2012 22:39:22
Quote Anchor link
De if statement werkt als volgt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if (conditie) {
    statement
}
?>

In de conditie kan je aangeven wanneer er iets moet uitgevoerd worden. In dit geval wil je dat er iets wordt uitgevoerd wanneer het level van de ingevoegde persoon (deze moet wel ergens in een variabele zit) hoger of gelijk aan het ADMIN_LEVEL is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if ($level_current_visitor >= ADMIN_LEVEL) {
    // statement
}
?>

De >= kun je in 2 gedeelten opsplitsen: > en =(=). De > betekend dat het getal links groter moet zijn dan het getal rechts en de == betekend dat de getallen gelijk moeten zijn. Als je dat combineert krijg je >= en dat betekend gelijk aan of groter dan.

Vervolgens kun je het geen er moet worden uitgevoerd in de statement plaatsen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if ($level_current_visitor >= ADMIN_LEVEL) {
    echo '<button>Verwijderen</button>';
}

?>
 
Marcel sauer

marcel sauer

24/05/2012 22:46:47
Quote Anchor link
ok dan thx voor de uitleg ik ga hier even mee experimenteren!
mocht ik er niet uit komen dan post ik wel weer even hoever ik gekomen ben!
 
Wouter J

Wouter J

24/05/2012 22:50:43
Quote Anchor link
Overigens een overzicht van alle operators die je kunt gebruiken in de conditie gedeelte: operators.comparison
Gewijzigd op 24/05/2012 22:52:24 door Wouter J
 
Chris PHP

Chris PHP

25/05/2012 07:29:39
Quote Anchor link
Marcel,

Gebruik voor je echo's enkele queotes ' en voor HTML dubbelen ". Dat scheelt je een hoop \ overal.

Wat ik meestal doe als ik een los admin menu heb (meer als 1 button), is het volgende.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

if(isset($_SESSION['usrlvl']) && $_SESSION['usrlvl'] === 'admin waarde hier') {
// Hier je menu met buttons in een div of iets dergelijks, als het veel html is zou ik hier na de { oit php gaan en na je menu weer terug naar php om de } te zetten.
?>


P.S. als je met een database werkt, waarom heb je dan je user levels in een php bestandje staan? Hoe weet je nu welke gebruiker wat heeft?
 
Marcel sauer

marcel sauer

25/05/2012 18:44:27
Quote Anchor link
de levels staan in het bestand om te checken wel nr wel level is neem ik aan.
in de database wordt alleen het nr opgeslagen.

ik heb de code van Chris gebruikt maar met gevolg dat de hele pagina niet geladen kan worden.
heb het even geprobeerd met een hyper link om te testen.
wat doe ik fout dan?

Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if(isset($_SESSION['usrlvl']) && $_SESSION['usrlvl'] === '5') {
<
a href="vervangbaar.php">admin test</a>// Hier je menu met buttons in een div of iets dergelijks, als het veel html is zou ik hier na de { oit php gaan en na je menu weer terug naar php om de } te zetten.?>


edit : ok ben nu weer een hele avond aan het klooien geweest veel gelezen op internet maar nog geen steek verder.
Gewijzigd op 25/05/2012 21:45:48 door marcel sauer
 
Nick Dijkstra

Nick Dijkstra

25/05/2012 23:37:46
Quote Anchor link
Je kunt niet zo de html code in php zetten. Je zou deze dan moeten echo'en:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if(isset($_SESSION['usrlvl']) && $_SESSION['usrlvl'] === '5') {
echo '<a href="vervangbaar.php">admin test</a>';
}

?>

of:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if(isset($_SESSION['usrlvl']) && $_SESSION['usrlvl'] === '5') {
?>

<a href="vervangbaar.php">admin test</a>
<?php } ?>
Gewijzigd op 25/05/2012 23:38:05 door Nick Dijkstra
 
Marcel sauer

marcel sauer

26/05/2012 12:50:47
Quote Anchor link
ok ben ondertussen zo ver dat hij wel weer bij een code wat laat zien alleen wederom weer voor admin en user!
heb ook gevonden dat mijn $_SESSION['user_level'] is en geen userlvl dus.

Quote:
?>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php //deze code doet helemaal niks.
if(isset($_SESSION['user_level']) && $_SESSION['user_level'] === '5') {
?>

<a href="vervangbaar.php">admin test</a>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php } ?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php // echter deze code laat wel de link zien alleen voor admin EN user!
if(isset ($_SESSION['user_level']) == '5') {
?>

<a href="vervangbaar.php">admin test</a>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php } ?>
 
- Mark -

- Mark -

26/05/2012 12:56:17
Quote Anchor link
Er hoeven geen quotes om getallen heen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

    if(isset($_SESSION['user_level']) and $_SESSION['user_level'] == 5){

?>

<a href="vervangbaar.php">admin test</a>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
    }

?>


Je weet het verschil tussen == en === neem ik aan?
 
Marcel sauer

marcel sauer

26/05/2012 13:00:11
Quote Anchor link
maar als ik :

Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
 if(isset($_SESSION['user_level']) and $_SESSION['user_level']

?>


gebruik dan laat hij helemaal niks meer zien.
kan het zijn dat hij het admin level nergens detecteerd?
 
- Mark -

- Mark -

26/05/2012 13:09:41
Quote Anchor link
Probeer eens onderstaande, ik ga er wel van uit dat je session_start() boven je script hebt staan?


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
23
24
25
26
27
28
29
30
31
32
<?php

    # Controleren of $_SESSION['user_level'] wel bestaat.
        
        if(isset($_SESSION['user_level'])){
        
        # Controleren of de gebruiker voldoende rechten heeft om de admin menu link te zien.
        
            if($_SESSION['user_level'] == 5){
            
            # Ja, de gebruiker heeft voldoende rechten. Menu link weergeven.
            
                echo '<a href="vervangbaar.php">admin test</a>';
            
            }

            else{
            
            # Nee. de gebruiker heeft niet voldoende rechten. Tijdelijk een foutmelding geven om debug redenen.
                    
                echo 'Helaas! U heeft niet voldoende rechten.';
        
            }
        }

        else{
        
        # $_SESSION['user_level'] bestaat niet, foutmelding weergeven.
        
            echo ' $_SESSION[\'user_level\'] bestaat niet.';
        
        }


?>
 
Marcel sauer

marcel sauer

26/05/2012 13:19:54
Quote Anchor link
dit staat boven elke afgeschermde pagina:

Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
include 'dbc.php';
page_protect();
?>


in de dbc.php staat ergens in het script de start session.
ik neem dan aan dat hij het uit de dbc.php leest
 
- Mark -

- Mark -

26/05/2012 13:30:36
Quote Anchor link
Ik heb het script even snel door gekeken en session_start staat inderdaad in dbc.php

welke foutmelding krijg je als je mijn laatste variant gebruikt?
 

Pagina: 1 2 volgende »



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.