Autor | Zpráva | ||
---|---|---|---|
Majkelju Profil |
Zdravím!
Používám wkhtmltopdf k převodu html do pdf. Využívám možnosti --header-html, takže k pdf připojuju ještě soubor, co vytvoří hlavičky. V hlavičce vypisuji různé údaje, jako např. datum a e-mail uživatele. A právě ten se mi nechce vypsat. Dotaz je správně, ověřoval jsem ho. A když do prohlížeče zadám přímo adresu hlavičkového souboru s parametrem, tak to ten mail vypisuje bez problémů. Je možné, že to nějak neumí přechroustat wkhtml, když si pak volá ten soubor? Tady náhled, jak vypisuju ten e-mail: <? require_once("../safe/autentizace.class.php"); session_start(); $auth = new autentizace($db); $result = $db->query(" SELECT `email` FROM `uzivatele` WHERE `id` = '". $auth->uid ."' LIMIT 1"); $row = $result->fetch_assoc(); echo '<div style="padding-bottom:50px; background:white;"> <div style="float:left; width:695px; text-align:center; font-size:20px;">DSP - Podskupiny včetně opisu atributů<br /> <span style="font-size:12px">Sestava 5.4</span> </div> <div style="float:left; width:180px; text-align:right;">Dne '. Date("d.m.Y").'<br />'.$row['email'].'</div></div>'; ?> |
||
Davex Profil |
#2 · Zasláno: 20. 8. 2012, 21:21:19
Při provedení základního troubleshootingu je v proměnných přesně co?
var_dump($result); var_dump($row); var_dump($db->error); // pokud používáš mysqli |
||
Majkelju Profil |
#3 · Zasláno: 21. 8. 2012, 08:01:43
object(mysqli_result)#3 (0) { } NULL string(0) "" Vypisuje to tohle...což nechápu... Když se stránka zavolá přímo, tak se to všechno natáhne v pohodě :/ |
||
Keeehi Profil |
#4 · Zasláno: 21. 8. 2012, 11:07:44
Řekl bych, že problém bude s tímto:
var_dump($auth->uid) |
||
Majkelju Profil |
#5 · Zasláno: 21. 8. 2012, 16:21:59
$db je definovaná v include('../_mysql.php');, tenhle řádek jsem tam zapomněl uvést :) var_dump($auth->uid) hlásí taktéž NULL. Tady je třída autentizace:
<?php define ('SESSIONNAME','session'); define ('SERVER','localhost'); define ('USERNAME','mojestranky'); define ('USERPASS','heslicko'); define ('DBNAME','dbs'); class autentizace { public $uid; public $demo; public $admin; public $username; private $fullname; private $group; private $db; private $externaldb; private $session; public function __construct ($dbase = NULL) { if ($dbase == NULL) { $this->db = new mysqli(SERVER,USERNAME,USERPASS,DBNAME); $this->db->set_charset('utf-8'); $this->externaldb = false; } else { $this->db = $dbase; $this->externaldb = true; } $this->session = session_id(); if (isset($_SESSION[SESSIONNAME])) { $this->zkontrolujSession(); //$this->zkontrolujPrava(); } } public function __destruct() { if ($this->db && !$this->externaldb) $this->db->close(); } public function availible($jmeno, $heslo){ if (!empty($jmeno) && !empty($heslo)) { $vysledek = $this->db->query("SELECT * FROM uzivatele WHERE email = '$jmeno' AND heslo = SHA1('$heslo')"); if ($vysledek->num_rows == 1) { return true; } else { return false; } } } public function login($jmeno, $heslo) { if (!empty($jmeno) && !empty($heslo)) { $vysledek = $this->db->query("SELECT * FROM uzivatele WHERE email = '$jmeno' AND heslo = SHA1('$heslo')"); if ($vysledek->num_rows == 1) { $radek = $vysledek->fetch_assoc(); $this->username = $radek['email']; $this->uid = $radek['id']; $this->demo = $radek['demo']; $this->admin = $radek['k_admin']; } else { $this->uid = false; $this->username = false; $this->fullname = false; $this->demo = false; $this->admin = false; } $this->nastavSession(); } } public function getSess() { return $this->session; } private function zkontrolujSession() { $user = $_SESSION[SESSIONNAME]; $sess = $this->session; if ($result = $this->db->query("SELECT * FROM uzivatele WHERE email = '$user' AND session = '$sess'")) { if ($result->num_rows == 1) { $radek = $result->fetch_assoc(); $this->uid = $radek['id']; $this->demo = $radek['demo']; $this->admin = $radek['k_admin']; $this->username = $radek['email']; $this->fullname = $radek['jmeno'].' '.$radek['prijmeni']; } else { $this->uid = false; $this->demo = false; $this->admin = false; $this->username = false; $this->fullname = false; } } if ($this->logged()) $this->nastavSession(); } private function nastavSession() { $_SESSION[SESSIONNAME] = $this->username; $this->db->query("UPDATE uzivatele SET session = '".$this->session ."', prihlaseni = NOW() WHERE email = '".$this->username ."'"); } public function logout() { $this->db->query("UPDATE uzivatele SET session = NULL, prihlaseni = NOW() WHERE email = '" . $this->username . "'"); $this->uid = false; $this->username = false; $this->fullname = false; $this->demo = false; $this->admin = false; unset ($_SESSION[SESSIONNAME]); unset($_SESSION["ER_login"]); unset($_SESSION["ER_id"]); unset($_SESSION['ER_jmeno']); unset($_SESSION['ER_prijmeni']); unset($_SESSION['ER_uziv_jmeno']); unset($_SESSION["vychozi_uroven"]); unset($_SESSION["vychozi_zakladna"]); unset($_SESSION["navstiveny_stavba"]); unset($_SESSION["oddelovac_tisicu"]); unset($_SESSION["vlastni_zakladna"]); unset($_SESSION["vlastni_zakladna_uroven"]); unset($_SESSION["ER_rezim"]); unset($_SESSION["ER_uzivatel"]); } public function logged() { if ($this->uid) return true; else return false; } public function isdemo() { if ($this->get_pristup_modul_stavby()) { return false; } else { return strtotime($this->demo) > strtotime(date("Y-m-d")) ? true : false; } } public function isadmin() { return $this->admin == null ? true : false; } public function getadmin() { return $this->admin; } public function get_prava_stavby($IdStavba, $operace) { if($operace == 'r' || $operace == 'w' || $operace == 'e' || $operace == 'd') { $result = $this->db->query(" SELECT * FROM `stavby_uzivatele` WHERE `k_stavby` = '$IdStavba' AND `k_uzivatele` = '". $this->uid ."'"); if ($result->num_rows == 1) { $radek = $result->fetch_assoc(); return $radek[$operace]; } } return false; } private function get_pristup_modul_stavby() { // vrati true pokud ma uzivatel prava pro pristup do mudulu staveb $result = $this->db->query(" SELECT * FROM `pravaUzivatelu` WHERE `k_uzivatele` = '". $this->uid ."' AND ( (`k_prava` = 5 AND `platnostDo` >= NOW()) OR (`k_prava` = 6 AND `platnostDo` >= NOW()) OR (`k_prava` = 7 AND `platnostDo` >= NOW()) OR (`k_prava` = 8 AND `platnostDo` >= NOW()) )"); return $result->num_rows ? true : false; } public function PlatnostDemoRezimu(){//86400 sec per day $dni = (int)(((strtotime($this->demo) - strtotime(date("Y-m-d")))+43190)/86400); return 'vyprší za ' . $dni . ' dní'; } } ?> |
||
Keeehi Profil |
#6 · Zasláno: 21. 8. 2012, 16:35:31
Majkelju:
„var_dump($auth->uid) hlásí taktéž NULL“ Což přece znamená neznámého/nepřihlášeného uživatele. V té identifikaci se využívá session, ta je většinou vázaná na cookies. Jen tipuji, trochu zapojte mozek a zpětně debugujte. var_dump je velký kamarád. Prostě kontrolujte jestli v těch proměnných je to co tam má být a pokud ne, tak odkud se to tam vzalo. |
||
Časová prodleva: 12 let
|
0