Autor | Zpráva | ||
---|---|---|---|
Fury Profil * |
#1 · Zasláno: 3. 3. 2016, 15:01:09
Zdravím,
narazil jsem na jeden problém, přepisoval jsem web pro vyšší verzi PHP a stává se mi následující příklad. Mám index.php, kde mám na začátku následující: ob_start(); session_start(); include_once('../db.php'); include_once('../funkce.php'); if(empty($_SESSION['UserLogged']))header("Location: login.php"); overit(); V souboru funkce.php jsem dal hned na první místo funkci overit(), před všechny ostatní funkce: function overit(){ $uzivatele = mysqli_query($db, (" SELECT *, CONCAT(jmeno, ' ',prijmeni) celejmeno FROM uzivatele WHERE email = '$_SESSION[UserEmail]' AND heslo = '$_SESSION[UserPass]' AND smazano = 0")); if(mysqli_num_rows($uzivatele)) // ŘÁDEK 9 { $u = mysqli_fetch_array($uzivatele); $_SESSION['UserId'] = $u['id']; $_SESSION['UserName'] = $u['jmeno']; $_SESSION['UserEmail'] = $u['email']; $_SESSION['UserPass'] = $u['heslo']; for ($i = 1; $i <= 30; $i++) { unset($_SESSION['prava_'.$i]); } $prava = mysqli_query($db, ("SELECT * FROM admin_prava WHERE uzivatel_id = $_SESSION[UserId]")); while($p = mysqli_fetch_array($prava)) { $_SESSION['prava_'.$p['modul_id']] = 1; } } } V tuto chvíli se mi začne zobrazovat chyba: Warning: mysqli_query() expects parameter 1 to be mysqli, null given in /beta/funkce.php on line 8 Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in /beta/funkce.php on line 9 Pokud ovšem v index.php nahradím řádek overit(); funkcí ověřit, tedy obsahem z funkce.php, tak mi vše funguje správně: ob_start(); session_start(); include_once('../db.php'); include_once('../funkce.php'); if(empty($_SESSION['UserLogged']))header("Location: login.php"); $uzivatele = mysqli_query($db, (" SELECT *, CONCAT(jmeno, ' ',prijmeni) celejmeno FROM uzivatele WHERE email = '$_SESSION[UserEmail]' AND heslo = '$_SESSION[UserPass]' AND smazano = 0")); if(mysqli_num_rows($uzivatele)) { $u = mysqli_fetch_array($uzivatele); $_SESSION['UserId'] = $u['id']; $_SESSION['UserName'] = $u['jmeno']; $_SESSION['UserEmail'] = $u['email']; $_SESSION['UserPass'] = $u['heslo']; for ($i = 1; $i <= 30; $i++) { unset($_SESSION['prava_'.$i]); } $prava = mysqli_query($db, ("SELECT * FROM admin_prava WHERE uzivatel_id = $_SESSION[UserId]")); while($p = mysqli_fetch_array($prava)) { $_SESSION['prava_'.$p['modul_id']] = 1; } } Netušíte prosím kde by mohl být zakopaný pes? Už si doopravdy nevím rady. Díky moc |
||
Keeehi Profil |
Do funkce si nepředáváš spojení na databázi. Proměnná $db je v kontextu funkce úplně jiná proměnná. Musíš si ji předat jako parametr funkce overit.
//include ... overit($db); A v definici funkce function overit($db){ ... |
||
Fury Profil * |
#3 · Zasláno: 3. 3. 2016, 15:57:14
Ah, jsem kokot :).
Díky! |
||
Časová prodleva: 9 let
|
0