DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   PHP (http://www.devprotalk.com/forumdisplay.php?f=9)
-   -   PHP upload & Unix (http://www.devprotalk.com/showthread.php?t=9003)

squirll 08. 08. 2010. 00:10

PHP upload & Unix
 
Ne znam gde ovu temu da stavim jer ne znam sta je problem... ako je na pogresnom mestu molim da se prebaci na pravo mesto

Uglavnom prema prici vlasnika sajta...problem se preko noci desio...

Sajt sadrzi 3-4 razlicite forme za upload fajlova... Koju god forrmu da koristis i kliknes na submit btn stranica se ucita ponovo (ko da opalish refresh F5)
E to obicno biva kad submit btn nije dobro postavljen ali u ovom slucaju jeste...(isti 100% isti kod radi na drugom serveru/sajtu)
Onda ja stavim jedanu prostu upload formu da proverim jos jedanput da nije do koda

Kôd:

<form enctype="multipart/form-data" action="uploader.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Choose a file to upload: <input name="uploadedfile" id="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>

i u php

Kôd:

<?php
echo 'Script Path: ' . $_SERVER['SCRIPT_NAME'] . '<br/>Absolute Path: ' . $_SERVER['SCRIPT_FILENAME'] . '<br/>';
class UploadException extends Exception
{
    public function __construct($code) {
        $message = $this->codeToMessage($code);
        parent::__construct($message, $code);
    }

    private function codeToMessage($code)
    {
        switch ($code) {
            case UPLOAD_ERR_INI_SIZE:
                $message = "The uploaded file exceeds the upload_max_filesize directive in php.ini";
                break;
            case UPLOAD_ERR_FORM_SIZE:
                $message = "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form";
                break;
            case UPLOAD_ERR_PARTIAL:
                $message = "The uploaded file was only partially uploaded";
                break;
            case UPLOAD_ERR_NO_FILE:
                $message = "No file was uploaded";
                break;
            case UPLOAD_ERR_NO_TMP_DIR:
                $message = "Missing a temporary folder";
                break;
            case UPLOAD_ERR_CANT_WRITE:
                $message = "Failed to write file to disk";
                break;
            case UPLOAD_ERR_EXTENSION:
                $message = "File upload stopped by extension";
                break;

            default:
                $message = "Unknown upload error";
                break;
        }
        return $message;
    }
}


$target_path = "/uploads/";

$target_path = $_FILES['uploadedfile']['name'];
echo $target_path;
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "The file ".  basename( $_FILES['uploadedfile']['name']).
    " has been uploaded";
} else{
    echo "There was an error uploading the file, please try again!";
    echo "<br/>";
  throw new UploadException($_FILES['file']['error']);
}

?>

Napominjem jos jedno ovo je samo kod za testiranje (nema security check iz razloga da bude sto prostije da mogu naci gde je problem)

Medjutim ni ovaj kod ne radi... Tj ne uploduje fajlove... Dobije default msg "Unknown upload error"
Citam po netu, kazu ljudi php.ini i parametri ...
Ja proverim a oni su sledeci
600MB (max_upload_filesize)
600MB (max_post_size)
safe_mode off
open_basedir off
max_execution_time 7200
max_input_time 7200
memory_limit 256mb
PHP Version 5.2.4
Apache Handler
Cini se ok ..

Temp direktorijumi imaju 777chmod i chown je za tog usera koji i treba tj za kojim php upravlja... znaci nije ni do premisija...
Mesta na hardu ima znaci nije ni to problem (preko 100gb praznog)

Ja ideja vise nemam...
Inace nece nikakva fajl da uploduje.. ni 35kb "velik" ni gif,jpg,mp3 ...nista nista nista...prazno...
Putanja /uploads/ je ok ..nije ni to problem....


Sta moze biti ? Vec 4 dana se sa ovim zezam i muka mi ga je...

vidak 08. 08. 2010. 00:28

prepisao si upload dir sa imenom fajla

$target_path = "/uploads/";
$target_path = $_FILES['uploadedfile']['name'];

squirll 08. 08. 2010. 00:38

greska to jeste..ali nije do toga..
$_FILES['uploadedfile']['tmp_name'] je prazan ...i svaki drugi $_FILES je prazan...
a ima ih najmanje 3 razlicita... koji su radili do pre koji dan

File_uploads is ON in php.ini

vidak 08. 08. 2010. 01:09

da nije uključen .htaccess sa RewriteBase pa da se ne vidi /tmp dir?

ceo problem se odvija na hosting?, localhost-u?

da li si probao još na nekoj mašini da vidiš šta se dešava i
da li nešto promenilo pre nego što se pojavio problem, npr novija verzija PHP-a ... ?

squirll 08. 08. 2010. 01:15

Rewrite Base nije ukljucen..
Problem je na dedicate serveru sa Plesk-om (om mi nesto "Smrdi")
Na drugim serverima/sajtovima isti taj kod radi ...
Dal je nesto menjano na serveru... U to nisam siguran... nisam ja sys admin tamo a admin je "malo jaci" .. php.ini je menjan al je radilo posle toga par dana...

ivanhoe 08. 08. 2010. 02:19

mozda je upaljen neki security modul za apache (suhosin i sl.), koji onda pravi neki problem... a mozda se samo apache zaglupeo, jesi probao da restartujes server?

vidak 08. 08. 2010. 02:34

Izlistaj /tmp dir. Ukoliko je prazan, ubaci neki fajl privremeno pa izlistaj iz PHP-a da vidiš da li mu imaš pristup. S' obzirom da je dedicated server ne bi trebalo da ti bude problem.

... i da li si siguran da je posle menjanja php.ini radio i upload?

squirll 08. 08. 2010. 11:38

Citat:

Originalno napisao ivanhoe (Napišite 87312)
mozda je upaljen neki security modul za apache (suhosin i sl.), koji onda pravi neki problem... a mozda se samo apache zaglupeo, jesi probao da restartujes server?

core.c
mod_log_config.c
mod_logio.c
prefork.c
http_core.c
mod_so.c
ovo od modula apache ima... apache je restartovan par puta...

Citat:

Originalno napisao vidak (Napišite 87314)
Izlistaj /tmp dir. Ukoliko je prazan, ubaci neki fajl privremeno pa izlistaj iz PHP-a da vidiš da li mu imaš pristup. S' obzirom da je dedicated server ne bi trebalo da ti bude problem.

... i da li si siguran da je posle menjanja php.ini radio i upload?

Scriptin /tmp ili php-ov?
A siguran sam da je radilo posle menjanja php.ini ...

3banchi 08. 08. 2010. 14:02

My one cent...

Nisam bas vican pfp-u ali sam slican prolem imao pre par godina. Danima sam nabadao i po smislu i na slepo i nasao sam negde na forumu da je Plesk na neki nacin radio rewrite open_basedir na "On".
To je valjda bio neki bug koji se resavao dodavanjem jedne linije koda i posle je sve stimalo. Evo ceo dan pretrazujem kako bi nasao to, ali bez uspeha.
Posto vidim da i ti sumnjas na plesk...mozda da obratis paznju na taj deo.

squirll 08. 08. 2010. 15:25

ja bi drage volje pretrazio ceo plesk ali ta verzija ima samo spanski!! a taj jezik je za mene "Spansko selo"...video sam i ja na netu da su ljudi imali problema sa Pleskom i konfiguracijama...pa zato na njega sumljam...
Preneo sam server adminu da pregleda servera...ja sam uradio sve sto mogu...
hvala svima ;)


Vreme je GMT +2. Trenutno vreme je 05:46.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.