Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 19:48

  • Please register to post and access all features, it's quick, easy and FREE!


[PHP] Problem mit einem Fileupload Script

Reply
 
Old   #1
 
elite*gold: 150
Join Date: Feb 2010
Posts: 42
Received Thanks: 18
[PHP] Problem mit einem Fileupload Script

Hallo Community

Ich kämpfe hier grad etwas mit einem PHP Fileupload Script rum. ^^
Hab von PHP nicht so viel Ahnung.

Also das Script überprüft nach dem abschicken der Datei das Format (zb .txt) und schickt das an die upload.php:


PHP Code:
<form ENCTYPE="multipart/form-data" method="post" name="form1" action="uploadgerman.php">
                <INPUT NAME="attached" TYPE="file"  size="50"><br>
                Erlaubte Dateiformate: <b><?=implode("</b>, <b>",explode("|",$att_filetypes))?></b><br>
                Maximale Dateigröße: <b><?=$att_max_size?>KB</b>
                <br><br>
                <input type="submit" name="submit" value="Datei hochladen">
            </form>
Upload.php:
PHP Code:
<?
    
include("include/common.php");
    include(
"include/headergerman.php");
    if(
$loggedin){
        include(
"include/accmenu.php");
    }
    if( 
$_POST['submit'] && $_FILES['attached']['name'] ){
        
$ok_filetypes explode("|",$att_filetypes);
        if (!
$_FILES['attached']['error'] && $_FILES['attached']['size'] > $att_max_size*1024){
            
errform('<CENTER>Ihre Datei ist zu groß. Die Datei darf maximal $att_max_siz groß sein. </CENTER><BR><BR>'); // #err
            
$step 1;
        }
        
$filename = (!$_FILES['attached']['error'] ? substrbasename($_FILES['attached']['name']), -30 ) : '');
        
$x strtolowersubstr($_FILES['attached']['name'], -3));
        if(
$filename && !in_array($x$ok_filetypes) ){
            
errform('<CENTER>Dateiformat nicht verfügbar.</CENTER><BR><BR>');
            
$step 1;
        }
        if(!
$posterr){
            if(!isset(
$_GET["ipaddress"]) || ($_GET["ipaddress"] == "")) {
                
$ipaddress $_SERVER['REMOTE_ADDR'];
                
$local 1;
            } else {
                
$ipaddress $_GET["ipaddress"];
                
$local 0;
            }
            
$uniq substrmd5(uniqid (rand())), 010 );
            
$ext strtolowersubstr($_FILES['attached']['name'], -3));
            
move_uploaded_file($_FILES['attached']['tmp_name'], $att_path."/".$uniq.".".$ext );
            
$strQuery  "INSERT INTO images25 SET ";
            
$strQuery .= "filename='".$uniq.".".$ext."',";
            
$strQuery .= "ipaddress='{$ipaddress}',";
            
$strQuery .= "date='".time()."',";
            
$strQuery .= "pkey='{$uniq}',";
            if(
$myuid){
                
$strQuery .= "user='{$myuid}',";
            }
            
$strQuery .= "status='1'";
            
$result mysql_query($strQuery) or die( mysql_error() );
            
