Autor Zpráva
gardener
Profil
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
endwhile; tam nemá co dělat, pokud jsou tam {}. Nevím, zda je to tím.
gardener
Profil
Bohužel, to na to nemá vliv...
AM_
Profil
Zkus to prokrokovat debuggerem.
ninja
Profil
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
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
Ří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
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;
I kdyby ne, tak to zkus, jestli se ten soubor stáhne → jestli není problém v tom zápisu.
gardener
Profil
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
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
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...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: