Autor Zpráva
johnl
Profil
Dobrý den, zatím jsem svůj RS používal jen na php4 ale teď to zkouším na php5 a mám hned několik chyb. Mám uploader:
<?   
if (is_uploaded_file($soubor))://pokud jiz byl proveden upload   
$cesta="../upload/"; //nami definovana cesta   
if (move_uploaded_file ($soubor, $cesta.$soubor_name)): //presunuti souboru do naseho adresare   
echo "Soubor <a href='../upload/$soubor_name'>$soubor_name</a> o velikosti $soubor_size bajtů byl úspěšně nahrán na server";  
else:   
echo "Při nahrávání souboru došlo k chybě!"; //oznameni chyby   
endif;   
endif;   
// formular pro upload   
echo '<table><FORM action="upload.php" method="post" enctype="multipart/form-data">';   
echo '<tr><th width="50px">Soubor:</th><td><INPUT type="file" name="soubor"></td></tr>';   
echo '<BR>';   
echo '<tr><th width="50px">Funkce:</th><td><INPUT type="submit" value="Nahrát"></td></tr></FORM></table>';   
?>  
<br><br>
Soubory na serveru:
<br>

<span style="color:#999;">Kliknutím na X soubor smažete!</span><br>
<?php
$slozka = dir("../upload");
while($soubor=$slozka->read()) {
  if ($soubor=="." || $soubor=="..") continue;
  echo "<a href='../upload/$soubor'>$soubor</a> &nbsp;&nbsp;&nbsp;<a href='upload.php?ukaz=delete&id=$soubor' style='color:red;'>X</a> "; // odkaz na soubor
  echo "<br>"; // br ;-)

}
$slozka->close();
?>
ale když nahraju nějaký soubor vypíše mi to chyby:
Warning: move_uploaded_file(../upload/avatar.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/free/ic.cz/j/john7/root/www/cls/upload.php on line 36

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpJr7g3u' to '../upload/avatar.jpg' in /home/free/ic.cz/j/john7/root/www/cls/upload.php on line 36
Na řádku 36 je to
if (move_uploaded_file ($soubor, $cesta.$soubor_name)): //presunuti souboru do naseho adresare 


A ještě mám tento kód pro editaci:
<?php
$text = str_replace("/>", ">", $text);

if($_GET[edit] && file_exists($_GET[edit]))
{
    $file   = $_GET[edit];
    $soubor = fopen($file, "a+");
    
if($_POST[akce] == "Editovat" && $_GET[edit])
{
    $_POST[text] = stripslashes($_POST[text]);
    $soubor = fopen($file, "w");
    fwrite($soubor, $_POST[text]);
    fclose($soubor);
    $zpr = "<strong style='color:#ff00ff;'>EDITOVÁNO!</strong>";
}
    $handle = fopen($file, "r");
    $contents = fread($handle, filesize($file));
    $contents = stripslashes($contents);
    fclose($handle);
    
echo '
<p>Soubor:&nbsp;<strong>'.$_GET[edit].'</strong></p>'.$zpr.'
<form method="post">
<table>
<tr><th width="50px">Text:</th><td>
<textarea id="text" name="text" style="width:400px; height: 250px;" wrap="off">'.htmlspecialchars($contents).'</textarea><br>
</td></tr>
<tr><th width="50px">Funkce:</th><td>
<input type="submit" name="akce" value="Editovat">
</td></tr>
</form>

';
}
?> 
Tam je tato chyba: Warning: fopen(data/page/index.inc) [function.fopen]: failed to open stream: Permission denied in /home/free/ic.cz/j/john7/root/www/cls/edit.php on line 57 a na řákdku 57 je
 $soubor = fopen($file, "a+");
Jak mám tyto chyby opravit?
tiso
Profil
johnl: tie chyby nie sú spôsobené verziou PHP ale nedostatočnými právami na prácu s adresármi/súbormi
johnl
Profil
Aha, no možná to bude spíš serverem když na wz se práva nastavují automaticky a na ic už ne... Co mám teda udělat nastavit složkám a souborům práva 777 nebo něco jiného?
Mastodont
Profil
$cesta="../upload/";

Ty dvě tečky tě posouvají do složky, kam už nesmíš. Ten soubor upload.php vkládáš přes include, ne?
johnl
Profil
Mastodont:
No, ona je ta složka o úroveň níž, ale na wz mi to fungovalo v pořádku.. A přes include to není..

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: