for() Schleife Problem bei Aktualisierung eines Formulars

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Inwiefern ist der Weg im Ganzen falsch? Zu unsicher?
    Ist der Ansatz falsch überlegt?

    Kommentar


    • #17
      1. die länge der url ist i.d.r. begrenzt, die dateinamen können aber i.a. sehr lang sein.
      2. die dateinamen können manipuliert werden

      Kommentar


      • #18
        Original geschrieben von tontechniker
        Also war in meinem Posting kein Fehler!!!!
        Wir werden alle sterben

        Kommentar


        • #19
          Okay, sehe ich ein.
          Dann denke ich um und nehme das naheliegendste: $_POST

          Aber wie kann ich hier ermitteln ob 1, 5 oder 10 Bilder hochgeladen worden sind?
          Mittels <input type="hidden" name="file_1" value="erstes_bild">
          kann ich mir gerade nichts vorstellen...?

          Kommentar


          • #20
            1. das wort session ist auch schon gefallen. selektive wahrnehmung?
            2. mit name="datei[]" bekommst du ein unterarray in $_FILES. rtfm, verdammt..

            Kommentar


            • #21
              Ok,
              ich probiere es jetzt mal mit session
              und
              http://www.php-resource.de/handbuch/...d.multiple.htm

              Kommentar


              • #22
                Also war in meinem Posting kein Fehler!!!!
                Doch, bei strpos musst du mit drei Gleichheitszeichen prüfen um das richtige Ergebnis zu bekommen, ergo:
                PHP-Code:
                if ( strpos ( ... ) === false ) {
                // 0 / "" wird in false umgewandelt, daher Vergleich ohne Typumwandlung 
                Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                Kommentar


                • #23
                  hilfe, ich kann das bild-upload-script nicht anpassen.
                  das formular mit mehrfachauswahl konnte ich ja 1:1
                  aus dem php-resource.de beispiel entnehmen,
                  aber dieses folgende komplexe script weiß ich nicht anzupassen.
                  soll ich jeden prozess für jedes Bild einzeln durchlaufebn lassen
                  oder kann ich alle bilder simultan verarbeiten? wenn ja, wie kann ich das
                  machen?

                  PHP-Code:
                  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$srcimg0000$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.$filename0604);

                  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\'>'
                  ;


                  Zuletzt geändert von kerbstone; 28.07.2007, 14:59.

                  Kommentar


                  • #24
                    Nein simultan verarbeiten geht nicht ... *move Projekthilfe*
                    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                    Kommentar


                    • #25
                      würde es sinn machen hinter der 1. if() abfrage eine
                      for() schleife zu packen und dann alle vorgänge 10 mal zu wiederholen?

                      Kommentar


                      • #26
                        Original geschrieben von tontechniker
                        Doch, bei strpos musst du mit drei Gleichheitszeichen prüfen um das richtige Ergebnis zu bekommen, ergo:
                        PHP-Code:
                        if ( strpos ( ... ) === false ) {
                        // 0 / "" wird in false umgewandelt, daher Vergleich ohne Typumwandlung 
                        Zum Mitmeißeln:
                        Original geschrieben von combie
                        PHP-Code:
                        // weiterhin unsauber....!
                         
                        if($pos["file"] == true) {
                            
                        $iPlus = ++$iPlus;
                            ..............................
                          }


                        // tut das gleiche!!
                         
                        if($pos["file"]) {
                            
                        $iPlus++;
                            ..............................
                          } 
                        Die Aussage " weiterhin unsauber....!" ist korrekt!!
                        Die Aussage " tut das gleiche" ist ebenso korrekt!!
                        Und das ist völlig lösgelöst vom Kontext des TE!


                        Also noch mal, was ist an meinem Posting falsch?
                        Wir werden alle sterben

                        Kommentar


                        • #27
                          Original geschrieben von combie
                          Also noch mal, was ist an meinem Posting falsch?
                          man, reg dich ab!
                          ja, dein posting ist in diesem kontext völlig richtig. zufrieden?

                          nur es ist ebenfalls "weiterhin unsauber....!" bzw. schlichtweg falsch, weil strpos() 0 zurückliefert wenn 'needle' an erster stelle gefunden wird.
                          PHP-Code:
                          var_dump(0==false); // true
                          var_dump(0===false); //false 

                          Kommentar


                          • #28
                            man, reg dich ab!
                            ok! ich gebe ruhe!
                            Wir werden alle sterben

                            Kommentar

                            Lädt...
                            X