$aid mysql_insert_id();
            if(
$aid){
                
$filen $siteurl."/".str_replace('./'''$att_path)."/".$uniq.".".$ext;
                
$filen str_replace('http://','%%',$filen);
                
$filen str_replace('//','/',$filen);
                
$filen str_replace('%%','http://',$filen);

                
                
//ITS AN IMAGE
                
if($x=="jpg" or $x=="jpeg" or $x=="gif" or $x=="png" or $x=="jif" or $x=="jfif")
                {
                    
$filenx=$filen;
                }
                else
                {
                    include(
"include/const.inc.php");
                    
$filenx $siteurl."/icons/".$Icons[$ext];
                }


                
$step 2;
            }else{
                
$step 1;
            }
        }
    }else{
        
$step 1;
    }
    if(
$step == 1){
?>
        <table width="85%" border="0" align="center" cellpadding="0" cellspacing="0">
        <tr>
            <td>
                <div align=center>
                <form ENCTYPE="multipart/form-data" method="post" name="form1">
                    <INPUT NAME="attached" TYPE="file"  size="50"><br>
                    Erlaubte Dateiformate: <b><?=implode("</b>, <b>",explode("|",$att_filetypes))?></b><br>
                    Maximale Dateigröße: <b><?=$att_max_size?>KB</b>
                    <br><br>
                    <input type="submit" name="submit" value="Datei hochladen">
                </form>
                </div>
            </td>
        </tr>
        </table>
<?
    
}else{    ?>
<div align="center"><b>Ihre Datei wurde hochgeladen.</b><br>
  <br>
</div>
<table width="85%" border="0" align="center" cellpadding="0" cellspacing="0">
        
        <tr>
            <td><div align="center"><br>
                Um Ihre Datei in einem Forum zu posten, kopieren Sie diesen Code:<br>
                <textarea name="textarea" cols="100" wrap="soft" rows="3">[url=<?=$siteurl?>][img]<?=$filen?>[/img][/url]</textarea>
            </div></td>
        </tr>
        <tr>
            <td><div align="center"><br>
                Um Ihre Datei Freunde und Familie zu senden, kopieren Sie diesen Code: <br>
        <textarea name="textarea2" cols="100" rows="4"><?=$filen?></textarea>
      </div></td>
        </tr>
        <tr>
            <td><div align="center"><br>
                Um Ihre Datei in einem HTML Code einzubinden, kopieren Sie diesen Code:<br>
                <textarea name="textarea3" cols="100" wrap="soft" rows="3"><a href="<?=$filen?>" target="_blank"><img alt="File Hosted by www.freefileupload.de" src="<?=$filenx?>" /></a></textarea>
            </div></td>
        </tr>
        <tr>
            <td>&nbsp;</td>
        </tr>
        </table>
<?    }    ?>
<?
    
include("include/footer.php");
?>
Jetzt zu meinem Problem:
Ich möchte nicht das er die Formate überprüft, weil ich möchte das man alle Formate uploaden kann. Könnte mir da jemand helfen bitte?



xXFunyXx is offline  
Old 04/14/2010, 03:45   #2
 
elite*gold: 0
Join Date: Oct 2008
Posts: 319
Received Thanks: 88
Zeile 15 bis Zeile 18 wird doch überprüft welche Endung die hochgeladene Datei hat.
Dies wird aus dem Array $ok_filetypes filetyps geholt. Entweder du entfernst diese
3 Zeilen oder du schreibst einfach alle Dateitypen in das eben erwähnte Array. 49 - 57
wird noch überprüft ob es eine Image Datei ist und dan in den jeweiligen Ordner geladen.

Nun etwas zu deinem Problem. Erlaube niemals einen Upload der alle Dateitypen
erlaubt. Ganz einfach aus dem Grund, das man mit PHP Scripten die man dan auf
deinen Host läd eine Menge Unsinn treiben kann -> Shells können verwendet werden.
Und das führt dan dazu das dir entweder die Seite vom Root geklaut oder gelöscht wird.
Deswegen würde ich dir raten wenigstens zu überprüfen ob es ein PHP Dokument ist,
falls dein Webserver noch ASP.net bzw ASPX anbietet würde ich diese ebenfalls
rauswerfen.

Nebenbei, Dateiendungen kann man auch viel Einfacher als mit strpos holen.
$extension = end(explode(".", $_FILE['attached']['tmp_name']));
Gegebenenfalls solltest du dich nach einem anderen Script umschauen, deines
erfüllt zwar seinen Zweck, aber es ist sehr umständlich gescriptet. Das ganze hätte
man auch einfacher haben können.


Fratyr is offline  
Thanks
1 User
Old 04/14/2010, 13:13   #3
 
elite*gold: 150
Join Date: Feb 2010
Posts: 42
Received Thanks: 18
Quote:
Originally Posted by Fratyr View Post
Zeile 15 bis Zeile 18 wird doch überprüft welche Endung die hochgeladene Datei hat.
Dies wird aus dem Array $ok_filetypes filetyps geholt. Entweder du entfernst diese
3 Zeilen oder du schreibst einfach alle Dateitypen in das eben erwähnte Array.
Habs jetzt auskommentiert. Funktioniert, hab immer die beiden zeilen drüber auch mit auskommentiert.

