Autor Zpráva
gardener
Profil
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
problem s opravnenimi
gardener
Profil
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
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
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
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
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
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
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
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
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
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í?

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: