POMOC S PHP

Programovacie jazyky, rady, poradňa...
error17
Amateur
Amateur
Príspevky: 18
Registrovaný: 07 jan 2010, 22:12

POMOC S PHP

Príspevok od používateľa error17 »

zdravim poterbujem pomoc s php kodom, chcem aby mi upload nahraval subory do zlozky, ktoru si vyberiem v select vybere, dufam ze mi niekto s tymto poradi:-)

Kód: Vybrať všetko

SELECT

<select name="subor">
<option value="video">videa</option>
<option value="foto">fotky</option>
</select>


<FORM method="post" action="upload.php" enctype="multipart/form-data">
<INPUT name="soubor" type="file">
<INPUT type="submit" value="OK">
<INPUT type="hidden" name="odeslano" value="ano">
</FORM>

PHP

<?
 if($odeslano=="ano"):
  move_uploaded_file($soubor,"soubory/".$soubor_name); // Překopírujeme soubor do zadaného umístění
  echo "Původní název souboru: ".$soubor_name."<br>";
  echo "Velikost souboru: ".$soubor_size."B<br>";
 endif;
 ?>
Ovecka
Darca
Darca
Používateľov profilový obrázok
Príspevky: 1227
Registrovaný: 25 aug 2005, 0:57

Príspevok od používateľa Ovecka »

okrem ineho si zmen $odeslano na $_POST[odeslano]
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8224
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Príspevok od používateľa harrison314 »

zmen v selecte memo zo subor na kam_ulozit

Kód: Vybrať všetko

if( $odeslano=="ano" && is_uploaded_file($_FILES['soubor']['tmp_name']) )
{

switch($kam_ulozit)
{
case "video": copy($_FILES['soubor']['tmp_name'], "subory/video/".$_FILES['soubor']['name']);

case "fotky": copy($_FILES['soubor']['tmp_name'], "subory/fotky/".$_FILES['soubor']['name']);

default: die("chyba");
}
  echo "Původní název souboru: ".$_FILES['soubor']['tmp_name']."<br>";
  echo "Velikost souboru: ".$_FILES['soubor']['size']."B<br>"; 
}


}
else
die("Chyba!");


nerucim ze ti to pojde na prvy sup lebo som to pisal z hlavy , a este nezabudny zmenit pristupve prava do priecinkou kam to budes ukladat
error17
Amateur
Amateur
Príspevky: 18
Registrovaný: 07 jan 2010, 22:12

Re:

Príspevok od používateľa error17 »

ahoj dakujem uz to skoro ide, ale mam este jeden problem v tomto kode, ked nahravam do prvej zlozky subor tak ho nahra aj do druhej a tretej, ked nahravam do druhej tak ho nahra aj do tretej, a ked do poslednej tak len v tomto tretom pripade mi to funguje presne tak ako by som chcel...
kod vypada asi takto

Kód: Vybrať všetko

<FORM method="post" action="upload.php" enctype="multipart/form-data">
<select name="kam_ulozit">
<option value="a">videa</option>
<option value="b">fotky</option>
<option value="c">mp3ky</option>
</select>
<INPUT name="soubor" type="file">
<INPUT type="submit" value="OK">
<INPUT type="hidden" name="odeslano" value="ano">
</FORM>

<?php
if( $odeslano=="ano" && is_uploaded_file($_FILES['soubor']['tmp_name']) )
{

switch($kam_ulozit)
{
case "a": copy($_FILES['soubor']['tmp_name'], "a/".$_FILES['soubor']['name']);

case "b": copy($_FILES['soubor']['tmp_name'], "b/".$_FILES['soubor']['name']);

case "c": copy($_FILES['soubor']['tmp_name'], "c/".$_FILES['soubor']['name']);

default: die("chyba");
}
  echo "Původní název souboru: ".$_FILES['soubor']['tmp_name']."<br>";
  echo "Velikost souboru: ".$_FILES['soubor']['size']."B<br>";
}

else
die("Chyba!");
?>
Mmartin
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2786
Registrovaný: 07 feb 2009, 12:49
Bydlisko: Bratislava

Re: POMOC S PHP

Príspevok od používateľa Mmartin »

switch($kam_ulozit)

