• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Upload zum 3. Nur eine Frage!!! ;-)

Toxictype

New member
Hallo,

ich habe es endlich geschafft ein unkompliziertes Upload zu erstellen. Nämlich das hier:

<?

$upload = "$userfile_name";

copy ($userfile,$upload);
echo "Die Datei wurde erfolgreich hochgeladen.";

?>
<html>
<head>
</head>
<body>
<form action=<? echo $PHP_SELF ?> method=POST ENCTYPE="multipart/form-data">
<table>
<tr>
<td class=navbox>Select File:</td>
<td>:</td>
<td><input type="file" name="userfile"></td>
</tr>
<tr>
<td><input type="submit" value="Upload"></td>
</tr>
</table>
</form>
</body>
</html>

Dieses "Skript" habe ich in einem Ordner "PHP". Wenn ich diesem Ordner die Rechte 777 gebe, funzt es und lädt die Dateien in diesen Ordner. Eigentlich alles ok.
Jetzt möchte ich aber einen anderen Ordner für die Uploads wählen (../../pics).
Was muss ich dafür machen???
Und geht es überhaupt?
Reicht es, wenn ich dem Ordner "pics" die Rechte 777 gebe oder muss ich anderen Ordnern davor auch alle Rechte geben?

Bitte um HILFE!
Fuchtel jetzt schon 2 Tage rum!

DANKE
 
Hallo!

Hast schon richtig angedeutet:

777 für den Ordner in dem das Zeug rein soll und den Pfad einfach bei copy mitangeben.
 
Ich würd in keinem Fall die Dateien in den gleichen Ordner laden, wo sich das Skript befindet. Denn so könnte theoretisch jeder das Skript löschen oder ein neues raufladen.

Ich würde einem Unterordner die Rechte 777 geben.

Gruss
 
Überprüfe auf alle Fälle noch den Filetype und unterbinde das hochladen von .php .cgi usw. Files, das wäre ein riesiges Sicherheitsleck!!!!!
 
Ich nehme an du hast einen Ordner in dem du die PHP-Skripts hast. Dann hat dieser Ordner nur kleine Zugriffsrechte weiss es nicht auswendig wie die Zahl heisst auf jeden Fall, dass nur du Files ändern etc. kannst. Dann kannst du ganz einfach die Dateien in ein Unterverzeichnis z.B.: files kopieren und diesem Unterordner die Rechte 777 geben und dann hast du kein Sicherheitsproblem mehr. Du kannst soviele Unterordner anlegen wie du willst.

$zielpfad = "files";
copy($userfile, $zielpfad."/".$zielname) //$userfile ist die Datei die du hochladen willst
//$zielname ist der Name der Datei z.B.: image.gif am besten gibst du den im Formular ein

Gruss Iltis
 
Wahrscheinlich wird php überall und in jedem Ordner ausgeführt, also kann ich dort auch php Files uploaden, das stellt auf alle Fälle ein Sicherheitsrisiko dar!!

777 = jeder darf alles schreiben, überschreiben, ausführen etc... :eek:
 
ja das ist klar das das ein Sicherheitsrisiko ist, aber manchmal ist es unumgänglich, wenn man nicht mehrere Server hat. Aber es wird sicherer wenn man einen Unterordner mit 777 hat und der Ordner mit den Skripts nicht 777 hat, denn sonst könnte jeder die PHP-Skripts herunterladen und z.B.: Mysql Passwort etc auslesen
 
Hallo,

erstmal megavielen Dank für die vielseitige Hilfe im
Thread "Upload zum 3." (siehe Link).

http://forum.jswelt.de/showthread.php?threadid=7763

Es läuft alles wunderbar. Jetzt ist nur eine Sache aufgetaucht,
in der Ihr mir bestimmt weiterhelfen könnt.
Es geht nochmal um folgendes Skript:

<?

$upload = "$userfile_name";
$files = "/home/user/htdocs/neu/pics";

copy ($userfile,$files."/".$upload);
echo "Die Datei wurde erfolgreich hochgeladen.";

?>


Wenn ich im "input type = file"- Feld, also in das Eingabefeld keine Eingabe mache, es leer bleibt, bekomme ich eine Fehlermeldung.
Ich müßte quasi eine Nullabfrage machen, oder!?

Könnt Ihr mir weiterhelfen? Vielleicht mit einem passenden Tag o.ä.!?

DANKE AN ALLE
 
ich würde es mal so versuchen:

if ($userfile == "") //$userfile ist der Name des Feldes, wo die Datei drin steht
{
echo "Es wurde keine Datei eingegeben"*;
}
else
{
$upload = "$userfile_name";
$files = "/home/user/htdocs/neu/pics";

copy ($userfile,$files."/".$upload);
echo "Die Datei wurde erfolgreich hochgeladen.";
}
 
Hallo,

danke erstmal!
Gibt es auch einen anderen Wert für "nichts" in PHP?
Z.B. "null" oder 0

Es funktioniert mit dem "" irgendwie nicht.

==> if ($userfile == "")

Außerdem wollte ich mit der Abfrage eine Fehlermeldung vermeiden. Es soll also trotz keiner Eingabe weiterlaufen.

Hmmm, versteht Ihr mich!!!:confused:
 
Hallo!

Also Fehlermeldung vermeiden tust du damit eh:

PHP:
if(!empty(trim($userfile)))
{
    $upload = $userfile_name; 
    $files = "/home/user/htdocs/neu/pics"; 

    copy ($userfile,$files."/".$upload); 
}

Wennst das so hin schreibst wird die Datei raufgeldaen wenn da was im $userfile drin ist und ansonsten gehts halt nach der IF-Anweisung weiter :)
 
kann man auch einen Ordner als Ziel angeben der noch nicht existiert? Funzt so erst mal nicht, aber lässt sich der zuvor vielleicht automatisch anlegen?
 
ich habe auch ein Problem; und zwar sind bei mir die register globals = off; und seit dem geht mein Upload Formular nicht mehr; weiss jemand was ich schreiben muss wenn der input von dem das file kommt so hier aussieht:

<input type="file" name="1" size="12">

$_POST bzw. $_GET geht da nicht; und auch $_FILES geht da irgendwie nicht...was gibt es da sonst noch? Oder hat jemand mal so ein Formular das mit den register globals = off programmiert wurde?
 
Zurück
Oben