Inwiefern ist der Weg im Ganzen falsch? Zu unsicher?
Ist der Ansatz falsch überlegt?
Ist der Ansatz falsch überlegt?
if ( strpos ( ... ) === false ) {
// 0 / "" wird in false umgewandelt, daher Vergleich ohne Typumwandlung
if (isset($_FILES['userpic'])) {
//muss ich nur bei diesen beiden variablen ein [$i] anhängen?
$filename = $_FILES['userpic']['name'];
$file = $_FILES['userpic']['tmp_name'];
#################################################################
### dateigröße anpassen ###
// bild verkleinern, wenn zu groß
$tmpfile[1] = $file;
for($i=1;;$i++){
//$file_size = filesize($tmpfile[$i]);
$picnfo = GetImageSize($tmpfile[$i]);
//if($file_size > $pref_maxsize){
if($picnfo[0] > $max_x && $picnfo[1] > $max_y){
$tmpfile[$i+1] = tempnam($pref_device, $filename.'_'.$i);
// bildinfo
//$picnfo = GetImageSize($tmpfile[$i]);
$new_width = $picnfo[0] / 20 * 19;
$new_height = $picnfo[1] / 20 * 19;
// leeres bild erzeugen
$destimg = ImageCreateTrueColor($new_width, $new_height)
or die ("problem in creating empty image");
// temp. bild einlesen
switch ($picnfo[2]) {
case 1:
$srcimg = ImageCreateFromGIF($tmpfile[$i])
or die("Problem In opening Source Image");
break;
case 2:
$srcimg = ImageCreateFromJPEG($tmpfile[$i])
or die("Problem In opening Source Image");
break;
case 3:
$srcimg = ImageCreateFromPNG($tmpfile[$i])
or die("Problem In opening Source Image");
break;
default:
die ("extension not supported. only jpg, jpeg, gif and png!");
}
// verkleinertes temp. bild ins leere bild kopieren
ImageCopyResized($destimg, $srcimg, 0, 0, 0, 0, $new_width,
$new_height, $picnfo[0], $picnfo[1]) or die("Problem In resizing");
// speichern
switch ($picnfo[2]) {
case 1:
ImageGIF($destimg,$tmpfile[$i+1])
or die("Problem In outputting");
break;
case 2:
ImageJPEG($destimg,$tmpfile[$i+1],100)
or die("Problem In outputting");
break;
case 3:
ImagePNG($destimg,$tmpfile[$i+1])
or die("Problem In outputting");
break;
}
// temp datei löschen
unlink ($tmpfile[$i]);
}
else{
break;
}
}
$picnfo = GetImageSize($tmpfile[$i]);
### bildmaße anpassen ###
// neue ausmaße berechnen, falls zu groß
if ($picnfo[0] > $max_x){
$newwidth = $max_x;
$resize = true;
}
else{
$newwidth = $picnfo[0];
$resize = false;
}
$newheight = round($picnfo[1] / $picnfo[0] * $newwidth);
if ($newheight > $max_y) {
$newheight = $max_y;
$newwidth = round($newheight * $picnfo[0] / $picnfo[1]);
$resize = true;
}
if ($resize == true){
// neue temp datei anlegen
$tmpfile[$i+1] = tempnam($pref_device, $filename.'_'.$i);
// leeres bild erzeugen
$destimg = ImageCreateTrueColor($newwidth,$newheight)
or die ("Problem In Creating image");
// temp. bild einlesen
switch ($picnfo[2]) {
case 1:
$srcimg = ImageCreateFromGIF($tmpfile[$i])
or die("Problem In opening Source Image");
break;
case 2:
$srcimg = ImageCreateFromJPEG($tmpfile[$i])
or die("Problem In opening Source Image");
break;
case 3:
$srcimg = ImageCreateFromPNG($tmpfile[$i])
or die("Problem In opening Source Image");
break;
default:
die ("extension not supported. only jpg, jpeg, gif and png!");
}
// verkleinertes temp. bild ins leere bild kopieren
ImageCopyResized
($destimg,$srcimg,0,0,0,0,$newwidth,$newheight,$picnfo[0],$picnfo[1])
or die("Problem In resizing");
// speichern
switch ($picnfo[2]) {
case 1:
ImageGIF($destimg,$tmpfile[$i+1]) or die("Problem In outputting");
break;
case 2:
ImageJPEG($destimg,$tmpfile[$i+1],100) or die("Problem In outputting");
break;
case 3:
ImagePNG($destimg,$tmpfile[$i+1]) or die("Problem In outputting");
break;
}
// temp datei löschen
unlink ($tmpfile[$i]);
$i++;
}
$usertmpfile = $tmpfile[$i];
$verkleinerungen = $i - 1;
#################################################################
// Daten entsprechend Grundeinstellungen ueberpruefen
// Sonderzeichen bearbeiten
$filename = strtr($filename, "ÄÖÜäöü", "AOUaou"); // Deutsche Umlaute umwandeln
$filename = strtr($filename, "ß", "s"); // SZet umwandeln
$filename = str_replace(" ","_",$filename); // Leerzeichen durch _ ersetzen
// Dateiname zu lang?
if (strlen($filename) > $pref_maxlength) die ("Der Dateiname ist zu lang!
Maximal $pref_maxlength Zeichen erlaubt!");
// Datei existiert bereits? Umbenennen!
if (file_exists($pref_device.$filename)) {
$ext = substr(strrchr($filename,"."),1);
for ($i = 1;;) {
$filename = str_replace ('.'.$ext, '', $filename);
$filename .= '_'.$i.'.'.$ext;
if (!file_exists($pref_device.$filename)) break;
else {
$filename = str_replace ('_'.$i.'.'.$ext, '', $filename);
$filename = $filename . '.'.$ext;
$i++;
}
}
}
// Datei in Zielverzeichnis verschieben und CHMOD auf 604 setzen
copy ($usertmpfile,$pref_device.$filename);
// temp datei löschen
unlink ($usertmpfile);
chmod($pref_device.$filename, 0604);
echo 'Die Datei wurde erfolgreich ';
if($verkleinerungen > 1) echo 'nach '.$verkleinerungen.' Verkleinerungen ';
echo 'hochgeladen!<br /><a
href="'.$pref_device.$filename.'">'.$filename.'</a>';
echo '<br /><input type=\'button\' name=\'weiteres_foto_hochladen\'
value=\'Weiter um Inhalte einzufügen\'
onClick=\'javascript:window.location.href=webseite.php?
action=neue_webseite&schritt=2\'>';
}
if ( strpos ( ... ) === false ) {
// 0 / "" wird in false umgewandelt, daher Vergleich ohne Typumwandlung
// weiterhin unsauber....!
if($pos["file"] == true) {
$iPlus = ++$iPlus;
..............................
}
// tut das gleiche!!
if($pos["file"]) {
$iPlus++;
..............................
}
var_dump(0==false); // true
var_dump(0===false); //false
Kommentar