Upload fungující pod PHP5 – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Upload fungující pod PHP5 – PHP – Fórum – Programujte.comUpload fungující pod PHP5 – PHP – Fórum – Programujte.com

 

mike0070
Newbie
10. 6. 2008   #1
-
0
-

Ahoj, mám webové stránky, které jsou umístěné u poskytovatele C4. Ten má PHP5. Bohužel mi u něj nefunguje uploader. Přečetl jsem pár článků o tom, že se musí změnit příkaz copy() na move_uploaded_file, ale to nepomohlo. Můžete mi prosím někdo poradit co mám změnit v tomto skriptu, aby mi to fungovalo pod PHP5 ? Předem moc díky za pomoc.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<meta name="robots" content="noindex, nofollow">
<meta http-equiv="Pragma" content="no-cache">
<link rel="stylesheet" type="text/css" href="styl.css">
</head>
<body>
<div class="zaklad"></div>
<div class="uploadzprava">
<?php
if ($akce=="Upload") {
if ($soubor_type=="text/plain" or $soubor_type="text/html") {
if (copy($soubor,"data/$soubor_name")) {
print "Soubor $soubor_name o velikosti $soubor_size bajtů byl úspěšně nahrán na server<br>";

mail ("email@seznam.cz", "Upload souboru $soubor_name",
"Na server byl nahrán soubor - http://www.mojestranky.cz/uploader/data/$soubor_name\n",
"From:server@mojestranky.eu\nX-web:http://www.mojestranky.cz/");
}
else {
print "Soubor není požadovaného MIME type!<br>";
}
}
?>
<br>
<font face="Tahoma" size="2"><font color="#008000">Tvůj soubor je uložen</font>
<a href="http://www.mojestranky.cz/uploader/data/<?php echo $soubor_name; ?>" target="_blank"><font color="#FF0000">zde</font></a></font><br>
<br><b>Uploadovat další soubor?</b>
</div>
<div class="upload"><form ACTION="upload.php" METHOD="post" ENCTYPE="multipart/form-data">
<input TYPE="file" NAME="soubor" SIZE="15">
<p><input TYPE="submit" NAME="akce" VALUE="Upload"></p>
</form></div>
</body>
</html>
<?php
}
?>

Nahlásit jako SPAM
IP: 77.236.210.–
pawlik0
Grafoman
10. 6. 2008   #2
-
0
-

a je tam někde nějaká chybová hláška? máš v adresáři nastavená práva(chmod) na 777?

Nahlásit jako SPAM
IP: 195.113.87.–
Sa Nata A Na. Howgh
DragonBehemont0
Super člen
10. 6. 2008   #3
-
0
-

To mike007 : Nejsem si jist, ale vidím tam pár chyb... protože tuto funkci taky používám a mám PHP 5.2.5.

místo $soubor_type zkus dát $_FILES["soubor"]["mime_type"] (možná bude stačit $_FILES["soubor"]["type"] - nejsem si teďka jist), místo $soubor dej $_FILES["soubor"]["tmp_name"] a místo $soubor_name dej $_FILES["soubor"]["name"] ... to jsou jediné věci, které máš rozdílné... jinak mám ten skript podobný a funguje.

Nahlásit jako SPAM
IP: 194.138.39.–
Nemusíte vědět vše, stačí jen, když víte, kde to najít, a jak to použít. Naučíte se to právě tím používáním ;-)
toka0
Stálý člen
10. 6. 2008   #4
-
0
-

Na hostingu kde mas ten skript mas zrejme zakazane register_globals, takze to je jediny duvod, proc ti to nejde. Jestli to hosting podporuje, zkus vytvorit soubor .htaccess, pokud jeste nemas a vloz do neho nasledujici radek:

php_flag register_globals on
,
pokud ani to nepomuze, nemuzes si sam menit nastaveni register_globals a udelej to, co ti psal

DragonBehemont napsal:
To mike007 : Nejsem si jist, ale vidím tam pár chyb... protože tuto funkci taky používám a mám PHP 5.2.5.

