php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.05.2009, 19:31  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Klar. Schau doch bei so etwas selbst im manual nach, da findest du die Antwort doch sofort.
Am besten auch immer auf die Beispiele und Kommentare achten, die bringen dich meist sehr viel weiter.


Zitat:
kann ich anstelle des PHP-Code:
!= IMAGETYPE_GIF

ein PHP-Code:
$witeliste = array('jpg', ... usw.)

setzten und meine erlaubten Dateitypen so überprüfen?
whitelist array erstellen, if Bedingung mit in_array und du hasts.
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist gerade online  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 11.05.2009, 20:35  
Erfahrener Benutzer
 
Registriert seit: 17.12.2008
Beiträge: 100
Knutschi befindet sich auf einem aufstrebenden Ast
Standard

ich stell mich jetzt vielleicht wieder sau blöd an und die lösung liegt bestimmt so einfach vor mir
PHP-Code:
foreach($_FILES["galfile"]["tmp_name"] as $key =>$value)
    {
        if (
in_array(exif_imagetype($value), $whitelist) == true)
        {
        echo 
'falscher Bildtyp';
        
$error true;
        
$errorindices[]=$key;  
        } 
das habe ich z.b. getestet und klappt nicht. habe auch schon verschiedene andere varianten gehabt, aber will alles net.
edit: jetzt funzt die Prüfung. Habe im Formbereich multifile.php anstatt multiform2.php angegeben

bzw. sollte ich mein vorhaben mal komplett erläutern, vielleicht ist mein Ansatz von vorn herein nicht ganz korrekt:

der user soll entweder 6 oder 12 bilder hochladen können. dies hängt davon ab welchen status er bzw. die zu erstellende "Galerie" hat. das sollte so ansich kein problem darstellen. Die Infos über Pfad, Bildname, alt. Bildname und Bild-ID sollen in einer DB gespeichert werden.

jetzt aber mal nur zum reinen bildupload. der user kann also die bilder hochladen. diese sollen mit einer id und lfd. Nr. versehen werden zb ID9845-0. Wenn ihm nun 6 upload forms zur verfügung stehen würde dies ja so aussehen ID-9845-0 bis ID9845-5. mit dem script was ich bisher habe funzt das nur bedingt. Lässt er ein Upload-Form aus wird auch die lfd. Nr nicht vergeben.

Wenn nun der User dies nach dem Upload merk, lädt das vergessen Bild nach überschreibt es mit die ID9845-0. Soweit so gut. Um dies eben zu unterbinden, soll eben die lfd. Nr so hochgesetzt werden, soviele Files auch tatsächlich hochgeladen wurden.

Dies soll dann noch dahin führen, dass wenn der user ein einzelnes Bild löscht, hat er 1. nur die Differenz von vorhandenen zu möglichen bildern als Upload-Form (5 bilder vorhanden, möglich sind 6 -> 1 Upload-Form). gleichzeitig soll das neue Bild auch mit der fehlenden lfd. Nr die gelöscht wurde belegt werden (ID9845-2 wurde gelöscht, bei neuem Upload soll dies erkannt werden und die lfd. Nr mit 2 belegt werden).

Noch Fragen??
Ich hoffe ich habe mich verständlich ausgedrückt.

Und nein mir soll das keiner schreiben (außer es hätte jemand Lust dazu, dann könnte ich in der Zeit was anderes machen ) es geht mir nur darum ob mein bisheriger Ansatz so korrekt wäre.

Hier noch mal der Code
PHP-Code:
<?php

if (isset($_POST["upload"]))
{
    
//Error Handling starten
    
$error = array();
    
//Dateigröße und Dateityp validieren
    
for($v 0$v count($_FILES["galfile"]["name"]); $v++)
    {
        if (
$_FILES["galfile"]["size"][$v] >= 100000)
        {
        
$error['upfile'] = "Die maximale Dateigröße von Bild $v überschreiten 100 kB!";
        }
    }
    if(!
$error)
    {
    
$dir "./event_gal/";
    
$id 034524;
        for(
$i 0$i count($_FILES["galfile"]["name"]); $i++)
        {
        if(
$_FILES["galfile"]["name"][$i])
        {
        
$file $_FILES["galfile"]["name"][$i];
        
$exto explode(".",$file);
        
$dnamesize count($exto);
        
$extn $exto[$dnamesize-1];
        
move_uploaded_file($_FILES["galfile"]["tmp_name"][$i] ,$dir."/".EID."".$id."-".$i.".".$extn);
        if(empty(
$_FILES["galfile"]["tmp_name"][$i])) break;
//Hier würde dann noch die mysql_query stehen
        
echo "Upload erfolgreich"."<br>";
        }
        }
    }
    else
    {
        foreach(
$error as $msg)
        {
            echo 
$msg."<br>";
        }
    }
    
}


    echo 
'<form name="multifile" enctype="multipart/form-data"';
    echo 
'action="multifile.php" method="post">';
    echo 
'<b>Bild 1:</b><br>';
    echo 
'<input type="hidden" name="MAX_FILE_SIZE" value="3670016">';
    echo 
'<input name="galfile[]" type="file" size="25"> max. 3,5 MB<p>';
    echo 
'<b>Bild 2:</b><br>';
    echo 
'<input type="hidden" name="MAX_FILE_SIZE" value="3670016">';
    echo 
'<input name="galfile[]" type="file" size="25"> max. 3,5 MB<p>';
    echo 
'<b>Bild 3:</b><br>';
    echo 
'<input type="hidden" name="MAX_FILE_SIZE" value="3670016">';
    echo 
'<input name="galfile[]" type="file" size="25"> max. 3,5 MB<p>';
    echo 
'<b>Bild 4:</b><br>';
    echo 
'<input type="hidden" name="MAX_FILE_SIZE" value="3670016">';
    echo 
'<input name="galfile[]" type="file" size="25"> max. 3,5 MB<p>';
    echo 
'<b>Bild 5:</b><br>';
    echo 
'<input type="hidden" name="MAX_FILE_SIZE" value="3670016">';
    echo 
'<input name="galfile[]" type="file" size="25"> max. 3,5 MB<p>';
    echo 
'<b>Bild 6:</b><br>';
    echo 
'<input type="hidden" name="MAX_FILE_SIZE" value="3670016">';
    echo 
'<input name="galfile[]" type="file" size="25"> max. 3,5 MB<p>';
    echo 
'<input type="submit" name="upload" value="Bilder hochladen">';
    echo 
'</form>';
?>
__________________
B.L.U.B. -> Biohazard Liquid Undefinied B.L.U.B.

Geändert von Knutschi (11.05.2009 um 21:11 Uhr). Grund: Validierung geht
Knutschi ist offline  
Alt 11.05.2009, 22:28  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Zitat:
der user soll entweder 6 oder 12 bilder hochladen können. dies hängt davon ab welchen status er bzw. die zu erstellende "Galerie" hat. das sollte so ansich kein problem darstellen. Die Infos über Pfad, Bildname, alt. Bildname und Bild-ID sollen in einer DB gespeichert werden.
-Überprüfe vor dem Formular den Status
-ermittle, wieviele "Slots" schon belegt sind.
-Gib nur noch so viele frei, wie noch an Platz vorhanden.

PHP-Code:
if (isset($_POST["upload"])) 
upload hat bestimmt auch einen Wert, überprüfe auch den.

Deine Lösung macht immer noch den Eindruck, als könnte man Bilder unabsichtlich überschreiben. Den filename bestimmt nicht das Formular oder die Schleife, sondern der file slot, der noch frei ist. Mein Ansatz wäre folgender: in der DB jedesmal update, wo noch kein Bild gesetzt ist bzw wo du überschreibst.

Zitat:
(ID9845-2 wurde gelöscht, bei neuem Upload soll dies erkannt werden und die lfd. Nr mit 2 belegt werden).
Entweder auslesen, was schon in dem Ordner an files vorhanden oder db unterstützt wie eben beschrieben.

Lösung eins würde ich persönlich unschön finden, es wäre so viel einfacher mit einer flexibleren Generierung der filenames. Da fände ich sogar den timestamp als filename leichter.
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist gerade online  
 


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
Problem mit Bildupload Script calimero87 PHP Tipps 2009 3 23.10.2010 22:22
Formulargenerierung + Validierung cp_toby Software-Design 11 01.03.2009 22:02
Bildupload in CMS funktioniert nicht soffi PHP Tipps 2009 18 10.01.2009 18:24
[Erledigt] Validierung mit Arrays vyo PHP Tipps 2008 4 27.12.2008 18:39
Bildupload spinnt jovi PHP Tipps 2008 1 13.03.2008 11:26
Bildupload mit Bildeditiermöglichkeit clemens Scriptbörse 3 03.12.2007 10:31
Problem mit Bildupload 2wuck PHP Tipps 2006 2 03.07.2006 07:05
Bildupload bzw auslesen klappt nicht mehr! Broadcast PHP Tipps 2006 5 29.05.2006 14:44
Problem beim Bildupload/ Thumbnailerstellen imported_FlasH PHP Tipps 2006 2 02.03.2006 08:12
bildupload ohne reload des bildes seejay PHP Tipps 2006 6 18.02.2006 12:53
bildupload groesse aendern und speichern PHP Tipps 2006 13 17.02.2006 13:27
Problem beim Bildupload PHP Tipps 2005-2 2 11.09.2005 19:30
Bildupload & Wasserzeichen Beitragsarchiv 2 07.12.2004 13:07
Webshop für Software / Bildupload Off-Topic Diskussionen 1 18.06.2004 22:54
[Erledigt] Bildupload in Graustufen PHP-Fortgeschrittene 1 15.06.2004 18:14

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
bilder gehen beim bildupload nach refresh verloren html, dynamischer bildupload namen, php validierung bild upload, uploader-merk.de, bilder mit lfd.nr. versehen, bildupload validieren, bildupload php dateigröße, name=\max_file_size\ value=, http://www.php.de/php-einsteiger/54952-dynamischer-bildupload-validierung-2.html, bildupload php nicht überschreiben, php wie überprüfe ich dateigröße für anhang, bilderhochladen 20 mb, bildupload problem über 3 mb

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:43 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