[ neki_deki @ 21.07.2012. 12:21 ] @
ne znam gde gresim, pokusavao sam svasta nesto nadjeno na ES-u i sire...

http://www.elitesecurity.org/t96073-0#1365274

dati primer sam probao.
fajl sam nazvao ul.html i uploadovao na server

forma za unos podataka:

Code:

<html>
<body>

<!-- enctype mora biti multipart form data, metod mora biti POST -->
<form enctype="multipart/form-data" action="ul.php" method="POST">
    <!-- MAX_FILE_SIZE mora biti pre FILE polja, i ovo ne radi na svim browserima -->
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    <!-- ime input file polja će biti key u $_FILES nizu -->
    FAJL: <input name="userfile" type="file" />
    <input type="submit" value="Send File" />
</form>

</body>
</html> 



zatim sam napravio fajl ul.php i takodje uploadovao na server

Code:

<?php
//određujemo folder
$uploaddir = './test/fajlovi/';
//formiramo celu putanju novog fajla
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo "$uploadfile";

echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
   echo "Fajl je uspešno uploadovan.\n";
} else {
   echo "Greška pri uploadu!\n";
}

echo 'Informacije o uploadu:';
print_r($_FILES);

print "</pre>";
?> 


i kao rezultat dobijam poruku o gresci

Code:

./test/fajlovi/Chacha.gif

Greška pri uploadu!
Informacije o uploadu:Array
(
    [userfile] => Array
        (
            [name] => Chacha.gif
            [type] => image/gif
            [tmp_name] => /chroot/tmp/phpofGGnM
            [error] => 0
            [size] => 13595
        )

)


ono sto me jos buni je i error=0. fajla nema na serveru. negde gresim, a ne znam gde.... pomozite molim vas.
[ Burgos @ 21.07.2012. 12:54 ] @
Dodaj ovo na vrh skripte:

Code:
error_reporting(E_ALL);
ini_set("display_errors", 1);


Imaš li dozvolu za pisanje u odredišnom folderu? Taj error je iz $_FILES niza, i nema veze sa move_uploaded_file funkcijom - vidiš da ti je fajl na serveru u tmp direktorijumu.
[ neki_deki @ 23.07.2012. 11:42 ] @
./test/fajlovi/Chacha.gif



Warning: move_uploaded_file(./test/fajlovi/Chacha.gif) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/test/ul.php on line 13



Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/chroot/tmp/php68QXFK' to './test/fajlovi/Chacha.gif' in /home/test/ul.php on line 13

Greška pri uploadu!
Informacije o uploadu:Array
(
[userfile] => Array
(
[name] => Chacha.gif
[type] => image/gif
[tmp_name] => /chroot/tmp/php68QXFK
[error] => 0
[size] => 13595
)

)


ovo mu dodje kao odgovor kad sam ubacio ono sto ste rekli... poslao sam pre nekoliko dana odgovor n ES ali nije stigao, mozda bi trebalo umesto racunarima da se bavim sadnjom kukuruza... [att_img] http://www.ratarstvo.info/wp-c...ds/2011/03/hibrid-kukuruza.jpg [att_img] :)

[Ovu poruku je menjao neki_deki dana 23.07.2012. u 19:38 GMT+1]
[ Burgos @ 23.07.2012. 21:51 ] @
Da li postoji direktorijum

/home/test/test/fajlovi

?
Obrati pažnju na test/test - zato što je u skripti ul.php tekući direktorijum ( ./ ) zapravo /home/test/

pa je onda

$uploaddir == /home/test/test/fajlovi
[ neki_deki @ 26.07.2012. 10:43 ] @
probao sam sve moguce kombinacije direktorijuma.... cak sam probao isto to na drugom serveru misleci da je zabranjen takav upload. postavite neki kod ako imate da na bilo koji nacin uploadujem sliku ili bilo koji fajl na server preko php-a da vidim sta bi sigurno radilo pa cu polako da nadogradjujem. ne vidim gde gresim... (verovatno je za mene kopanje kukuruza)

[ neki_deki @ 26.07.2012. 11:52 ] @
forma_unos.html izgleda ovako:

Code:
<form enctype="multipart/form-data" action="uploader.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="1200000" />
Odaberite fajl za upload: <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>


uploader.php izgleda ovako:

Code:
<? $target_path = "./fajlovi/";

echo "Direktorijum za snimanje fajlova je: $target_path <br>";
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']); 

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "Fajl ".  basename( $_FILES['uploadedfile']['name']). 
    " je uspešno uploadovan na server";
} else{
    echo "Došlo je do GREŠKE prilikom uploada!";
}
?>


radi podjednako i sa:
Code:
$target_path = "./fajlovi/";


i sa:
Code:
$target_path = "fajlovi/";



