Autor | Zpráva | ||
---|---|---|---|
Jardaklon Profil * |
#1 · Zasláno: 6. 3. 2012, 18:40:18
Hezký den,
vytvořil jsem stránky tím způsobem že do hlavní šablony importuji všechny ostatní sajty. Web mám rozdělený na veřejnou a neveřejnou část. Ty neveřejné importované scripty chráním tak že do nich includuji soubor zabezpeceni.php, který má následující obsah: <?php if(!isset( $_SESSION )) { session_start (); } if ($_SESSION['prihlasen']<>"ano") { header("location:index.php?akce=3"); die(); } include "konfigurace.php"; $dotaz = mysql_query("select * from uzivatele where id = '".$_SESSION['id']."'"); $overeni = mysql_num_rows($dotaz); $row = mysql_fetch_array($dotaz); ?> Problém je, že to header mi nechce fungovat. Chápu že před ním nesmí být textový výstup, tak za to asi může to že jsou ty stránky importované do šablony (ve které se zobrazují) a tam před tím asi nějaký výstup bude. Je ale nějaké řešení jak to obejít (tím nemyslím předělání celého webu)? Jde mi hlavně o funkčnost, vím že jsem začátečník a nemám vysoké nároky ;o). |
||
DarkMeni Profil |
Jestli je před headerem teda nějakej výstup, tak ho můžeš ukládat do vyrovnávací paměti, a vypsat ho až po odeslání všech nutných headerů.
<?php ob_start(); //skript šablony... //definice funkcí nebo metod ve třídě, includování jiných souborů... include('zabezbeceni.php'); $output_buffering_content = ob_get_contents(); ob_end_clean(); echo $output_buffering_content; /* Možná by i fungovalo místo těch tří řádků přek komentářem i něco jako echo ob_get_flush(); Ale nevim */ //pokračování skriptu... ? |
||
Jardaklon Profil * |
#3 · Zasláno: 6. 3. 2012, 19:39:00
Takže jestli jsem to dobře pochopil, musím zasáhnout do scriptu šablony?
Ošetřit to pouze v tom souboru zabezpeceni.php tedy nejde? |
||
DarkMeni Profil |
Teoreticky by možná šlo poslat html s přesměrováním, ale to ho nepřesměruje (jako to umí header) hned, ale až po načtení toho souboru, takže asi tak 0,5 - 3 vteřiny bude vidět buď prázdno nebo to co mu napíšeš.
die('<!DOCTYPE html><html><head><meta http-equiv="refresh" content="1;url=index.php?akce=3"></head><body></body></html>'); |
||
Jardaklon Profil * |
#5 · Zasláno: 6. 3. 2012, 23:33:16
DarkMeni:
No právě. U ostatních scriptů to mám nastavené tak, že se formulář pošle na čistou (nevnořenou) adresu souboru, header mi pak vrátí hlášku po provedení scriptu už do integrovaného souboru (např. form pošlu na registrace.php a header v registrace.php mě vrátí na index?page=...atd.). To funguje. Ale s tímhle si rady nevím. Vyzkouším tu radu s tím přesměrováním v html. Hlavně jde o to, aby když se to odhlásí (po vypršení času nebo při neoprávněném otevření stránky) nevyhodilo paskvilní zobrazení stránky nebo chybu. |
||
Časová prodleva: 12 let
|
0