Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
[Variablen] $file_name = Konstante? [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
[Variablen] $file_name = Konstante?


 
loom2005
04-07-2006, 23:23 
 
Hallo an alle!

hab mein Bilduploadscript jetzt wieder mal hervorgeholt und wollte da einige Sachen ändern bzw. optimieren. Doch irgendwie fehlt mir der Rote Faden zu der Variable $file_name.
Hab mal ein anderes Script von irgendeiner Webseite genommen da meines für hier zu lang wäre - zum Verständniss meines NichtVerständnisses reicht auch das:

Create a form in your html file.

<form method="post" action="file.php">
<input type="File" name="FileToUpload">
<input type="submit" value="submit">
<input type="reset" value="reset">
</form>

Create a file called file.php and put these codes in it:

if ($File_name){
if (copy($FileToUpload, "./photos/$File_name")){
echo 'File Name :' . $File_name .';
echo 'File Size :' . $File_size .';
echo 'The file was successfully uploaded!';}
else
echo 'Your file could not be copied.';
unlink($FileToUpload);


Mein Problem an der Stelle ist wieso ist "if ($File_name)" true wenn ich eine Datei hochgeladen habe?
Woher weiss PHP wie die Datei heisst die übergebene Variable heisst doch $FileToUpload oder?
Muss demnach eine Upload Konstante sein oder lieg ich jetzt vollkommen daneben?

Danke schonmal!

CU
LooM

PS.: hatte zwar im Forum gesucht dennoch niemand ist bisher auf diese Variable eingegangen.
PSS.: bei Blindheit meinerseits bitte bloss mal kurz einen Link zur Erklärung reinstellen, Danke.

 
ghostgambler
05-07-2006, 00:01 
 
keine Ahnung wo du das Beispiel ausgegraben hast, aber vergiss lieber alles und fang von vorne an...
http://de3.php.net/manual/de/features.file-upload.php

Der gepostete Code ist so minderwertig, dass man ihn schon fast als was besonderes ansehen könnte :rolleyes:

 
loom2005
05-07-2006, 00:13 
 
HI ghostgambler.

ich weiss ich weiss ich sollte das $_FILES Array fuer solche Sachen nutzen.
Doch wieso so kompliziert wenn ich nur eine Datei hochladen will - Sicherheit etc. muessen wir hier nicht diskutieren.
Mir fehlt eben nur zum Verstaendniss des oben geposteten Codes woher weiss PHP das es $file_name gibt? :dontknow:
War das mal eine Konstante aus PHP Urzeiten oder wie?
Trotzdem Danke fuer den Link!

CU
LooM

edit:
ich such die page nochmal raus ... kam bei meiner Suche bei google zum Vorschein nach $file_name.

 
tcpip
05-07-2006, 00:50 
 
Original geschrieben von loom2005
Create a file called file.php and put these codes in it:

if ($File_name){
if (copy($FileToUpload, "./photos/$File_name")){



das sieht nach PHP1/2/3 aus (gemeint ist: jedenfalls nicht von heute) und findet sich im php-manual nicht mal als "obsolete". Bezeichnend ist auch, dass im <form> KEIN enctype="multipart/form-data" Attribut ist.

 
ghostgambler
05-07-2006, 02:07 
 
Original geschrieben von loom2005
Mir fehlt eben nur zum Verstaendniss des oben geposteten Codes woher weiss PHP das es $file_name gibt? :dontknow:
War das mal eine Konstante aus PHP Urzeiten oder wie?
1. eine Konstante fängt nicht mit $ an
2. nein, so einen scheiß habe ich bis jetzt in meiner ganzen Zeit als PHP-Programmierer noch nicht gesehen, ich bezweifle stark, dass ein File-Upload mit diesem Stück funktioniert...

 
tcpip
05-07-2006, 02:28 
 
Ich hab's tatsächlich gefunden, als php3 Syntax. Allerdings müsste es heissen.
<input type=file name="File"> Aus diesem Name=File entsteht $File_name, $File_size usw. Mit <input type=file name="FileToUpload"> wäre entstanden $FileToUpload_name, $FileToUpload_size usw. Und ausserdem fehlt das enctype Attribut auch für php3. Es geistern offenbar immer noch solche scripts durch die foren, wenn man es ausgoogelt.

http://www.essi.fr/~buffa/cours/internet2000/TD/td5/php/docs/html/feature-fileupload.html

 
loom2005
05-07-2006, 02:50 
 
HI nochmal,

auch wenn es so aussieht als wuerde ich etwas nerven wollen...
Ich will doch nur wissen warum es geht.
Hab mir mal die "Muehe" gemacht und das von mir angesprochene Script nochmal angeschaut ... geht natuerlich nicht ....
So das ganze noch einmal etwas anders dennoch selbige Problemstellung:

<body>
<br />
<?php

if ($senden) {
if ($file_name == "") {
die("Keine Datei gewählt.");
}

@copy($file, "./$file_name") or die($body."Datei wurde nicht hochgeladen.");
echo "Datei hochgeladen"; }
else { ?>
<html>
<body bgcolor=#FFFFFF text=#000000 link=#ccff88 vlink=ccff88 alink=#ccff88>
<form action="<?php $PHP_SELF; ?>"method="post" enctype="multipart/form-data">
<p>Bitte Datei auswählen:<br>
<input type=file name=file>


<p><button name="senden" type="submit">Hochladen</button>
</form>
</body>
</html>

<?}?>




Das ganze gibts als Livescript unter www.abc-imobilaria.com/test/test_bild.php als "Beweismittel".
Wenn keine Datei im Formular ausgewaehlt wurde tritt
if ($file_name == "") {
die("Keine Datei gewählt.");
}
in Kraft nun meine Frage: Warum ist das so?

CU und nochmals Danke
LooM

PS.: Festellung: $file_name enthaehlt nach dem hochladen den Dateinamen vom Client und $file enthaelt den Temporaeren Dateinamen.

----------------------------------------------------------------------------------------------
edit: Ups,
tcpip und ich haben wohl zur gleichen Zeit eine Antwort gesendet.
Danke Dir tcpip ... dachte schon ich drehe jetzt voellig frei ...
Also funktioniert der Sch**** doch :rolleyes: ... aus irgendwelchen unerfindlichen sonderbaren Gruenden.
Naja wie auch immer an alle anderen:
Dieses Script sollte so nicht verwendet werden, da es nicht mehr der heutigen Norm entspricht. Besser ist die obengenannte Referenz im PHP Manual mal zu studieren und seine/ihre FileUploads so zu gestalten.

 
ghostgambler
05-07-2006, 13:56 
 
Original geschrieben von loom2005
Also funktioniert der Sch**** doch :rolleyes: ... aus irgendwelchen unerfindlichen sonderbaren Gruenden.
ich denke nicht, dass es mit php4 noch so funktioniert. Und irgendwo noch php3 laufend zu finden Oo,

 
tha_specializt
05-07-2006, 14:05 
 
Original geschrieben von ghostgambler
ich denke nicht, dass es mit php4 noch so funktioniert.
Nur wenn man Globale Variablen aktiviert hat in der php.ini (nicht ratsam, ganz und garnicht!!)
Original geschrieben von ghostgambler
Und irgendwo noch php3 laufend zu finden Oo, [/B]WAS?? Wenn du meintest: "Wenn man irgendwo noch php3 laufend vorfindet", dann muss ich sagen: Ja, leider gibt es sogar Möchtegern-Profis die dies einsetzen und gewaltige Lücken im Script aufgrund von Dummheit haben, trotz allem aber von sich total überzeugt sind!

- -

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