a) pouzivas register globals; nepouzivaj
b) nadefinuj :p
error17
Amateur
Amateur
Príspevky: 18
Registrovaný: 07 jan 2010, 22:12

Re: POMOC S PHP

Príspevok od používateľa error17 »

mozes mi prosim ta poradit ako inak to spravim??
juho
Star
Star
Používateľov profilový obrázok
Príspevky: 551
Registrovaný: 11 máj 2007, 21:16

Re: POMOC S PHP

Príspevok od používateľa juho »

error17 napísal:mozes mi prosim ta poradit ako inak to spravim??
no co myslis asi pozri si syntax switchu je to

Kód: Vybrať všetko

case "hodnota premennej": prikazy; break;
ten case ti zarucuje nasmerovanie na prislusne miesto v kode ten break ti zaruci ze potom sa uz nic viac zo switchu nevykona
Mmartin
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2786
Registrovaný: 07 feb 2009, 12:49
Bydlisko: Bratislava

Re: POMOC S PHP

Príspevok od používateľa Mmartin »

Skus toto

Kód: Vybrať všetko

<FORM method="post" action="upload.php" enctype="multipart/form-data">
<select name="kam_ulozit">
<option value="a">videa</option>
<option value="b">fotky</option>
<option value="c">mp3ky</option>
</select>
<INPUT name="soubor" type="file">
<INPUT type="submit" value="OK">
<INPUT type="hidden" name="odeslano" value="ano">
</FORM>

<?php
if( $odeslano=="ano" && is_uploaded_file($_FILES['soubor']['tmp_name']) )
{
$kam_ulozit=$_POST['kam_ulozit'];
switch($kam_ulozit)
{
case "a": copy($_FILES['soubor']['tmp_name'], "a/".$_FILES['soubor']['name']); break;

case "b": copy($_FILES['soubor']['tmp_name'], "b/".$_FILES['soubor']['name']); break;

case "c": copy($_FILES['soubor']['tmp_name'], "c/".$_FILES['soubor']['name']); break;

default: die("chyba");
}
  echo "Původní název souboru: ".$_FILES['soubor']['tmp_name']."<br>";
  echo "Velikost souboru: ".$_FILES['soubor']['size']."B<br>";
}

else
die("Chyba!");
?>
Malo by ti to ist...
error17
Amateur
Amateur
Príspevky: 18
Registrovaný: 07 jan 2010, 22:12

Re: POMOC S PHP

Príspevok od používateľa error17 »

no tak na localhost mi to funguje tak isto ze ked dam prvu tak mi nahra aj a do druhej a tretej, ked dam druhu tak aj do tretej... ked som to dal na wz.cz alebo ic.cz tak mi vypisalo tuto chybu

Kód: Vybrať všetko

Warning: copy eval imap_open session_save_path() has been disabled for security reasons in /3w/wz.cz/e/error17/upload/upload.php on line 22
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: POMOC S PHP

Príspevok od používateľa audiotrack »

zaplať si hosting a nebudeš obmedzovaný zlými nastaveniami freehostingov
Mmartin
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2786
Registrovaný: 07 feb 2009, 12:49
Bydlisko: Bratislava

Re: POMOC S PHP

Príspevok od používateľa Mmartin »

Wz.cz a Ic.cz vyslo z mody ako makarena :roll:
Vrelo odporucam http://elbiahosting.sk/ , ich ceny su v porovnani s ich sluzbamy jedinecne
error17
Amateur
Amateur
Príspevky: 18
Registrovaný: 07 jan 2010, 22:12

Re: POMOC S PHP

Príspevok od používateľa error17 »

LoL:D thx ty makarena:D
ale aj tak mi to robi zlobu aj na localhost..
Mmartin
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2786
Registrovaný: 07 feb 2009, 12:49
Bydlisko: Bratislava

Re: POMOC S PHP

Príspevok od používateľa Mmartin »

zlobu? skus to nadefinovat, co presne to robi, a mozme ti este pomoct :)

//autoeditácia príspevku (15 Jan 2010, 6:25)
Aha, precital som hore :)
je to zaujimave, v mojom poslednom poste som pridal aj break;... Ak ti blbne switch, skus menej prehladnu metodu if :)

