warum läd er das nicht hoch?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
Olli Oberhausen
Mitglied
Beiträge: 561
Registriert: 22.10.2004 01:03
Wohnort: Oberhausen NRW
Kontaktdaten:

Beitrag von Olli Oberhausen »

Enano hat geschrieben:Ist das oben etwa der komplette Quelltext? :-?
*lach* Ja, ist er....

Falls du mal deine zugangsdaten von deiner mysql datenbank oder von joomla vergessen hast, frag mich :grin:

Du solltest den code dringenst vom server löschen!

Deine Datenbank: aktiv12forum
Dein Benutzername: aktiv12forum
Dein Passwort: *****

Ok, das passwort hab ich extra nicht ausgelesen, könnte ich aber genau so sagen...

Gruß, Olli :grin:
Neulich im Zoo: Papa, guck mal, da sind Linuxe...
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
ultracoder

Beitrag von ultracoder »

wieso? wie soll das gehen, schreib mir das mal bitte per pn, damit ich das demnächst verhindern kann
Benutzeravatar
Enano
Mitglied
Beiträge: 107
Registriert: 24.11.2004 16:45
Wohnort: Dömitz
Kontaktdaten:

Beitrag von Enano »

Weil man momentan alles hochladen kann, incl. Scripte.
Hier: http://aktiv12forum.ak.funpic.de/Upload/info.php
und das ist noch harmlos.

Zum 1. Problem:
Bei www.phpbb-moddb.de ist register_globals auf OFF, was auch soweit gut ist.
So funktioniert dein script aber nicht.

Du kannst jetzt z.B. nicht mehr $datei_name usw. verwenden, sondern $_FILES:
  • $_FILES['datei']['name']
    $_FILES['datei']['type']
    $_FILES['datei']['size']
    $_FILES['datei']['tmp_name']
    $_FILES['datei']['error']
Schau auch mal hier: http://www.php-faq.de/q/q-formular-upload-php4.html
° warum haben eigentlich alle Mädchen im Internet den Nachnamen "JPG"???
ultracoder

Beitrag von ultracoder »

wie genau muss ich das mit den files machen?
kannst du das script vielleicht mal mit den files teilen umschreiben?




edit:

ich habe das jetzt so umgeschrieben:

Code: Alles auswählen

<FORM ENCTYPE="multipart/form-data" ACTION="upload.php" METHOD=POST>
Wählen Sie bitte eine Datei aus:<br>
<INPUT NAME="datei" TYPE="file"><BR>
<INPUT TYPE="submit" VALUE="Upload">
</FORM>
   

<?
if (isset($datei))
{ 
   echo "Dateiname: $_FILES['datei']['name'] 
<br>";
   echo "Größe der Datei in Byte: $_FILES['datei']['size'] 
 Byte<br>";
   echo "MIME-Type der Datei: $_FILES['datei']['type'] 
<br><br>";
   copy($datei, $_FILES['datei']['name'] 
);
   if($_FILES['datei']['type'] 
 == "image/gif" or $_FILES['datei']['type'] 
 == "image/jpeg" or $_FILES['datei']['type'] 
 == "image/bmp" or $_FILES['datei']['type'] 
 == "application/zip" or $_FILES['datei']['type'] 
 == "application/octet-stream" or $_FILES['datei']['type'] 
 == "text/html")   
{
     
 echo "<br>Ihr Link lautet:<br><a href='http://www.phpbb-moddb.de/Upload/$_FILES['datei']['name'] 
'>http://www.phpbb-moddb.de/Upload/$_FILES['datei']['name'] 
</a>";
 

   }

}
?>
aber jetzt kommt folgender fehler:

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/web12/html/Upload/upload.php on line 11
Benutzeravatar
Enano
Mitglied
Beiträge: 107
Registriert: 24.11.2004 16:45
Wohnort: Dömitz
Kontaktdaten:

Beitrag von Enano »

mein "Vorschlag":

Code: Alles auswählen

<FORM ENCTYPE="multipart/form-data" ACTION="<?php echo $_SERVER['PHP_SELF']; ?>" METHOD=POST>
Wählen Sie bitte eine Datei aus:<br>
<INPUT NAME="datei" TYPE="file"><BR>
<INPUT TYPE="submit" VALUE="Upload">
</FORM>
   
<?php
if (isset($_FILES['datei']))
{
	echo 'Dateiname: ' . $_FILES['datei']['name'] . '<br>';
	echo 'Größe der Datei in Byte: ' . $_FILES['datei']['size']. '<br>';
	echo 'MIME-Type der Datei: ' . $_FILES['datei']['type'] . '<br><br>';

	if ($_FILES['datei']['type'] == "image/gif" or $_FILES['datei']['type'] == "image/jpeg" or $_FILES['datei']['type'] == "image/bmp" or $_FILES['datei']['type'] == "application/zip" or $_FILES['datei']['type'] == "text/html")
	{ 
		move_uploaded_file($_FILES['datei']['tmp_name'], $_FILES['datei']['name']);
		echo '<br>Link: <a href="' . $_FILES['datei']['name'] . '">klick</a>';
	}
}
?>
Es wird erst geprüft, was es für eine Datei ist, bevor sie mit move_uploaded_file kopiert wird.
Ich habe auch

Code: Alles auswählen

$_FILES['datei']['type'] == "application/octet-stream"
weggelassen, weil man dadurch php-Dateien hochladen konnte.
Allerdings ist die Prüfung mit $_FILES['xyz']['type'] nicht wirklich sicher, da der Typ vom Browser übertragen wird ... und das kann man beeinflussen.
Wenn nur Grafikdateien hochgeladen werden dürfen, solltest du getimagesize nutzen.
Andere Dateien könnte man über die Extensions mit pathinfo prüfen.
° warum haben eigentlich alle Mädchen im Internet den Nachnamen "JPG"???
ultracoder

Beitrag von ultracoder »

wenn diese überprüfung nicht wirklich sicher ist, wie kann ich denn dann eine überprüfung sicher machen?
Benutzeravatar
Enano
Mitglied
Beiträge: 107
Registriert: 24.11.2004 16:45
Wohnort: Dömitz
Kontaktdaten:

Beitrag von Enano »

Enano hat geschrieben:Wenn nur Grafikdateien hochgeladen werden dürfen, solltest du getimagesize nutzen.
Andere Dateien könnte man über die Extensions mit pathinfo prüfen.
getimagesize liefert dir u.A. die Grafiktypen (GIF, JPG, PNG, SWF)

pathinfo gibt dir u.A. die Extension der Datei zurück (z.B. PHP, HTML, TXT, ...)

Schau dir einfach mal die Erklärung zu den Befehlen an.
° warum haben eigentlich alle Mädchen im Internet den Nachnamen "JPG"???
ultracoder

Beitrag von ultracoder »

und wie mache ich das, wenn ich statt dem klick, die url zur hochgeladenen datei angezeigt haben möchte?
Antworten

Zurück zu „Coding & Technik“