místo $soubor_type zkus dát $_FILES["soubor"]["mime_type"] (možná bude stačit $_FILES["soubor"]["type"] - nejsem si teďka jist), místo $soubor dej $_FILES["soubor"]["tmp_name"] a místo $soubor_name dej $_FILES["soubor"]["name"] ... to jsou jediné věci, které máš rozdílné... jinak mám ten skript podobný a funguje.

Nahlásit jako SPAM
IP: 86.61.165.–
Tomáš Kavalek
mike0070
Newbie
10. 6. 2008   #5
-
0
-

pawlik : žádnou chybu to nehlásí, prostě se nic neděje. Složku mám nastavenou na 777

toka: Po zádání php_flag register globals on do .htaccess mi nejde celý web.

DragonBehemont:
Udělal jsem co si mi napsal a už se to snaží o upload, ale nastane chyba na řádku 15

Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /data/www/bastleni.eu/www.bastleni.eu/uploader/upload.php on line 15

Nevím jak vyřešit ty uvozovky, aby to bylo v pořádku. Prosím poraď.

na řádku 15 je toto :

if (copy($_FILES["soubor"]["tmp_name"],"data/$_FILES["soubor"]["name"]")) {

Jinak všem díky za pomoc. Vážím si toho.

Nahlásit jako SPAM
IP: 77.236.210.–
Phoenix0
Super člen
10. 6. 2008   #6
-
0
-

zkus tam dát něco takového

if (copy($_FILES["soubor"]["tmp_name"],"data/{$_FILES["soubor"]["name"]}")) { 

nebo
if (copy($_FILES["soubor"]["tmp_name"],"data/".$_FILES["soubor"]["name"])) { 


doufám že to pomůže,ale imho nejde psát pole do stringu jen tak (musí se tam dát ty složený závorky)

Nahlásit jako SPAM
IP: 85.70.88.–
DragonBehemont0
Super člen
10. 6. 2008   #7
-
0
-

Phoenix napsal:

if (copy($_FILES["soubor"]["tmp_name"],"data/".$_FILES["soubor"]["name"])) { 

když tam napíšeš tohle, mělo by to fungovat.

Nahlásit jako SPAM
IP: 213.194.252.–
Nemusíte vědět vše, stačí jen, když víte, kde to najít, a jak to použít. Naučíte se to právě tím používáním ;-)
mike0070
Newbie
10. 6. 2008   #8
-
0
-

Tak jsem to tam dal a je to v pohodě, ale zase to blbne na dalším řádku. Už se z toho potím až na zadku... :-((
Prosím pomoc. Dneska to musím rozchodit nebo mě klepne Pepka.

Mrkněte prosím kde to ještě nesedí a opravte. Pro vás to je hračka.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<meta name="robots" content="noindex, nofollow">
<meta http-equiv="Pragma" content="no-cache">
<link rel="stylesheet" type="text/css" href="styl.css">
</head>
<body>
<div class="zaklad"></div>
<div class="uploadzprava">
<?php
if ($akce=="Upload") {
if ($_FILES["soubor"]["mime_type"]=="text/plain" or $_FILES["soubor"]["mime_type"]="text/html") {
if (copy($_FILES["soubor"]["tmp_name"],"data/".$_FILES["soubor"]["name"])) {
print "Soubor $_FILES["soubor"]["name"] o velikosti $soubor_size bajtů byl úspěšně nahrán na server<br>";

mail ("mujmail@seznam.cz", "Upload souboru $_FILES["soubor"]["name"]",
"Na server byl nahrán soubor - http://www.mojestranka.cz/uploader/data/$_FILES["soubor"]["name"]\n",
"From:server@mojestranka.cz\nX-web:http://www.mojestranka.cz/");
}
else {
print "Soubor není požadovaného MIME type!<br>";
}
}
?>
<br>
<font face="Tahoma" size="2"><font color="#008000">Tvůj soubor je uložen</font>
<a href="http://www.mojestranka.cz/uploader/data/<?php echo $_FILES["soubor"]["name"]; ?>" target="_blank"><font color="#FF0000">zde</font></a></font><br>
<br><b>Uploadovat další soubor?</b>
</div>
<div class="upload"><form ACTION="upload.php" METHOD="post" ENCTYPE="multipart/form-data">
<input TYPE="file" NAME="soubor" SIZE="15">
<p><input TYPE="submit" NAME="akce" VALUE="Upload"></p>
</form></div>
</body>
</html>
<?php
}
?>


Díky moc.

Nahlásit jako SPAM
IP: 77.236.210.–
Phoenix0
Super člen
10. 6. 2008   #9
-
0
-

print "Soubor $_FILES["soubor"]["name"] o velikosti $soubor_size bajtů byl úspěšně nahrán na server<br>"; 

tam zkus dát taky něco jako $_FILES["soubor"]["size"]
jinak teda nevim co ti to píše za chybu takže tohle jen tipuju

Nahlásit jako SPAM
IP: 85.70.88.–
mike0070
Newbie
10. 6. 2008   #10
-
0
-

Píše to různý chyby, většinou problém s uvozovkama. Tohle jsem zkoušel a je to dobrý. Pak to hází chyby na dalších řádcích. Je to neverending problem.... Sedím u toho půl dne a už jsem z toho na prášky.

Nahlásit jako SPAM
IP: 77.236.210.–
toka0
Stálý člen
Nahlásit jako SPAM
IP: 86.61.165.–
Tomáš Kavalek
mike0070
Newbie
10. 6. 2008   #12
-
0
-

nakonec jsem si nechal inspirovat ZDE :http://programujte.com/index.php?akce=diskuze&kam=vlakno&tema=2078-upload-nefunguje-v-php5, kde se to už řešilo. Uvedený uploader funguje. Nastavil jsem si tam ještě, aby šlo uploadovat více druhů souborů a je to. Škoda jen, že jsem nerozchodil ten původní. Ten mi byl schopen napsat na email, že někdo něco uploadoval. Tento to neumí. Zkusím funkci mail() do něj nějak vložit.

Tak díky všem za pomoc.

Nahlásit jako SPAM
IP: 77.236.210.–
Tocimanko0
Grafoman
10. 6. 2008   #13
-
0
-

Ono sú to zrejme len nejaké drobné syntaktické chybičky ako bodkočiarky, zátvorky, úvodzovky a pod.

Nahlásit jako SPAM
IP: 195.91.86.–
mike0070
Newbie
10. 6. 2008   #14
-
0
-

No právě, ale kde...
Každopádně to už je jedno. Ten skript z příspěvku viz výše je fajn. Ještě do něj musím dostat to upozornění a je hotovo. Nechci nějaký složitý uploader. Jen je potřeba jednou za čas na server uložit excelovský dokument nebo fotky a na to není potřeba nic extra. S tím přechodem na php5 mě nadělali pěkných problémů :-(

Všem ještě jednou díky. Jste lidi na pravým místě!


EDIT : upozornění na email jsem vyřešil. Takže hotovo, vyřešeno :-)

Nahlásit jako SPAM
IP: 77.236.210.–
toka0
Stálý člen
10. 6. 2008   #15
-
0
-

Mel si tam problemy s uvozovkami, takhle by to melo uz jet:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<meta name="robots" content="noindex, nofollow">
<meta http-equiv="Pragma" content="no-cache">
<link rel="stylesheet" type="text/css" href="styl.css">
</head>
<body>
<div class="zaklad"></div>
<div class="uploadzprava">
<?php
if($_POST["akce"]=="Upload") {
if ($_FILES["soubor"]["mime_type"]=="text/plain" or $_FILES["soubor"]["mime_type"]="text/html") {
if (copy($_FILES["soubor"]["tmp_name"],"data/".$_FILES["soubor"]["name"])) {
print "Soubor " . $_FILES["soubor"]["name"] . " o velikosti " . $_FILES["soubor"]["size"] . " bajtů byl úspěšně nahrán na server<br>";

mail ("mujmail@seznam.cz", "Upload souboru " . $_FILES["soubor"]["name"],
"Na server byl nahrán soubor - http://www.mojestranka.cz/uploader/data/" . $_FILES["soubor"]["name"] . "\n",
"From:server@mojestranka.cz\nX-web:http://www.mojestranka.cz/");
}
else {
print "Soubor není požadovaného MIME type!<br>";
}
}
?>
<br>
<font face="Tahoma" size="2"><font color="#008000">Tvůj soubor je uložen</font>
<a href="http://www.mojestranka.cz/uploader/data/<?php echo $_FILES["soubor"]["name"]; ?>" target="_blank"><font color="#FF0000">zde</font></a></font><br>
<br><b>Uploadovat další soubor?</b>
</div>
<div class="upload"><form ACTION="upload.php" METHOD="post" ENCTYPE="multipart/form-data">
<input TYPE="file" NAME="soubor" SIZE="15">
<p><input TYPE="submit" NAME="akce" VALUE="Upload"></p>
</form></div>
</body>
</html>
<?php
}
?>

Nahlásit jako SPAM
IP: 86.61.165.–
Tomáš Kavalek
mike0070
Newbie
10. 6. 2008   #16
-
0
-

No na mou duši, funguje! A já nad tím sedím půl dne...
Moc děkuju.

Nahlásit jako SPAM
IP: 77.236.210.–
mike0070
Newbie
11. 6. 2008   #17
-
0
-

Ještě jedna otázka, ale nevím, zda mi s tím můžete pomoci. Zjistil jsem, že má poskytovatel C4 nastavený upload_max_filesize na 2Mb. Nevíte jestli existuje nějaký trik, jak zvětšit povolenou velikost pro uploadování souboru nebo jim tam budu muset napsat? Mají tam totiž napsáno, že se to dá navýšit, ale žádné info k tomu neposkytli. Stačilo by to zvednout na 10Mb. To co tam je nastavené teď je opravdu málo...

Nahlásit jako SPAM
IP: 77.236.210.–
toka0
Stálý člen
11. 6. 2008   #18
-
0
-

To mike007 : No predpokladam, ze tohle nepujde:

 .htaccess:

php_value upload_max_filesize 6M

Predtim jsi psal, ze mas problemy kdyz vytvoris .htaccess soubor. Takze jim zkus napsat a oni ti tu direktivu upravi primo v php.ini, jestli maji pro kazdeho zvlastni pravidla. Pokud by ani to neslo, da se to resit pres PHP a AJAX, jako ze odesilas soubor po castech, ktere jsou o neco mensi nez 2MB a na serveru je zase slozis, ale je to takova hodne divna francouzska hulka :D

Nahlásit jako SPAM
IP: 86.61.165.–
Tomáš Kavalek
mike0070
Newbie
11. 6. 2008   #19
-
0
-

.htaccess vytvořit lze a také ho používám, ale když tam do něj dám php_value upload_max_filesize 6M tak mi nefunguje web (chyba 500). Už jsem v kontaktu s poskytovatelem, tak mi to snad navýší.

EDIT : Tak mi to poskytovatel navýšil takto:

post_max_size = 30M
upload_max_filesize = 20M


S tím už se dá pracovat ;-)

Nahlásit jako SPAM
IP: 77.236.210.–
toka0
Stálý člen
11. 6. 2008   #20
-
0
-

To mike007 : Super, jinak super obsah webu, dobre jsem si pocetl.

Nahlásit jako SPAM
IP: 86.61.165.–
Tomáš Kavalek
mike0070
Newbie
11. 6. 2008   #21
-
0
-

toka : taky máš super web. Jen tak dál a díky za pomoc.

Nahlásit jako SPAM
IP: 62.209.192.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 23 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý