Upload Script Fehler

Dennis0
Hallo,

ich möchte ein uploadscript basteln,aber irgendwas geht nicht, bin mir aber sicher das diese Zeile richtig ist.

Dies sind die Fehler:

[Tue Sep 15 13:33:35 2009] [error] [client ***] PHP Notice: Undefined index: clientdatei in /srv/www/vhosts/***/subdomains/dennis/httpdocs/upload.php on line 2
[Tue Sep 15 13:33:49 2009] [error] [client ****] File does not exist: /srv/www/vhosts/***/subdomains/dennis/httpdocs/favicon.ico
[Tue Sep 15 13:33:52 2009] [error] [client ****] File does not exist: /srv/www/vhosts/****/subdomains/dennis/httpdocs/favicon.ico
[Tue Sep 15 13:33:57 2009] [error] [client ****] PHP Warning: move_uploaded_file(): open_basedir restriction in effect. File(../srv/www/vhosts/****/subdomains/dennis/httpdocs/uploaded_files/power
panel.png) is not within the allowed path(s): (/srv/www/vhosts/****/subdomains/dennis/httpdocs:/tmp) in /srv/www/vhosts/****/subdomains/dennis/httpdocs/upload.php on line 5, referer: http://dennis.***/
[Tue Sep 15 13:33:58 2009] [error] [client ****] File does not exist: /srv/www/vhosts/****/subdomains/dennis/httpdocs/uploaded_files/powerpanel.p
ng, referer: http://dennis.****/upload.php

PHP Code:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:

<?php
if(is_uploaded_file($_FILES['clientdatei']['tmp_name']) and ($_FILES['clientdatei']['error']==0))
{
move_uploaded_file($_FILES['clientdatei']['tmp_name'],
                                          "../srv/www/vhosts/***/subdomains/dennis/httpdocs/uploaded_files/".$_FILES['clientdatei']['name']);
echo "Die Datei wurde erfolgreich hochgeladen!<br>\n";
echo "<b>NAme:</b> ",$_FILES['clientdatei']['name'],"<br>\n";
echo "<b>Dateigröße:</b> ",$_FILES['clientdatei']['size']," Bytes<br>\n";
echo "<b>Temporärer Name:</b> ",$_FILES['clientdatei']['tmp_name'],"<br>\n";
echo "<b>Dateityp:</b> ",$_FILES['clientdatei']['type'],"<br>\n";
echo "<a href=\"/uploaded_files/".$_FILES['clientdatei']['name']."\">Datei anzeigen</a>";
}
else
{
    echo "Die Datei konnte nicht hochgeladen werden";
}
?>

Bin Anfänger in Sachen PHP

Danke!

Gruß Dennis
Maniac_81
hab dein Script in BBCode gesetzt....

zu deinem Fehler:

PHP Warning: move_uploaded_file(): open_basedir restriction in effect. File(../srv/www/vhosts/****/subdomains/dennis/httpdocs/uploaded_files/power

panel.png) is not within the allowed path(s): (/srv/www/vhosts/****/subdomains/dennis/httpdocs:/tmp) in /srv/www/vhosts/****/subdomains/dennis/httpdocs/upload.php


bedeutet das du keinen zugriff auf das tmp verzeichniss hast.
Passe mal deine Pfade relativ von deinem httpdocs-verzeichniss an oder schau in der PHP.ini was open_basedir sagt.

http://de3.php.net/manual/de/features.fi...post-method.php
Dennis0
Was müsste ich bei open basedir einstellen? nur das ; weg oder noch etwas anderes? Wenn ich nur das ; wegmache klappt es nicht.

Der Pafd stimmt doch so? Ich bin im tmp Verzeichnis und gehe zurücka ufs root Verzeichnis und dann in den upload ordner?

Sieht bei mir bis jetzt so aus bei open basedir:

open_basedir =
Dizzy.w3
Hi,

PHP Notice: Undefined index: clientdatei in /srv/www/vhosts/***/subdomains/dennis/httpdocs/upload.php on line 2 bedeutet, dass er $_FILES['clientdatei'] nicht kennt.

Alle auf /tmp zugreifen zu lassen ist ein hohes Sicherheitsrisiko, schliesslich koennte so Haenschen auf Fraenzchens Daten zugreifen. geschockt
Fuer gewoehnlich gibt es entweder in user/ ein tmp-Verzeichnis oder in user/httpdocs/.

Da das Standard-Temp-Verzeichnis /tmp ist, nehme ich an, dass es sich um eine Fehlkonfiguration handelt, oder aber es gibt nur 1 Serverbenutzer, dann kann man open_basedir auch abaendern, weil es sowieso kein Fraenzchen gibt. Dass es aber leer ist, kann nicht sein, da es bei der Fehlermeldung Verzeichnisse enthaelt, du stoeberst also in der falschen Config, vermutlich gibt es in /etc/apache2 irgendwo vhost-Dateien, die du abaendern kannst.

Um dir zu helfen braeuchte ich mehr Informationen. - Die aber auch dein Provider haben sollte!

Vermutlich gilt hier http://root-und-kein-plan.ath.cx/
Dennis0
Hör bitte mit deinem "root kp" auf! Nur wiel ich micht nicht mit root auskenne und du schon? Ne, so nicht!

Aber wieso kennt er $_FILES['clientdatei'] nicht, habe ich doch überall stehen? Ich wüsste jetzt nicht was ichd a ändern soll muss.

Mein freund gehört der Server, wobei ich root Zugang habe und mein freund sich dadrum kümmert.

Habe Suse Linux 10.3 und Plesk 9.2
xundy
in der apache conf-datei für deine Domain müsste bei open_basedir nebem dem Pfad zu deinem Webverzeichnis auch noch tmp stehen, etwa so:

code:
1:
php_admin_value open_basedir "/var/www/web/kunde/:/tmp/"


Damit hat php Zugriff auf dein Webverzeichnis und eben auf tmp.

Das Problem ist bei "$_FILES['clientdatei']" das Du vorher nicht die Existens der Variablen prüfst, aber das wirft nur ein Warning im Apachelog aus, das Script würde trotzdem laufen.
Allerdings erst nachdem du deine open_basedir-Probleme beseitigt hast

mfg
Dennis0
Hat sich schon erledigt, war ein kleiner Fehler

nur ein "/" vergessen (ohne ")