Quote:
Nun etwas zu deinem Problem. Erlaube niemals einen Upload der alle Dateitypen
erlaubt. Ganz einfach aus dem Grund, das man mit PHP Scripten die man dan auf
deinen Host läd eine Menge Unsinn treiben kann -> Shells können verwendet werden.
Und das führt dan dazu das dir entweder die Seite vom Root geklaut oder gelöscht wird.
Deswegen würde ich dir raten wenigstens zu überprüfen ob es ein PHP Dokument ist,
falls dein Webserver noch ASP.net bzw ASPX anbietet würde ich diese ebenfalls
rauswerfen.
Habs grad mal versucht auszuschließen. Das Chaos wollte ich euch nicht antun. Da klappen sich sicher eure Fußnägel hoch.
Könntest du mir da vielleicht noch helfen?
xXFunyXx is offline  
Old 04/15/2010, 03:58   #4
 
elite*gold: 0
Join Date: Oct 2008
Posts: 319
Received Thanks: 88
Die Dateiextension wird ja in diesem Script schon aus dem Namen geholt. Jetzt
brauchst du eigentlich nurnoch eine kurze If Abfrage.

PHP Code:
// Nur nochmal zur Erinnerung, wo die Extension geholt wird...
// Diese ist aber eigentlich ziemlicher Mist, ein aspx dokument hat
// 4 stellen hinter dem Punkt, deswegen würde die dateiextension spx
// heißen. Deswegen machen wirs anderst...
#$ext = strtolower( substr($_FILES['attached']['name'], -3));

$ext strtolower(end(explode("."$_FILES['attached']['name'])));
if (
$ext == 'php' OR $ext == 'asp' OR $ext == 'aspx'
{
  echo 
'PHP, ASP oder ASPX Dokumente dürfen nicht hochgeladen werden';
}
else 
{
  
move_uploadet_file($_FILES['attached']['tmp_name'], $att_path."/".$uniq.".".$ext);

Fratyr is offline  
Thanks
1 User
Reply



« Input Problem(php) | [PHP] WO ist der Fehler »

Similar Threads
Hilfe bei einem AUtoIT imagesearch script
08/24/2010 - AutoIt - 2 Replies
Nun, Ich will ein Script, dass solange den Bildschirm SCHNELL nach dem Pixel 0x267042 sucht und immer wieder draufklickt, bis das Bild "gewonnen.PNG" sichtbar wird,dann da drauf klickt und wieder von vorne anfängt mit Pixelsearch. Danke
Hilfe bei einem Script
06/25/2010 - AutoIt - 1 Replies
Hallo könnte mir einer netter weise dieses Script: MsgBox(0,"Hallo","Hallo das ist mein neuer 18.1 Crosshair Trainer by me",5) MsgBox(0,"Viel Spass","=)=)=)=)=)=)=)=)=)=)=)=)=)=)=)=)=)=)",2) #RequireAdmin #include <ButtonConstants.au3> #Include...
Ich habe ein Problem mit einem Skript von einem NPC
06/03/2010 - Metin2 PServer - Discussions / Questions - 1 Replies
Hallo Leute;) Ich möchte ein Npc, der P-Kompetenz von G1 machen Ich habe versucht zu benutzen: ... ... If pc.skill_level (1, 30) then pc.set_skill_level (2,59) ... ... aber ohne Ergebnisse
Suche Hilfe bei einem Speziellen Script
02/23/2009 - General Coding - 1 Replies
Hallo Ich würde gerne ein Tool bauen, das einen Server immer abfrägt. Es handelt sich dabei um einen Server eines Browsergames. In diesem Browsergame kommt alle 4 Stunden ein Job den man annehmen kann. Der Countdown der 4 Stunden startet dann...
Wiedereinmal ein Problem mit einem Script
03/21/2008 - Guild Wars - 6 Replies
Hallo, Ich muss schon wieder nerfen. Und schon wieder wgn. einer soo simplen Sache, dass es mich selbst ärgert :mad: Ich wollt den hfff Bot so umschreiben, dass er wenn er über die Map nicht den Ausgang findet er dann den nächsten Verbündeten...



All times are GMT +2. The time now is 19:48.


Powered by vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Abuse
Copyright ©2018 elitepvpers All Rights Reserved.