Kód: Vybrať všetko

<FORM method="post" action="upload.php" enctype="multipart/form-data">
<select name="kam_ulozit">
<option value="a">videa</option>
<option value="b">fotky</option>
<option value="c">mp3ky</option>
</select>
<INPUT name="soubor" type="file">
<INPUT type="submit" value="OK" name="submit">
</FORM>

<?php
$submit = $_POST["submit"];
if( isstet($submit) && is_uploaded_file($_FILES['soubor']['tmp_name']) )
{
$kam_ulozit=$_POST['kam_ulozit'];
if($kam_ulozit=="a"){copy($_FILES['soubor']['tmp_name'], "a/".$_FILES['soubor']['name']);}
if($kam_ulozit=="b"){copy($_FILES['soubor']['tmp_name'], "b/".$_FILES['soubor']['name']);}
if($kam_ulozit=="c"){copy($_FILES['soubor']['tmp_name'], "c/".$_FILES['soubor']['name']);}
default: die("chyba");

  echo "Původní název souboru: ".$_FILES['soubor']['tmp_name']."<br>";
  echo "Velikost souboru: ".$_FILES['soubor']['size']."B<br>";
}

else
die("Chyba!");
?>
Skus takto,+ riadok

Kód: Vybrať všetko

<INPUT type="hidden" name="odeslano" value="ano">
som vymazal, bol zbytocny, a v tom ife co kontroluje, ci je to odoslane som ti pridal isset($submit)
Ked ti to nepojde teraz, tak to snad dam na localhost a zacnem rozmyslat :-D
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8224
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: POMOC S PHP

Príspevok od používateľa harrison314 »

Ak to chces umiestnit na wz.cz, tak tam treba spravit malu upravu.
wz.cz ma zakazanu funkciu copy ( ked som robyl podobny skript tiez som mal podobny problem, ale to bolo pred vyse rokom ).
prepys copy na xcopy a toto pridaj na zaciatok

Kód: Vybrať všetko

function xcopy($filename1,$filenmae2)
{
$f1=fopen($filename1,"rb");
$f2=fopen($filename2,"wb");
while(! feof($f1)) fwrite($f2, fread($f1,1024));
fclose($f1);
fclose($f2);
}
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: POMOC S PHP

Príspevok od používateľa audiotrack »

to nie je šťastné riešenie, keď mu kážeš prepísať nejakú funkciu za svoju funkciu, mal by si ju spraviť ekvivalentne. Napríklad copy vracia bool a ak result funkcie niekde využíva, po tvojej zámene mu skript nebude už fungovať. Pridaj tam aspoň podmienky či sa podarilo vstupný súbor otvoriť, v každom cykle podmienku či sa podarilo fread z neho a tiež či sa podarilo fwrite. Pri akomkoľvek nesplnení podmienky vrátiť false, inak true. A osobne by som pridal ešte fflush, lebo pri veľkom súbore budeš mať dosť velký nárok na pamäť a to ti server nemusí dovoliť
error17
Amateur
Amateur
Príspevky: 18
Registrovaný: 07 jan 2010, 22:12

Re: POMOC S PHP

Príspevok od používateľa error17 »

kamos aj tvoj kod robi to iste,, nerozumiem preco mi to takto robi ze ked dam upload prveho vyberu v selecte tak mi nahra aj do druheho a tretieho,, a ked do druheho tak aj do tretieho,,

//autoeditácia príspevku (17 Jan 2010, 13:14)
kamos aj tvoj kod robi to iste,, nerozumiem preco mi to takto robi ze ked dam upload prveho vyberu v selecte tak mi nahra aj do druheho a tretieho,, a ked do druheho tak aj do tretieho,,
Mmartin
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2786
Registrovaný: 07 feb 2009, 12:49
Bydlisko: Bratislava

Re: POMOC S PHP

Príspevok od používateľa Mmartin »

za predpokladu, ze kamos som ja, a ze jeho kod je moj kod, tak to uz vazne nechapem
Kod som napisal spravne, teda, mal by byt spravny. Neviem, kde je chyba uz, skus pozriet php.ini, aj ked to s tym asi moc nema
Napísať odpoveď