Autor Zpráva
Shader
Profil
Ahoj, potřebuji poradit, mám upload a potřebuji nahrávat i na jiné servery, ty si vyberem v seznamu. Jenze nwm jak dal pac to pise ze nemam opravneni, poradite? Prikladam zdrojaky:

UPLOAD.PHP
<form method="post" action="index.php?page=upload-vysledek"
 name="upload"><input name="soubor" type="file"><br>
  <select name="server">
  <option value="www.server1.com">server1</option>
  <option value="www.server2.com">server2</option>
  <option value="www.server3.com">server3</option>
  </select>
  <br>
  <input name="Nahr&aacute;t!" value="Nahr&aacute;t!" type="submit"><br>
</form>


UPLOAD-VYSLEDEK.PHP
<?

if ($akce == "Nahrát!") {

  if ($soubor_type == "text/plain" or $soubor_type="text/html") {
    if (move_uploaded_file ($soubor, "$server/data/$soubor_name")) {
      print "<br><br>Soubor <b>$soubor_name</b> o velikosti <b>$soubor_size</b> bajtů
       byl úspěšně uploadnut na <b>$server!</b><BR><br>";
      echo "<b>Přímý odkaz:</b><br>";
      echo "<textarea readonly name='code2' style='width:550px;height:20px;font-size:11px;color:#999999;' onClick=\'javascript:copyit('codeform.code2');\'>http://$server/datar/$soubor_name</textarea><br><br>";
      echo "<b>Pro vložení do stránky:</b><br>";
      echo "<textarea readonly name='code2' style='width:550px;height:20px;font-size:11px;color:#999999;' onClick=\'javascript:copyit('codeform.code2');\'><div style='text-align: right;'><a href='http://$server/data/$soubor_name'>Stáhnou z našeho serveru</a></div>
</textarea><br><br>";
      echo "INFO";

      mail ("uplaodscript@testing.com", "Upload souboru $soubor_name",
       "Na $server byl nahrán soubor /data/$soubor_name\n",
       "From: system@testing.com\nX-web: http://www.testing.com/index.php?page=upload");
    }
    else {
      print "Při nahrávání souboru došlo k chybě!<BR>";
    }
  }
  else {
    print "Soubor není požadového MIME typu!<BR>";
  }
}

?>
TomášK
Profil
(move_uploaded_file ($soubor, "$server/data/$soubor_name")


Problém je na tomhle řádku. Pokud v $server je třeba 'www.server1.com' (druhá možnost je, že tam není nic, protože parametr je uložen jen v $_POST['server']), pak se vytvoří cesta 'www.server1.com/data/nazev_souboru.php', www.server1.com se interpretuje jako název adresáře, který tam není a hlásí to, že nemáš práva. IMHO funkce move_uploaded_file nedokáže přehrávat soubory z jednoho serveru na jiný. Jak se to řeší, nevím, ale zkusil bych hledat ssh nebo ftp.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0