Autor | Zpráva | ||
---|---|---|---|
gardener Profil |
#1 · Zasláno: 19. 2. 2009, 13:00:25
Zdravím
Ve skriptu pr download seznamu v CSV z DB potřebuji ověřovat hodnotu session, aby skript nemohl úspěšne provést kdokoliv. Problém ale nastvává ve chvíli, kdy použiji ověření dříve než hlavičky, poté dostanu hlášku ve smyslu "Nemůžete modifikovat hlavičky po odeslání na vstup..etc" Jak by se to tedy dalo vyřešit abych mohl přímo ve skriptu ověřovat session a zároveň mohl použít hlavičky pro download vygenerovaného souboru? Díky za každou radu. V současnosti skript vypadá takto: <?php //initialize the session session_start(); if (($_SESSION['prihlasen'] != 1)) { $id=session_id(); echo("$id"); die("Neplatne prihlaseni-vaše IP adresa byla zaznamenána do logovacího protokolu"); } ?> <?php header("Content-Description: File Transfer"); header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=\"$data\""); require_once("./db_connect.php"); //including db_connect $data="export.csv";//Path for save export //mysql_real_escape_string($data); $vysledek = mysql_query ("SELECT * FROM users"); while ($zaznam=MySQL_Fetch_Array($vysledek)) { $obsah .= $zaznam["id"]; $obsah .= ","; $obsah .= $zaznam["surname"]; $obsah .= ","; $obsah .= $zaznam["password"]; $obsah .= ","; $obsah .= $zaznam["isadmin"]; $obsah .= ","; $obsah .= $zaznam["lastvisit"]; $obsah .= "\r\n"; } $soubor=fopen($data, "w"); fwrite($soubor,$obsah); fclose($soubor); ReadFile ($data); //unlink($data); ?> |
||
ninja Profil |
#2 · Zasláno: 19. 2. 2009, 13:19:17
Session pred header nevadi, zato jsou problem prazdne znaky na radce 12 vaseho kodu.
|
||
gardener Profil |
#3 · Zasláno: 19. 2. 2009, 14:30:55
Díky, vůbec jsem netušil, že je to bráno jako výstup, myslel jsem, že to PHP interpreter prostě přeskočí..
|
||
SwimX Profil |
#4 · Zasláno: 19. 2. 2009, 14:38:15
gardener
„myslel jsem, že to PHP interpreter prostě přeskočí..“ PHP interpret by to asi přeskočil, stejně jako na řádku 10, ale todle už není v php skriptu - to už je html takže je to vlastně mezera -> výstup |
||
Časová prodleva: 15 let
|
0