| (Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI... |
Diskussion: PHP-Upload-Script-Problem im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Hallo, ich habe vor mir für meinen Heimserver ein kleines Uploadscript auf php-Basis einzurichten, doch leider komme ich im ...
![]() |
| | #1 (permalink) |
| Senior Member Registriert seit: 21.01.04 ![]() Likes: 0 | Anzeige Hallo, ich habe vor mir für meinen Heimserver ein kleines Uploadscript auf php-Basis einzurichten, doch leider komme ich im Moment nicht so recht weiter. Ich habe schon mehrere fertige Scripte runtergeladen, der Aufruf klappt auch noch ohne Probleme, ich sehe die Oberfläche und kann eine Datei zum Uploaden auswählen, doch wenn ich dann auf Upload klicke kommt nur die Fehlermeldung des jeweiligen Scripts, dass die Datei nicht hochgeladen werden konnte. Das Erstellen eines neuen Ordners über das Script klappt jedoch ohne Probleme. Alle Ordner existieren so wie sie sollen und haben den chmod 777. Ich verwende ein System mit Mdk-Linux 10 und XAMPP 1.4.7 (habs auch schon auf einem Rechner mit der aktuellen Version probiert). Ich habe noch relativ wenig Erfahrung mit solchen Dingen und wäre für einen kleinen Tipp ganz dankbar, ein weiß echt nicht woran es hängen könnte. Hier noch der Code von einem der Scripte, ich glaube zwar nicht dass es daran hängt weil ich wie gesagt schon mehrere ausprobiert habe, aber vielleicht könnt ihr damit ja etwas anfangen was zur Problemlösung beiträgt. Code: <?PHP
// special chars to be replaced
$signs = array("ä"," ","ö","ü","&","?","ß","+","~","/");
$bad_ext = array(".hta",".htp",".php",".pl",".cgi");
$root = "/server/path/to/home/";
// copy to this directory
if (!isset($dir)){
$dir = "up";
$shortdir = "http://www.your.domain.de/";
}
?>
<html>
<head>
<title>Upload Directory</title>
<style>
body,td,input {font-family:verdana,arial;font-size:13px;}
th {text-align:left;font-size:13px}
</style>
</head>
<body>
<b>Uploader</b>
<hr size="1" noshade width="100%">
<br>
<?PHP
// events to be proceeded
// copy the file to the server
if (isset($submit)){
$userfile_name = str_replace($signs,"_",$userfile_name);
$userfile_name = str_replace($bad_ext,".txt",$userfile_name);
copy($userfile,$dir.$userfile_name);
if (!is_uploaded_file ($userfile)){
echo "<font color=red>Die Datei <b>$userfile_name</b> konnte nicht auf den Server geladen werden.</font>\n";
}
}
// check whether file has been uploaded
if (is_uploaded_file ($userfile)){
print "<font color=green>Die Datei <b>$userfile_name</b> wurde erfolgreich auf den Server geladen.</font>\n";
}
// change directory for listing
if (isset ($changedir)){
while(list($key, $val) = each($selection)) {
if(filetype($dir.$val) == "dir") {
$dir = $dir.$val."/";
$shortdir = $shortdir.$val."/";
}
else {
echo "<font color=red>Die Datei <b>$val</b> ist kein Ordner.</font>\n";
}
}
}
// change directory to next higher level for listing
if (isset ($cdup)){
$array = explode("/",$dir);
$array2 = explode("/",$shortdir);
$parts = count($array);
$parts2 = count($array2);
$updir = "";
$updir2 = "";
for($x=0;$x<($parts - "2");$x++) {
$updir = $updir.$array[$x]."/";
}
for($x=0;$x<($parts2 - "2");$x++) {
$updir2 = $updir2.$array2[$x]."/";
}
$z = substr_count($updir, $root);
if ( $z < "1"){
echo "<font color=red>Diese Aktion ist nicht erlaubt!</font>\n";
}
else {
$dir = $updir;
$shortdir = $updir2;
}
}
// delete file and dir
if (isset ($delete)){
while(list($key, $val) = each($selection)) {
if (filetype($dir.$val) == "dir"){
rmdir($dir.$val);
print "<font color=green>Der Ordner <b>$shortdir$val</b> wurde erfolgreich vom Server gelöscht.</font>\n";
}
else {
unlink($dir.$val);
print "<font color=green>Die Datei <b>$shortdir$val</b> wurde erfolgreich vom Server gelöscht.</font>\n";
}
}
}
// create new directory
if (isset ($createdir)){
$newdir = str_replace($signs,"_",$newdir);
mkdir($dir.$newdir,0755);
echo "<font color=green>Der Ordner <b>$newdir</b> wurde erstellt.</font>\n";
}
?>
<br>
<form name="uploadfile" enctype="multipart/form-data" action="<?PHP echo $PHP_SELF ?>" method="post">
<table border="0"><tr>
<td><b>Datei:</b> </td>
<td><input name="userfile" type="file" size="20">
<input type="hidden" name="dir" value="<?PHP echo $dir ?>">
<input type="hidden" name="shortdir" value="<?PHP echo $shortdir ?>">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000"></td>
<td><input type="submit" value="upload" name="submit"></td></tr>
</form>
<form name="createdir" enctype="multipart/form-data" action="<?PHP echo $PHP_SELF ?>" method="post">
<tr><td><b>Verzeichnis:</b> </td>
<td><input name="newdir" type="text" size="35">
<input type="hidden" name="shortdir" value="<?PHP echo $shortdir ?>">
<input type="hidden" name="dir" value="<?PHP echo $dir ?>"></td>
<td><input type="submit" value="create" name="createdir"></td></tr></table>
Bitte <b>nur einmal</b> klicken und auf die Bestätigung warten
</form>
<a href="<?PHP echo $PHP_SELF ?>"><font color=blue>Startverzeichnis</font></a><br><br><br>
<hr size="1" noshade width="100%">
<b>Verzeichnisübersicht</b> <?PHP print "$shortdir"; ?>
<hr size="1" noshade width="100%">
<form name="display" enctype="multipart/form-data" action="<?PHP echo $PHP_SELF ?>" method="POST">
<input type="hidden" name="dir" value="<?PHP echo $dir ?>">
<input type="hidden" name="shortdir" value="<?PHP echo $shortdir ?>">
<?PHP
$size_sum = "0";
echo "\n <table border=0 cellspacing=5>\n";
echo " <tr><td colspan='3'><input type='submit' name='cdup' value='cdup'></td></tr>";
echo " <tr><th colspan='2'></th><th width=120>Dateiname</th><th width=120>Dateigröße</th><th width=120>Upload-Zeit</th><tr>\n";
$verz=opendir ($dir);
$n = 0;
while ($file = readdir ($verz)) {
if($file != "." && $file != ".." && $file != $PHP_SELF && $file != ".htaccess" && $file != ".htpasswd") {
echo " <tr><td><input type=checkbox name=selection[$n] value=$file></td><td>";
if(filetype($dir.$file) == "dir") {
echo "<img src='icons/folder.gif' width='16' height='16' border='0' alt='directory'>";
}
elseif(filetype($dir.$file) == "file") {
echo "<img src='icons/binary.gif' width='16' height='16' border='0' alt='file'>";
}
else {
echo "<img src='icons/unknown.gif' width='16' height='16' border='0' alt='unknown'>";
}
echo "</td><td width=120><a href='$shortdir$file' target='_blank'><font color=brown>$file</font></a></td><td width=120> (".number_format(filesize($dir.$file)/1000,3,",",".")." Kb)</td><td>".gmdate("d M Y - H:i:s", filemtime($dir.$file))."</td></tr>\n";
$size_sum = $size_sum + number_format(filesize($dir.$file),3,",","");
$n ++;
}
}
closedir($verz);
$output = number_format($size_sum/1000,3,",",".");
echo " <tr><th colspan='2'></th><th>Summe:</th><th>".$output." Kb</th></tr>\n";
echo " </table>\n";
?>
<hr size="1" noshade width="100%">
<input type='submit' value='delete' name='delete'>
<input type='submit' value='GoTo' name='changedir'>
</form>
<br><br>
</body>
</html> |
| | |
| | #2 (permalink) |
| Registriert seit: 20.01.03 ![]() Likes: 0 | Code: <input type="hidden" name="MAX_FILE_SIZE" value="1000000"> Anderer Grund könnte die Angabe deines Verzeichnisses sein ( Code: $dir = "up"; Ansonsten vielleicht nochmal die Quelle des Skripts angucken - oller kopierer du |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) | |
| Senior Member Themenstarter Registriert seit: 21.01.04 ![]() Likes: 0 | Nein, sorry, daran liegt es leider nicht. Hab den Filesize mal erhöht, das brachte auch keine Änderung und wenn ich eine absolute Pfadangabe verwende bekomme ich einen Parse-Error. Ich gehe aber auch nicht davon aus dass der Fehler im Script liegt, vielmehr müsste irgendwas mit meinem System nicht stimmten wenn mehrere Scripte alle nicht funktionieren. Und bei allen sind es wirklich die gleichen beschriebenen Probleme. Zitat:
| |
| | |
| | #4 (permalink) |
| 1. wenn du den Ordner über das script erstellst, bekommt der dann auch gleich die 777-berechtigung? 2. evtl. ist bei PHP der Save-Mode aktiviert, der kann auch Probleme bereiten, siehe: http://de2.php.net/manual/de/features.safe-mode.php | |
| | |
| | #5 (permalink) |
| Senior Member Themenstarter Registriert seit: 21.01.04 ![]() Likes: 0 | Zu 1) Nein, wenn ich über das Script einen Ordner erstelle bekommt nur der Benutzer alle Rechte, die Gruppe und Sonstige haben alle Rechte außer Schreibrechten. Zu 2) Das mit dem Safe_Mode überprüfe ich doch in der php.ini, oder? Da war nämlich ein entsprechender Eintrag deaktiviert. Noch irgendwelche Ideen? |
| | |
| | #6 (permalink) | |
| Registriert seit: 28.05.04 ![]() Likes: 0 | Zitat:
![]() liebe gruesse, ~chrisi | |
| | |
| | #7 (permalink) |
| Senior Member Themenstarter Registriert seit: 21.01.04 ![]() Likes: 0 | Du hast Recht, ich hatte übersehen dass der Xampp unter dem User nobody läuft. Ich habe mal schnell den Besitzer und die Rechte der Ordner entsprechend geändert, aber leider brachte mich das auch nicht weiter. Kann aber gut sein, dass mein Problem mit den Berechtigungen zu tun hat. Aber mehr als die Ordnerberechtigngen kann ich doch nicht anpassen, oder? |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Schönste Upload Script? | theend | (Web-) Design und webbasierte Sprachen | 11 | 05.03.09 15:35 |
| Problem bei Upload-Script | Corex | (Web-) Design und webbasierte Sprachen | 4 | 26.07.08 10:38 |
| mysql upload script | Herbder | Code Kitchen | 6 | 19.12.04 14:30 |
| Perl Upload Script | Zwirni | Code Kitchen | 0 | 16.08.04 11:19 |
| Upload-(Script) für einen verbuggten IIS? | seppl | (In)security allgemein | 14 | 10.01.03 01:09 |