Autor | Zpráva | ||
---|---|---|---|
gardener Profil |
#1 · Zasláno: 9. 3. 2009, 01:53:49
Zdravím provádím import dat z CSV do MySQL pomocí LOAD data IN FILE..na localhostu běží bez problémů ale na hostingu hlásí warning a neprovede se.
Tak by mě zajímalo, jestli to je řešit s hostingem, nebo jestli přepsat kód. Viz: Warning: move_uploaded_file(seznam_leciv.csv) [function.move-uploaded-file]: failed to open stream: Permission denied in /www/doc/www.adresa.cz/www/confisio_alfa/admin/nahraj_seznam.php on line 21 Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/www/tmp/phpt3DdIt' to 'seznam_leciv.csv' in /www/doc/www.adresa.cz/www/confisio_alfa/admin/nahraj_seznam.php on line 21 Díky za každou radu |
||
Majkl578 Profil |
#2 · Zasláno: 9. 3. 2009, 02:19:34
problem s opravnenimi
|
||
gardener Profil |
#3 · Zasláno: 10. 3. 2009, 02:08:04
No ale když jsem je nastavil pro celý adresář na 777
Tak sice jsem se hlášky zbavil ale upload neproběhne v tomto místě nastane chyba: //$soubor=$_SERVER["SCRIPT_FILENAME"]."/".$soubor_nazev; $soubor = mysql_real_escape_string(dirname(__FILE__) . '\\' . $soubor_nazev); //echo($soubor); Is here because i needed known absolute path for imported file $vlozeni = mysql_unbuffered_query ("LOAD DATA INFILE '".$soubor."' INTO TABLE products FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n' (name,medic_form,size_pack,stock_price,orc_price,vzp_price) ;"); if (!$vlozeni) { //mysql_error($vlozeni); die("<h4 class='blue'>Vlozeni se nepodařilo, zkontrolujte prosím validitu formátu vstupních dat\n\r</h4>"); } A přitom na localhostu proběhne vše bez problémů? |
||
Majkl578 Profil |
#4 · Zasláno: 10. 3. 2009, 03:36:46
neco mi rika, ze ten kod, co jsi sem ted dal nepatri k te chybe. ta chyba souvisi s uploadem souboru na web a nedostatkem opravneni pro jeho presun. to v [#3] nikde nevidim, takze tezko radit.
|
||
gardener Profil |
#5 · Zasláno: 10. 3. 2009, 09:07:07
Já se právě obávávám, že by mohla být nějaká zákeřnost v LOAD DATA INFILE.
Když si nechám vypsat Mysql_error Tak dostanu tohle: Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in /data/web/virtuals/viralaction.cz/www/confisio-alfa/admin/skript.php on line 39 Warning: mysql_errno(): supplied argument is not a valid MySQL-Link resource in /data/web/virtuals/viralaction.cz/www/confisio-alfa/admin/skript.php on line 40 A do adresáře, ve kterém je skript je nastaven CHMOD na 777 Tak mě jedině napadá, když se to import ukládá do dočasného adresáře, tak jestli nemůže být problém s přístupem tam? |
||
Majkl578 Profil |
#6 · Zasláno: 10. 3. 2009, 14:32:52
a na radku 21 je ta funkce mysql_unbuffered_query?
zkus tedy udelat toto: $vlozeni = mysql_unbuffered_query(....) OR die(mysql_error()); jinak presun souboru Z tmp adresare by problem byt nemel, ten by mel mit prava 0777. |
||
gardener Profil |
#7 · Zasláno: 10. 3. 2009, 14:51:59
Ne, na řádku 21 je:
if (move_uploaded_file($_FILES['data']['tmp_name'],$soubor_nazev)) { include_once ("../db_connect.php"); $smazat_tabulku = mysql_query("TRUNCATE TABLE products"); if (!$smazat_tabulku) { die("Přepsání tabulky se nezdařilo, zkontrolujte prosím validitu formátu vstupních dat"); } Ale zvláštní je, že mi to nyní vrací chybu na řádcích 39 a 40. |
||
gardener Profil |
#8 · Zasláno: 10. 3. 2009, 15:03:19
Zvláštní je že když použiji normální mysql_query, tak se mi vypíše hláška
Access denied for user 'viralaction_cz'@'%' (using password: YES) Což ale nedává smysl, jelikož například login ověřuji taky v DB a tam se připojí. Jinak se připojuji jenom zadáním IP mysql serveru. |
||
Majkl578 Profil |
#9 · Zasláno: 10. 3. 2009, 15:14:37
21 = move_uploaded_file, takze predtim nedostatek prav pro presun
a na 39 a 40 je co? ten dotaz? access denied znamena zakazany pristup pri pripojeni k mysql IP serveru? localhost nejde? |
||
gardener Profil |
#10 · Zasláno: 10. 3. 2009, 16:55:28
Localhost jede bez problemů.
No možná kdybych zadal klasickou adresu místo IP, jelikož když dám IP do browseru, tak se také nic nzobrazí. Na 39 a 40 je ověření správnosti SQL dotazu, takže pokud neprojde vypíše tuto hlášku. mysql_error($vlozeni); mysql_errno($vlozeni); atd.. |
||
Majkl578 Profil |
#11 · Zasláno: 10. 3. 2009, 17:45:55
gardener
[#10] precti si manual tech 2 funkci, ten parametr neni identifikator dotazu, ale spojeni mysql. navic je volitelny, idealne ho tam vubec nedavej. |
||
gardener Profil |
#12 · Zasláno: 10. 3. 2009, 17:59:40
Máš pravdu, je volitelný, nedošlo mi to.
Nicméně stále acces denied.. Ještě mě napadá, nempže to být tím, že při prvním připojení vytvářím připojení perzistentní? |
||
Časová prodleva: 15 let
|
0