php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 26-01-2008, 11:28
Stonebreaker62
 Member
Links : Onlinestatus : Stonebreaker62 ist offline
Registriert seit: Apr 2005
Beiträge: 161
Stonebreaker62 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Datei Upload funktioniert am Rootserver nicht

Hallo ein Dateiupload funktioniert in meiner localhost/xampp Umgebung einwandfrei, auf dem Rootserver aber nicht.

Folgende Ausgaben:

=> Array ( [name] => Testdatei.txt [type] => text/plain [tmp_name] => /tmp/phprdorxb [error] => 0 [size] => 32 ) )
Upload-Datei: /tmp/phprdorxb
Fehlercode beim Upload: 0
Fehler:There is no error, the file uploaded with success

Es gibt zwar einen Fehlercode 0, die Datei wird aber nicht in das Verzeichnis geladen.

Zusatzinfo: in der php.ini sind uploads zugelassen, ich habe aber folgenden Eintrag gemacht:
upload_tmp_dir = /home/dokumente_


PHP-Code:
$dateiname $_SESSION['dateiname'] = trim($_FILES['datei']['name']);
$path $_SESSION['directory'] . $unternehmen "_MUSTERDOKUMENTE";

if (!
file_exists($path)) {
    
mkdir($path0755);
}
$pathfilename $path "/" $dateiname;

