php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.02.2010, 18:00  
Neuer Benutzer
 
Registriert seit: 12.02.2010
Beiträge: 22
PHP-Kenntnisse:
Anfänger
tolja befindet sich auf einem aufstrebenden Ast
Standard Upload-Script lehnt bestimmte Dateien ab, möchte aber, dass er die annimmt

hey leute,

hab ein problem mit meinem upload-script.

es funktioniert zwar aber es werden nur bestimmte dateien abgelehnt. ich möchte aber, dass er nur .gif, .png und .jpg annimmt und sonst alles andere ablehnt. wie mach ich das am besten?

PHP-Code:
<?php 
error_reporting
(E_ALL); 
ini_set('display_errors'1); 
set_time_limit(0); 

$aMessages = array(); 
$sUploadDir ''
if (
array_key_exists('upload'$_FILES) && is_array($_FILES['upload'])) { 
    
$sFile dirname(__FILE__) . '/' .$sUploadDir $_FILES['upload']['name']; 
    
$sPathinfo pathinfo($_FILES['upload']['name']); 
    
$sExtension $sPathinfo['extension']; 
    
$aDenyExtensions = array('php''htaccess''htpasswd''do''cgi'); 
    if (
in_array($sExtension$aDenyExtensions)) { 
        
$aMessages[] = 'Dein Beweisbild hat eine unerlaubte Dateiendung.<br />Erlaubte Dateiendungen: jpg, gif, png<br /><br />'
    } else if (!
move_uploaded_file($_FILES['upload']['tmp_name'], $sFile)) { 
        
$aMessages[] = sprintf('Dein Beweisbild konnte <u>nicht</u> hochgeladen werden - Fehlercode [url="http://de.php.net/manual/de/features.file-upload.errors.php"]%u[/url].<br /><br />'$_FILES['upload']['error']); 
    } else { 
        
$aMessages[] = 'Dein Beweisbild wurde erfolgreich hochgeladen. Vielen Dank!<br /><br />'
    } 

?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
    "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head>  
</head> 
<body> 

<?php 
if (count($aMessages) > 0) { 
?> 
<?php 
    
foreach ($aMessages as $sMessage) { 
?><?php echo $sMessage?> 
<?php 
    

?>
<?php 

?> 

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post"> 
    <input name="upload" type="file" /> <input type="submit" value="Hochladen" /> 
</form> 
</body> 
</html>
tolja ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.02.2010, 18:30  
Dominik
Gast
 
Beiträge: n/a
Standard

Code:
<?php  
error_reporting(E_ALL);  
ini_set('display_errors', 1);  
set_time_limit(0);  

$aMessages = array();  
$sUploadDir = '';  
if (array_key_exists('upload', $_FILES) && is_array($_FILES['upload'])) {  
    $sFile = dirname(__FILE__) . '/' .$sUploadDir . $_FILES['upload']['name'];  
    $sPathinfo = pathinfo($_FILES['upload']['name']);  
    $sExtension = $sPathinfo['extension'];  
    $aAllowExtensions = array('png', 'gif', 'jpg');  
    if (in_array($sExtension, $aAllowExtensions )) { 
if (!move_uploaded_file($_FILES['upload']['tmp_name'], $sFile)) {  
        $aMessages[] = sprintf('Dein Beweisbild konnte <u>nicht</u> hochgeladen werden - Fehlercode %u.<br /><br />', $_FILES['upload']['error']);  
    }
$aMessages[] = 'Dein Beweisbild wurde erfolgreich hochgeladen. Vielen Dank!<br /><br />';  

    } 
 else {  
$aMessages[] = 'Dein Beweisbild hat eine unerlaubte Dateiendung.<br />Erlaubte Dateiendungen: jpg, gif, png<br /><br />';  
    }  
}  
?>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  
    "http://www.w3.org/TR/html4/strict.dtd">  
<html>  
<head>   
</head>  
<body>  

<?php  
if (count($aMessages) > 0) {  
?>  
<?php  
    foreach ($aMessages as $sMessage) {  
?><?php echo $sMessage; ?>  
<?php  
    }  
?> 
<?php  
}  
?>  

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post">  
    <input name="upload" type="file" /> <input type="submit" value="Hochladen" />  
</form>  
</body>  
</html> 
So in etwa
 
Alt 16.02.2010, 18:41  
Neuer Benutzer
 
Registriert seit: 12.02.2010
Beiträge: 22
PHP-Kenntnisse:
Anfänger
tolja befindet sich auf einem aufstrebenden Ast
Standard

jja aber jetzt wird nichts hochgeladen sondern immer nur der fehler "unerlaubte dateiendung" angezeigt

das script hab ich über iframe eingebaut weil meine ach so tolle 1&1 inklusivhomepage kein php unterstüzt -.-
tolja ist offline  
Alt 16.02.2010, 18:41  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.990
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ach dieser Fehler. Ja, das ist natürlich ein Problem.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 16.02.2010, 18:47  
Dominik
Gast
 
Beiträge: n/a
Standard

Welcher Fehler dann mach mal in jedes if ein echo und mach auhc mal ein echo $sExtension;
 
Alt 16.02.2010, 20:58  
Neuer Benutzer
 
Registriert seit: 12.02.2010
Beiträge: 22
PHP-Kenntnisse:
Anfänger
tolja befindet sich auf einem aufstrebenden Ast
Standard

warum hab ich wohl im anfänger-forum gepostet?


kannst du mir bitte zeigen wohin das soll?
tolja ist offline  
Alt 16.02.2010, 22:23  
Dominik
Gast
 
Beiträge: n/a
Standard

Also hast mal meinen Code genommen wenn ja was passiert den mit dem Code, was wird ausgegeben ?


Code:
<?php  
error_reporting(E_ALL);  
ini_set('display_errors', 1);  
set_time_limit(0);  

$aMessages = array();  
$sUploadDir = '';  
if (array_key_exists('upload', $_FILES) && is_array($_FILES['upload'])) {  
    $sFile = dirname(__FILE__) . '/' .$sUploadDir . $_FILES['upload']['name'];  
    $sPathinfo = pathinfo($_FILES['upload']['name']);  
    $sExtension = $sPathinfo['extension']; 
echo $sExtension; 
    $aAllowExtensions = array('png', 'gif', 'jpg');  
    if (in_array($sExtension, $aAllowExtensions )) { 
if (!move_uploaded_file($_FILES['upload']['tmp_name'], $sFile)) {  
        $aMessages[] = sprintf('Dein Beweisbild konnte <u>nicht</u> hochgeladen werden - Fehlercode %u.<br /><br />', $_FILES['upload']['error']);  
    }
$aMessages[] = 'Dein Beweisbild wurde erfolgreich hochgeladen. Vielen Dank!<br /><br />';  

    } 
 else {  
$aMessages[] = 'Dein Beweisbild hat eine unerlaubte Dateiendung.<br />Erlaubte Dateiendungen: jpg, gif, png<br /><br />';  
    }  
}  
?>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  
    "http://www.w3.org/TR/html4/strict.dtd">  
<html>  
<head>   
</head>  
<body>  

<?php  
if (count($aMessages) > 0) {  
?>  
<?php  
    foreach ($aMessages as $sMessage) {  
?><?php echo $sMessage; ?>  
<?php  
    }  
?> 
<?php  
}  
?>  

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post">  
    <input name="upload" type="file" /> <input type="submit" value="Hochladen" />  
</form>  
</body>  
</html> 
 
Alt 16.02.2010, 22:51  
Neuer Benutzer
 
Registriert seit: 12.02.2010
Beiträge: 22
PHP-Kenntnisse:
Anfänger
tolja befindet sich auf einem aufstrebenden Ast
Standard

wenn man ein bild hochlädt, dann lädt und lädt der aber kommt nich weiter

wenn man eine unerlaubte datei hochlädt, kommt sofort ne meldung
tolja ist offline  
Alt 16.02.2010, 23:01  
Erfahrener Benutzer
 
Registriert seit: 28.01.2010
Beiträge: 615
PHP-Kenntnisse:
Fortgeschritten
tkausl ist in Verruf geraten
Standard

was solln bitte DIE scheisse:
PHP-Code:
<?php  
if (count($aMessages) > 0) {  
?>  
<?php  
    
foreach ($aMessages as $sMessage) {  
?><?php echo $sMessage?>  
<?php  
    
}  
?> 
<?php  
}  
?>
tkausl ist offline  
Alt 17.02.2010, 09:12  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.990
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Soll wohl ein Pseudo-Template sein. Normal macht man das meist so:
PHP-Code:
<?php IF (count($aMessages) > 0): ?>  
  <?php FOREACH ($aMessages as $sMessage) : ?>
    <?php echo $sMessage?>  
  <?php ENDFOREACH; ?>
<?php 
ENDIF; ?>
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP Upload Script jared566 PHP Tipps 2009 3 17.12.2009 16:36
Problem: per PHP Script Ordner anlegen und Dateien einfügen Aggrafics PHP Tipps 2009 11 17.07.2009 13:29
[Erledigt] dateien hinterm document root ablegen und per script ordner erstellen Buschdieb PHP Tipps 2009 7 05.07.2009 15:57
Problem beim Upload von Dateien per FTP ererbus PHP-Fortgeschrittene 4 11.06.2009 22:56
Altes Script zum Auflisten und Download von Dateien geht nicht mehr majoo PHP Tipps 2009 3 06.05.2009 20:53
Simples Upload Script Turbo Freddy PHP Tipps 2008 35 18.12.2008 20:44
[Erledigt] mini Upload PHP Script funktioniert nicht errox PHP Tipps 2008 8 20.10.2008 16:40
Upload Script bleibt einfach stehen SniperWolf PHP Tipps 2008 4 19.09.2008 19:39
Upload Script + Multible Server cyberstorm PHP Tipps 2006 5 11.10.2006 19:43
nur bestimmte Dateien aus einem Verzeichnis auslesen Madden PHP Tipps 2006 2 07.03.2006 17:10
FTP upload via PHP script ... PHP Tipps 2005 2 13.04.2005 17:39
Upload von Dateien PHP Tipps 2004 10 16.09.2004 10:52
Ich bin auf der Suche nach einem fertigen Menü Upload Script Beitragsarchiv 7 22.08.2004 18:53
Upload mit Fehlermeldung "The script whose uid is 982 i PHP Tipps 2004 2 06.07.2004 13:18

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php upload nur bestimmte dateitypen, php upload nur bestimmte dateien, file upload nur bestimmte dateitypen, unerlaubte dateiendung, upload script dateiendung, $_files error 7 1und1, php file upload auf bestimmte datei, php nur bestimmte dateien uploaden, pathinfo($_files[\'upload\'][\'tmp_name\']);, php script dateien hochladen dateiendung, html upload nur bestimmte dateien, php upload mit dateiendung, upload php datei endungen, upload script dateiendungen, html type file bestimmte dateiendungen, upload script php dateiendung, php nur jpg und png annehmen, jpeg hochladen hat unerlaubte endung, datei upload php nur bestimmte dateien, nur dateien mit bestimmten namen hochladen php

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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum