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">© 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í"); } } ?> <?php include "include/funkce.php"; $rules = array("guest"); checkRules(); ?> Jinak hosting mám u endory |
||
Ugo Profil |
#2 · Zasláno: 7. 8. 2012, 07:12:41
|
||
sir_lamoid Profil |
#3 · Zasláno: 7. 8. 2012, 09:39:57
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"; } 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 |
#4 · Zasláno: 7. 8. 2012, 10:06:47
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 |
#5 · Zasláno: 7. 8. 2012, 10:36:05 · Upravil/a: sir_lamoid
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 |
||
Časová prodleva: 11 let
|
0