if (!
move_uploaded_file($_FILES['datei']['tmp_name'], $pathfilename)) {
    
print_r($_FILES);
    echo 
"<br>Upload-Datei: " $_FILES['datei']['tmp_name'];
    echo 
"<br>Fehlercode beim Upload: " $_FILES['datei']['error'];
    
$fehlercode = array (
        
=> "There is no error, the file uploaded with success",
        
=> "The uploaded file exceeds the upload_max_filesize directive in php.ini",
        
=> "The uploaded file exceeds the MAX_FILE_SIZE directive that was 
specified in the HTML form"
,
        
=> "The uploaded file was only partially uploaded",
        
=> "No file was uploaded",
        
=> "Missing a temporary folder"
    
);
    
$index $_FILES['datei']['error'];
    echo 
"<br>Fehler:" $fehlercode[$index];
} else {
    
$typ "m";
    
$musterdokname $musterdokument->speichernMusterdok($typ);
    
$musterdokument->anzeigeMusterdok($musterdokname$typ);


Geändert von Stonebreaker62 (26-01-2008 um 16:37 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 26-01-2008, 11:47
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

error_reporting(E_ALL);
ini_set('display_errors', 'on');
Mit Zitat antworten
  #3 (permalink)  
Alt 26-01-2008, 11:47
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Warum tust du sowas? /home ist eindeutig nur für Home-Dirs gedacht! /tmp ist extra für temporäre Zwischenablagerungen gemacht! Abgesehen davon, dass deine Umstellung offensichtlich nicht gegrifffen hat, wenn du dir das FILES-Array anschaust!
Mit Zitat antworten
  #4 (permalink)  
Alt 26-01-2008, 12:30
Stonebreaker62
 Member
Links : Onlinestatus : Stonebreaker62 ist offline
Registriert seit: Apr 2005
Beiträge: 161
Stonebreaker62 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Habe den Eintrag upload_tmp_dir in der php.ini wieder auskommentiert, die Empfehlung von onemorenerd

error_reporting(E_ALL);
ini_set('display_errors', 'on');

umgesetzt eine Ausgabe mit echo auf die Variable $pathfilename gesetzt und erhalte nun folgende Ausgaben:

Warning: mkdir(): Permission denied in /srv/www/vhosts/plan-compare-benchmark.com/httpdocs/musterdokneu1.php
on line 13
pathfilename: dokumente_DZW_MUSTERDOKUMENTE/Testdatei.txt
Warning: move_uploaded_file(): Unable to access dokumente_DZW_MUSTERDOKUMENTE/Testdatei.txt in /srv/www/vhosts/plan-compare-benchmark.com/httpdocs/
musterdokneu1.php on line 28
Array ( [datei] => Array ( [name] => Testdatei.txt [type] =>
text/plain [tmp_name] => /tmp/phpwfUgPG [error] => 0 [size] => 32 ) )
Upload-Datei: /tmp/phpwfUgPG
Fehlercode beim Upload: 0
Fehler:There is no error, the file uploaded with success

Geändert von Stonebreaker62 (26-01-2008 um 16:34 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 26-01-2008, 12:54
Stonebreaker62
 Member
Links : Onlinestatus : Stonebreaker62 ist offline
Registriert seit: Apr 2005
Beiträge: 161
Stonebreaker62 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Offensichtlich ist der mkdir das Problem. Da ich hier aber ein Verzeichnis unterhalb des DocumentRoot anlege, dürfte die 0755 doch kein Problem sein?
Mit Zitat antworten
  #6 (permalink)  
Alt 26-01-2008, 12:58
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Du machst ein mkdir mit Dateinamen? Steht zumindest in der Fehlermeldung...
Mit Zitat antworten
  #7 (permalink)  
Alt 26-01-2008, 13:08
Stonebreaker62
 Member
Links : Onlinestatus : Stonebreaker62 ist offline
Registriert seit: Apr 2005
Beiträge: 161
Stonebreaker62 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich denke nein. Habe die Variable $path ausgegeben und erhalte folgende Ausgaben:

Warning: mkdir(): Permission denied in /srv/www/vhosts/plan-compare-benchmark.com/httpdocs/dokumentneu1.php
on line 40
path: dokumente_DZW
pathfilename: dokumente_DZW/Testdatei.txt Warning: move_uploaded_file():
Unable to access dokumente_DZW/Testdatei.txt in
/srv/www/vhosts/plan-compare-benchmark.com/httpdocs/dokumentneu1.php on line 63
Array ( [datei] => Array ( [name] => Testdatei.txt [type] =>
text/plain [tmp_name] => /tmp/phpccaq4M [error] => 0 [size] => 32 ) )
Upload-Datei: /tmp/phpccaq4M
Fehlercode beim Upload: 0
Fehler:There is no error, the file uploaded with success

In $path steht folglich "dokumente_DZW" - das dürfte doch keine probleme bereiten?

Geändert von Stonebreaker62 (26-01-2008 um 16:35 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 26-01-2008, 14:48
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Na dann schau doch mal ob das Verzeichnis angelegt wird und auch unter welchem Benutzer und mit den richtigen Rechten und ob das übereinstimmt mit den Dingen unter denen der Webserver läuft, etc.~
Mit Zitat antworten
  #9 (permalink)  
Alt 26-01-2008, 15:29
Stonebreaker62
 Member
Links : Onlinestatus : Stonebreaker62 ist offline
Registriert seit: Apr 2005
Beiträge: 161
Stonebreaker62 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Nein, das Verzeichnis wird nicht angelegt. obwohl ich es unterhalb des DocumentRoot anlegen will. Habe auch schon mit open_basedir rumexperimentiert - kein Erfolg. Aber offensichtlich kann ich die Werte in der php.ini nicht überschreiben, weil irgendwo ein local Wert definiert ist (kann ihn in der httpd.conf nicht finden).

Habe nun mal versucht, die Dokumente im /tmp Verzeichnis abzulegen, das im basedir-Wert erlaubt ist. Das scheitert mit der Message

Warning: mkdir(): SAFE MODE Restriction in effect. The script whose uid is 10001 is not allowed to access /tmp owned by uid 0 in /srv/www/vhosts/plan-compare-benchmark.com/httpdocs/dokumentneu1.php on line 41
Mit Zitat antworten
  #10 (permalink)  
Alt 26-01-2008, 16:31
Stonebreaker62
 Member
Links : Onlinestatus : Stonebreaker62 ist offline
Registriert seit: Apr 2005
Beiträge: 161
Stonebreaker62 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Offensichtlich ist der safe mode der Hintergrund für das Problem. Obwohl ich einen rootserver habe ist der irgendwo gesetzt (nicht in der php.ini und auch nicht in der httpd.conf - wahrscheinlich in einem der vielen includes in der httpd.conf. Muss mich mal auf die Suche machen.

Ich gehe doch recht in der Annahme dass ein safe mode in einem Rootserver keinen besonderen Sinn macht?

Noch ne Frage: Ich will Dokumente irgendwo außerhalb des DocumentRoot in einem Verzeichnis ablegen. Wo sollte das sein, wenn nicht im /home Verzeichnis?
Mit Zitat antworten
  #11 (permalink)  
Alt 26-01-2008, 17:37
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Zitat:
Original geschrieben von Stonebreaker62
Noch ne Frage: Ich will Dokumente irgendwo außerhalb des DocumentRoot in einem Verzeichnis ablegen. Wo sollte das sein, wenn nicht im /home Verzeichnis?
/srv/www/vhosts/plan-compare-benchmark.com/private wäre ein guter Platz.
Mit Zitat antworten
  #12 (permalink)  
Alt 26-01-2008, 17:39
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Stonebreaker62
Ich gehe doch recht in der Annahme dass ein safe mode in einem Rootserver keinen besonderen Sinn macht?
Es gibt Momente wo das Sinn macht, aber da kann man besser den Webserver unter eingeschränkten Rechten laufen lassen... guck halt mal in Tutorials oder so

Zitat:
Noch ne Frage: Ich will Dokumente irgendwo außerhalb des DocumentRoot in einem Verzeichnis ablegen. Wo sollte das sein, wenn nicht im /home Verzeichnis?
Zum temporären Speichern in /tmp/ wie es auch schon gesagt wurde, und ansonsten halt irgendwo unterhalb vom Webroot, sofern man ran kommen soll, ansonsten halt irgendwie eine Ebene höher oder sowas ... da gibt es keine festen Richtlinien, mach halt wie es passt und sicher ist.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:54 Uhr.