ps: ako ima neki programer koji se kao dopunskim poslom bavi uzgojem kukuruza, evo ja bih mogao da okopavam posto za bolje nisam...
[ plus_minus @ 26.07.2012. 13:46 ] @
neki_deki, kopiraj ovo i nalepi u neki prazan php fajl i pokreni preko servera taj fajl.

Code (php):


<?php
define("_FolderPath__", __DIR__);
         
          define("_imgDir__", _FolderPath__ .'/images/');
          define("_cssFilesDir__",_FolderPath__ .'/css/');
          define("_jsFilesDir__",_FolderPath__ .'/javascript/');
          define("_classesDir__",_FolderPath__ .'/classes/');
          define("_htmlDir__",_FolderPath__ .'/html/');
          define("_otherDir1",_FolderPath__ .'/_otherDir1/');
          define("_otherDir2",_FolderPath__ .'/_otherDir2/');
          define("_otherDir3",_FolderPath__ .'/_otherDir3/');
          define("_otherDir4",_FolderPath__ .'/_otherDir4/');
          define("_otherDir5",_FolderPath__ .'/_otherDir5/');
         
          echo '<html><body><pre>'.
          '<b>Root putanja, polazna tačka</b> » '. _FolderPath__ .''."\n".
          '<b>Slike</b> » '. _imgDir__ .''."\n".
          '<b>Css dir</b> » '. _cssFilesDir__ .''."\n".
          '<b>Js dir</b> » '. _jsFilesDir__."\n".
          '</pre></html></body>';
?>
 


Znači, caka je u tome da ovo ↓

Code (php):

<?php define("_FolderPath__", __DIR__); ?>
 


Leži u nekom fajlu u site ili subdomain root folderu, ukoliko koristiš poddomen.

I ti taj fajl treba da iščitaš, kako god se taj fajl zvao, kako god ga krstio.
Onda kada imaš definisanu _FolderPath__ root putanju, ostale kasnije možeš da definišeš i u drugoj skripti/fajlu.

Ovakve definisane putanje nisu spremne za korišćenje u frontendu, već se koriste samo za include; ili require;, za komplet file() arsenal, itd.


Code (php):

<?php

require_once _classesDir__ .'some_funcional_class.php';
include _htmlDir__ .'index.php';

?>
 


Tu gde je <img src="??" /> , nećeš moći da pozivaš skripte ili slike, već ćeš morati dodatno da rasparčaš "_FolderPath__" konstantu.

To može da se izvede sa ovim dole, npr..

Code (php):

<?php

$rLoc=explode('\\', _FolderPath__); $rLoc=end($rLoc);
define("frontEndRoot", substr($rLoc, strlen($rLoc)).'/');

# Definicija za folder gde su pdf fajlovi
define("_PDF__", frontEndRoot .'pdf/');

?>
 


I onda ...

Code (php):


$pdfFile[1] = '<a href="'. _PDF__ .'pdfDokument.pdf" title="Preuzmite Dokument">Pdf</a>';

 


Ili još bolje, dodaš sve fajlove koji mogu da popritrebaju kroz definicije kasnije..

Code (php):


define("pdfFile1Name", _PDF__ ."dokument.pdf");

# gde bi href izgledao ovako..

$pdfFile[1] = '<a href="'. pdfFile1Name .'" title="Preuzmite Dokument">Pdf</a>';

# ili

echo '<a href="'. pdfFile1Name .'" title="Preuzmite Dokument">Pdf</a>';

 


Nadam se da te nisam zbunio ali, sve u svemu, probaj da ovladaš za početak, malo bolje sa ovim.
Ako ne ide ni tu.. jer, ovo je u principu laganica, onda se bacaj na poljoprivredu.

Ovako definisane putanje, uvek gađaju tu gde treba, ukoliko se struktura sajta, raspored foldera i nazivi ne menjaju, bez obzira na hosting provajdera i njihov dir/customers/html/.
[ plus_minus @ 07.08.2012. 20:47 ] @
(Edit na prethodni post).

Malopre uvideh jedan propust povodom gornjeg primera za "rasparčavanje" to jest ekspodiranje _FolderPath__ konstante.
Dat primer hoće da radi lepo, međutim, samo u Windows okruženju, zbog kosih crtica.

U Linuxu, prethodni primer neće da šljaka.

Univerzalno rešenje postoji i ono bi trebalo ovako da izgleda.

Dakle, ne ovo ↓

Code (php):

<?php

$rLoc=explode('\\', _FolderPath__); $rLoc=end($rLoc);
define("frontEndRoot", substr($rLoc, strlen($rLoc)).'/');

......

?>
 



Već ovo ↓

Code (php):

<?php

$rLoc=explode('/', str_replace("\\", "/", _FolderPath__)); $rLoc=end($rLoc);
define("frontEndRoot", substr($rLoc, strlen($rLoc)).'/');

........

?>
 


Prethodni post je pisan u letu, tako da mi je promakla ta sitnica koju primetih, ne zamerite. :)