Autor | Zpráva | ||
---|---|---|---|
gardener Profil |
#1 · Zasláno: 15. 2. 2009, 23:15:55
Zdravím mám jednu otázku, netušíte někdo, proč by nemmohl fungovat tento script?
Všude kde jsem ho dříve použival fungoval bez problémů ale nyní se rozhodnul z neznámého důvodu nejít. Podle mě, je problém v cyklu, jelikož v prohlížeči se tváří, že stále probíhá, místo toho aby nabídnul export ke stažení.. Díky za každou radu.. <?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["surname"]; $obsah .= ","; $obsah .= $zaznam["password"]; $obsah .= ","; $obsah .= $zaznam["isadmin"]; $obsah .= "\r\n"; } endwhile; $soubor=fopen($data, "w"); fwrite($soubor,$obsah); fclose($soubor); ReadFile ($data); //unlink($data); ?> |
||
keeehi Profil |
#2 · Zasláno: 15. 2. 2009, 23:30:43
endwhile; tam nemá co dělat, pokud jsou tam {}. Nevím, zda je to tím.
|
||
gardener Profil |
#3 · Zasláno: 15. 2. 2009, 23:33:42
Bohužel, to na to nemá vliv...
|
||
AM_ Profil |
#4 · Zasláno: 16. 2. 2009, 10:11:36
Zkus to prokrokovat debuggerem.
|
||
ninja Profil |
#5 · Zasláno: 16. 2. 2009, 10:23:54
gardener:
while ($zaznam=MySQL_Fetch_Array($vysledek)) { $obsah .= $zaznam["surname"]; $obsah .= ","; $obsah .= $zaznam["password"]; $obsah .= ","; $obsah .= $zaznam["isadmin"]; $obsah .= "\r\n"; } Na 1. radku odazana dvojtecka na konci, na poslednim "endwhile;". Jak vypada na konci cyklu promena $obsah? |
||
gardener Profil |
#6 · Zasláno: 16. 2. 2009, 19:25:33
Dvojtečku jsem odstranil..
Nyní vypadá celý skript takto ale se stejným výsledkem: <?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); ?> |
||
AM_ Profil |
#7 · Zasláno: 16. 2. 2009, 19:34:11
Říkáš tedy, že to končí v nekonečné smyčce? Provedl jsi nějaké testy (spustit jen část skriptu, vypsat klíčové proměnné, zkrátka zjistit, na čem to visí)?
|
||
DJ Miky Profil |
#8 · Zasláno: 16. 2. 2009, 19:34:58
Máš práva k zápisu do souboru export.csv?
Jinak pokud ten soubor nepotřebuješ ukládat na FTP a jen ho nabídnout uživateli ke stažení, tak místo posledních pěti řádků dej: echo $obsah; |
||
gardener Profil |
#9 · Zasláno: 16. 2. 2009, 20:42:19
Zkousel jsem vypsat hlasickeho HTML vystupu pole hodnot fetch_array to proslo, prave proto mi to vrta hlavou..
Prava k zapisu i cteni mam, poustim to na localhostu. |
||
gardener Profil |
#10 · Zasláno: 16. 2. 2009, 20:43:47
Zkousel jsem vypsat do hlasickeho HTML vystupu pole hodnot fetch_array to proslo, prave proto mi to vrta hlavou..
Prava k zapisu i cteni mam, poustim to na localhostu. |
||
gardener Profil |
#11 · Zasláno: 16. 2. 2009, 20:53:32
Tak změna zkusil jsem, tak jak poradil DJ Miky tj. vypsaní pomocí echo a ono to funguje, to by ale svědčilo o tom, že byl problém s vytvořením soboru..nedokáži si ale vysvětlit proč, když v jiném projektu, ten samý skript funguje korektně...
V htacces také problém není, tak vážně nevím. Nicméně problém je pryč, i když nevyjasněn... |
||
Časová prodleva: 15 let
|
0