| 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: 10 let
|
|||
0