Autor Zpráva
sir_lamoid
Profil
omlouvám se za duplicitu původní téma jsem zamkl

Jak udělat aby ten skript fungoval:
Pokud proměná $_SESSION[opravneni] obsahuje aspon jednu hodnotu z proměnné $rules potom se vypíše zbytek kódu jinak se přesměruje na admin.php s warovnou zprávou že nemá oprávnění
ala potřebuji aby proměnná rules obsahovala třeba jak adminy tak uživatele což jsem si řekl že by to mělo jít pomocí array ale ono to tak nejde... neháže to nějákou chybu nic... :/ prostě aji když session obsahuje guest tak to háže chybu že uživatel nemá práva zde jsou mé kódy:
admin.php
<?php
include('include/funkce.php');
checkLogin();
?>
<!DOCTYPE HTML>
<html lang="cs-cz" dir="ltr">
<head>
    <meta  charset="UTF-8"/>
    <meta http-equiv="content-type" content="text/html" />
    <meta name="author" content="sir_lamoid" />
    <link rel="stylesheet" href="style/style.css" />
    <link href="favicon.png" rel="icon" type="image/png" />
    <!--[if IE]>
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <title>Administrace</title> 
</head>
<body>
<div id="body_admin">
<?php
$warn=$_GET["warn"];
echo "<b>".$warn."</b>";
?>

</div>
</div>
<footer id="paticka">
    <span id="reklama"><endora></span>
    <span id="copyright">&copy; 2012 Jakub Stejskal - Všechna práva vyhrazena</span>
</footer>
</body>
</html>

include/funkce.php
<?php
function checkLogin(){
    session_start();
    global $rules;
    if(!isset($_SESSION["nick"])) {
        header("Location: login.php?warn=Nejste přihlášen");
    }
}
function checkRules() {
    session_start();
    global $rules;
    if($_SESSION["opravneni"]!=$rules) {
        header("Location: admin.php?warn=Nemáte oprávnění");
    }
}
?>
test.php
<?php
include "include/funkce.php";
$rules = array("guest");
checkRules();
?>



Jinak hosting mám u endory
Ugo
Profil
in_array
sir_lamoid
Profil
Takže jsem to skusil zbastlit ale furt to nefunguje. Nevypisuje to žádné chybové hlášky. V session je guest a v array je taky a stejně to háže warna: Nemáte oprávnění
function checkRules() {
    session_start();
    global $rules;
    $userrules = $_SESSION["opravneni"];
    if(!in_array($userrules, $rules)) {
        header("Location: admin.php?warn=Nemáte oprávnění");
        die();
    } else {
        echo "vitajte";
    }
Zkoušel jssem to udělat i
function checkRules() {
    session_start();
    global $rules;
    if(!in_array($_SESSION["opravneni"], $rules)) {
        header("Location: admin.php?warn=Nemáte oprávnění");
        die();
    } else {
        echo "vitajte";
    }
Ugo
Profil
to je divný, tam bude chyba v tom co to obsahuje. Stačí když tam bude třeba mezera nebo tak něco. z- var_dump -uj to pořádně před tou podmínkou.
sir_lamoid
Profil
Jedna malá chbka se my tam vloudila.
Ugo diky za ten var_dump bez toho bych na to nepřišel.
Poslední dobou mi vynechává klavesnice takže v databázi se mi vloudila chyba
místo sloupce opravneni jsem mel opraveni :D
takže při zapisování do session jsem bral data z neexistujícího sloupce opravneni :D takže se automaticky zapsalo NULL :D


Ano hoooooodně děkuji už to konečně funguje. :D

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: