Vz7: Fatal error: Cannot redeclare resizeimage() previously declared

Hallo Leute.

Ich möchte eine Funktion mehrmals in meine Page einbinden.
Leider erhalte ich beim 2. versuch diese fehlermeldung:

Fatal error: Cannot redeclare resizeimage() (previously declared in C:\xampp\htdocs\iuu\upload\isp_image_resize_func.php:46) in C:\xampp\htdocs\iuu\upload\isp_image_resize_func.php on line 189

Ich verwende einen require um auf diese funktion zuzugreifen: <?php require('isp_image_resize.php'); ?>

Wie kann ich die Funktion mehr als einmal einbinden?

Gruss
Vz7

  1. Hello,

    Wie kann ich die Funktion mehr als einmal einbinden?

    gar nicht! Es ist eine Funktion, ein Stück ausgelagerten Codes - warum würdest du es mehrfach einbinden wollen? Binde es einmal ein und rufe es einfach zwei Mal auf!
    Falls dein Wunsch nur falsch ausgedrückt war und du lediglich Opfer einer unübersichtlichen Seitenstruktur geworden bist, dann besteht noch die Möglichkeit require_once() zu nutzen.

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Whatever you do, don't congratulate yourself too much, or berate yourself either. Your choices are half chance. So are everybody else's.  --  Mary Schmich (Chicago Tribune; 1997); Baz Luhrmann (1999), see http://en.wikipedia.org/wiki/Wear_Sunscreen
    1. gar nicht! Es ist eine Funktion, ein Stück ausgelagerten Codes - warum würdest du es mehrfach einbinden wollen? Binde es einmal ein und rufe es einfach zwei Mal auf!

      Wie kann ich den Code zwei Mal aufrufen?

      1. hi,

        Wie kann ich den Code zwei Mal aufrufen?

        Wie rufst du ihn denn beim ersten mal auf?

        mfg

        --
        マルコム ベック`秒 エイリアス エJ Ñ - ĜわたしÑ
        1. Wie rufst du ihn denn beim ersten mal auf?

          So:~~~php <?php require('isp_image_resize.php'); ?>

            
          Wenn ich das 2 Mal reinschreibe erhalte ich die Fehlermeldung.
          
          1. hi,

            Wie rufst du ihn denn beim ersten mal auf?

            So:~~~php

            <?php require('isp_image_resize.php'); ?>

              
            [Require](http://us2.php.net/manual/en/function.require.php) ist kein Funktions-aufruf -- um Zukünftig fehler wie diese abzufangen, verwende vorzugsweise  
            `require_once 'isp_image_resize.php';`{:.language-php}  
              
            
            > Wenn ich das 2 Mal reinschreibe erhalte ich die Fehlermeldung.  
              
            Mit require bindest du eine Ressource in die Seite ein -- ob in dieser eine Funktion steht oder nicht, spielt erst mal keine Rolle.  
              
            Wie sieht denn der Inhalt von 'isp\_image\_resize.php' aus?  
              
            mfg
            
            -- 
            マルコム ベック`秒 エイリアス エJ Ñ - ĜわたしÑ
            
            1. Wie sieht denn der Inhalt von 'isp_image_resize.php' aus?

              Ist ziemlich lang. Die Datei greift auch noch auf eine weitere Datei zu. 'isp_image_resize_func', welche die Fehlermeldung überhaupt verursacht.

              Das hier ist 'isp_image_resize.php':

              <?php
              
              // Query, if configuration file exists
              if(!file_exists("upload/config_isp_image_resize.php")) {
              echo "config_isp_image_resize ist nicht vorhanden.";
              echo "config_isp_image_resize does not exist.";
              exit();
              }
              
              // Query, if  funktion file exists
              if(!file_exists("upload/isp_image_resize_func.php")) {
              echo "Resizefunktion isp_image_resize_func.php ist nicht vorhanden.";
              echo " function does not exist.";
              exit();
              }
              
              require("upload/config_isp_image_resize.php"); 	// Configuration file loading
              require("upload/isp_image_resize_func.php"); 	// Resize function file loading
              
              if ($lang == "de" or $lang == "") {require("upload/lang_de.php");}
              if ($lang == "en" or $lang == "") {require("upload/lang_en.php");}
              
              // Action query - required for global off register
              if(isset($HTTP_POST_VARS['action'])) {$action = $HTTP_POST_VARS['action']; }
              if(isset($HTTP_GET_VARS['action'])) {$action = $HTTP_GET_VARS['action']; }
              
              if(!isset($action) or $action == "") $action = "isp_resize_form";
              
              // Permitted filetype identify and output in the form
              if(count($allowedfiletype) > 1) {
              $msg = "$txt_dateitypen";
              $msg .= implode(', ', $allowedfiletype);
              }
              elseif  (count($allowedfiletype) == 1) $action = "isp_resize_form";
              
              // Check upload dir, if not create
              if (is_dir($uploaddir)) {}
              else {mkdir ($uploaddir);}
              
              
              //----------------------------------------------------------------------------------------
              // Check image upload and
              //
              if($action == "isp_image_upload_check") {
              $error = "";
              $ok = 1;
              
              if($_FILES['image']['error'] == 1 and $ok == 1) {
              $ok = 0;
              $error = "$txt_error_1";
              }
              
              if($_FILES['image']['error'] == 3 and $ok == 1) {
              $ok = 0;
              $error = "$txt_error_3";
              }
              
              if($_FILES['image']['error'] == 4 and $ok == 1) {
              $ok = 0;
              $error = "$txt_error_4";
              }
              
              // check image type
              If ($ok == 1) {
              $filename = $_FILES["image"]["name"]; 	// original image name
              $fileext = explode(".", $filename); 	// From the original image ext. determine
              
              $fileext_1 = $fileext[1]; 				// ext. to reassign
              $fileext_1 = strtolower($fileext_1); 	// for Unix Server
              
              if (!in_array($fileext_1, $allowedfiletype)) {
              
              if(count($allowedfiletype) > 1) {
              $bild_typ = implode(', ', $allowedfiletype);
              }
              elseif (count($allowedfiletype) == 1) $bild_typ = $allowedfiletype[0];
              $ok = 0;
              $error = "$txt_error_file_typ";
              }}
              // end image typ check
              
              // Image File Größe prüfen
              if(filesize($_FILES['image']['tmp_name'])/1024/1024 >= $maxfilesize and $ok == 1) {
              $ok = 0;
              $error = "$txt_error_size";
              }
              // end image typ check
              
              // If ok upload file
              if($ok) {
              
              $image_file_pfad = "{$uploaddir}/{$filename}";
              move_uploaded_file($_FILES['image']['tmp_name'], $image_file_pfad);
              
              // Examine whether the image in the size needs to be changed
              $size = @GetImageSize($image_file_pfad);
              $width = $size[0];
              $height = $size[1];
              $value = true;
              
              // Maybe call  function
              if($width <> $uploadMaxWidth || $height <> $uploadMaxHeight){$value = ResizeImage($image_file_pfad, $image_file_pfad, $uploadMaxWidth, $uploadMaxHeight);}
              
              // Return value of the  function query
              If ($value == true) {
              $hinweis = "$txt_hinweis_1";
              $action = "isp_resize_form";
              } else {
              unlink($image_file_pfad);
              $hinweis .= "$txt_hinweis_2";
              $action = "isp_resize_form";
              }
              } else {
              $action = "isp_resize_form";
              }}
              
              
              
              //----------------------------------------------------------------------------------------
              // ISP image  form
              //
              if($action == "isp_resize_form") {
              
              if ($uploaddir == "" or $filename == "") $outimage = "";
              else $outimage = "<img src=\"$uploaddir/$filename\" border=\"0\">";
              
              // Output Form
              echo "
              <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd\">
              <html>
              <head>
              <title>ISP image upload and  PHP script</title>
              <meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
              <meta name=\"description\" content=\"Image upload and  PHP script - Bild bzw. Image Resize PHP Programm, Bildgröße mit PHP verändern\">
              <meta name=\"publisher\" content=\"ISP www.neusser-marktplatz.de\">
              <link href=\"isp_resize.css\" rel=\"stylesheet\" type=\"text/css\">
              </head>
              
              <body>
              <div id=\"content\">
              <table cellspacing=\"1\" cellpadding=\"0\" style=\"border: 1px solid #c0c0c0;\">
              <tr><td class=\"red\">$error</td></tr>
              <tr><td class=\"hinweis\">$hinweis</td></tr>
              <tr><td>$txt_form_1 $maxfilesize MB</td></tr>
              <tr><td>$msg</td></tr>
              <form action=\"isp_image_resize.php\" enctype=\"multipart/form-data\" method=\"post\" class=\"form\">
              <tr><td><input type=\"file\" name=\"image\" size=\"60\" class=\"formular\"></td></tr>
              <tr><td>&nbsp;</td></tr>
              <tr><td align=\"center\"><input type=\"submit\" name=\"submit\" value=\"$txt_form_2\" class=\"submit\"> </td></tr>
              <input type=\"hidden\" name=\"action\" value=\"isp_image_upload_check\">
              </form>
              <tr><td>&nbsp;</td></tr>
              </table>
              <p>&nbsp;</p>
              $outimage
              </div>
              </body></html>";
              }
              ?>
              

              Und das ist die func:

              
              function ResizeImage($old_image_name, $new_image_name, $new_image_x_size, $new_image_y_size) {
              // $old_image_name = orginal Image Name
              // $new_image_name  = saved Image Name
              // $new_image_x_size  = new x size
              // $new_image_y_size  = new y size
              
              global $image_prop;
              
              // what version of GDLIB is installed on the server
              if(@imagecreatetruecolor(1,1)) $GDLIB_VERS = 2;
              else $GDLIB_VERS = 1;
              
              // Image load and determine image type
              $file = basename($old_image_name);
              $image_ext = explode(".", $file);
              
              // ------------------------------------------------------------------------
              // GIF image load and resize
              if($image_ext[1] == "gif" || $image_ext[1] == "GIF") {
              
              if(function_exists ("ImageCreateFromGIF")) {
              $imgA = ImageCreateFromGIF ($old_image_name);
              
              // height and width recalculate
              $org_x = ImageSX($imgA);
              $org_y = ImageSY($imgA);
              
              if($org_x >= $org_y && $image_prop == "ja") {
              $new_image_x_size = $new_image_x_size;
              $new_image_y_size = $org_y / ($org_x / $new_image_x_size);
              $new_image_y_size = floor($new_image_y_size);
              }
              
              if($org_x < $org_y && $image_prop == "ja") {
              $new_image_y_size = $new_image_y_size;
              $new_image_x_size = $org_x / ($org_y / $new_image_y_size);
              $new_image_x_size = floor($new_image_x_size);
              }
              // end calculation
              
              // GIF resize
              if($GDLIB_VERS == 2) {
              $imgB = imagecreatetruecolor($new_image_x_size,$new_image_y_size);
              imagecopyresampled($imgB,$imgA,0,0,0,0, $new_image_x_size, $new_image_y_size, $org_x ,$org_y);
              } else {
              $imgB = imagecreate($new_image_x_size,$new_image_y_size);
              imagecopyresized($imgB, $imgA,0,0,0,0, $new_image_x_size, $new_image_y_size, $org_x ,$org_y);
              }
              if($imgB) imagegif($imgB, $new_image_name);
              
              } else {
              return false;
              } // end function_exists
              } // end image typ GIF and resize
              
              
              
              // ------------------------------------------------------------------------
              // JPG image load and resize
              if($image_ext[1] == "jpg" || $image_ext[1] == "jpeg" || $image_ext[1] == "JPG" || $image_ext[1] == "JPEG") {
              
              if(function_exists ("ImageCreateFromJPEG")) {
              $imgA = ImageCreateFromJPEG ($old_image_name);
              
              // height and width recalculate
              $org_x = ImageSX($imgA);
              $org_y = ImageSY($imgA);
              
              if($org_x >= $org_y && $image_prop == "ja") {
              $new_image_x_size = $new_image_x_size;
              $new_image_y_size = $org_y / ($org_x / $new_image_x_size);
              $new_image_y_size = floor($new_image_y_size);
              }
              
              if($org_x < $org_y && $image_prop == "ja") {
              $new_image_y_size = $new_image_y_size;
              $new_image_x_size = $org_x / ($org_y / $new_image_y_size);
              $new_image_x_size = floor($new_image_x_size);
              }
              // end calculation
              
              // JPG resize
              $quality = 100;
              if($GDLIB_VERS == 2) {
              $imgB = imagecreatetruecolor($new_image_x_size,$new_image_y_size);
              imagecopyresampled($imgB, $imgA,0,0,0,0, $new_image_x_size, $new_image_y_size, $org_x ,$org_y);
              } else {
              $imgB = imagecreate($new_image_x_size,$new_image_y_size);
              imagecopyresized($imgB, $imgA,0,0,0,0, $new_image_x_size, $new_image_y_size, $org_x ,$org_y);
              }
              imagejpeg($imgB, $new_image_name, $quality);
              
              } else {
              return false;
              } // end function_exists
              } // end image typ JPG and resize
              
              
              
              // ------------------------------------------------------------------------
              // PNG image load and resize
              if($image_ext[1] == "png" || $image_ext[1] == "PNG") {
              
              if(function_exists ("ImageCreateFromPNG")) {
              $imgA = ImageCreateFromPNG ($old_image_name);
              
              // height and width recalculate
              $org_x = ImageSX($imgA);
              $org_y = ImageSY($imgA);
              
              if($org_x >= $org_y && $image_prop == "ja") {
              $new_image_x_size = $new_image_x_size;
              $new_image_y_size = $org_y / ($org_x / $new_image_x_size);
              $new_image_y_size = floor($new_image_y_size);
              }
              
              if($org_x < $org_y && $image_prop == "ja") {
              $new_image_y_size = $new_image_y_size;
              $new_image_x_size = $org_x / ($org_y / $new_image_y_size);
              $new_image_x_size = floor($new_image_x_size);
              }
              // end calculation
              
              // PNG resize
              if($GDLIB_VERS == 2) {
              $imgB = imagecreatetruecolor($new_image_x_size,$new_image_y_size);
              imagecopyresampled($imgB, $imgA,0,0,0,0, $new_image_x_size, $new_image_y_size, $org_x ,$org_y);
              } else {
              $imgB = imagecreate($new_image_x_size,$new_image_y_size);
              imagecopyresized($imgB, $imgA,0,0,0,0, $new_image_x_size, $new_image_y_size, $org_x ,$org_y);
              }
              imagepng($imgB, $new_image_name);
              
              } else {
              return false;
              } // end function_exists
              } // end image typ PNG and resize
              
              // If image typ not available, send false
              if(!$imgA) {return false;}
              
              // If ok send true
              return true;
              }
              ?>
              
              
              1. Hallo Vz7,

                ach Du Armer! Das Script wirkt auf mit antiquiert, nutzt es doch $HTTP_POST_VARS['action']. Das bei einem file upload $HTTP_GET_VARS['action'] abzufragen sei, zeugt von "etwas" eigenwilliger Programmlogik. Wenn ich raten darf, etwas anderes bleibt mir leider auch nicht übrig, verwendest Du eine aus dem Internet gefundene Scriptsammlung, die file uploads speziell für Grafikformate bereitstellt, hast aber von PHP und HTML keine Ahnung?

                Nun denn:

                Ist ziemlich lang. Die Datei greift auch noch auf eine weitere Datei zu. 'isp_image_resize_func', welche die Fehlermeldung überhaupt verursacht.

                Ja, aber nicht nur "upload/isp_image_resize_func.php" wird eingebunden. Da liegt das eigentliche Problem, warum es hier auf die Schnelle leider keine Hilfe geben kann.
                Du willst Mercedes fahren, hast aber die Mittel nur für ein Fahrrad.

                Der schnellst Weg für Dich, ist meiner Ansicht nach eine Suchmaschine Deiner Wahl nach anderen Scripten zu quälen, bist Du ein funktionstüchtiges hast. Andernfalls müsstest Du mal langsam Tacheles schreiben, was Du genau bewerkstelligen willst, welche PHP-Version Du verwendest, wie Dein Wissensstand bezüglich PHP und HTML ist.

                Gruß aus Berlin!
                eddi

                --
                Wenn der Weg zur Hölle mit guten Vorsätzen gepflastert ist, wäre der zum Himmel aus bösen Absichten betoniert. Was aber ist dann ein Weg voller Irrtümern?
                Wer weiß - vielleicht der Mittelweg. ;)
                1. was Du genau bewerkstelligen willst, welche PHP-Version Du verwendest, wie Dein Wissensstand bezüglich PHP und HTML ist.

                  Wissensstand: In HTML hab ich gute Kenntnisse. Mit PHP und MySQL arbeite ich noch nicht lange, verstehe aber das meiste. Ich weiss nur, dass mein Wissen nicht reicht, um selbstständig ein Bild-Upload zu realisieren.

                  Bewerkstelligen möchte ich folgendes:
                  Auf einer Seite werden verschiedene Checkboxen angezeigt mit verschiedenen Themen. Sobald man auf die Checkbox klickt, erscheint das Formular zum Uploaden eines Bildes zum Thema. Das Funktioniert bereits aber bei der 2. Checkbox taucht anstelle des Formulars die Fehlermeldung auf.

                  1. Hello,

                    Wissensstand: In HTML hab ich gute Kenntnisse. Mit PHP und MySQL arbeite ich noch nicht lange, verstehe aber das meiste. Ich weiss nur, dass mein Wissen nicht reicht, um selbstständig ein Bild-Upload zu realisieren.

                    Das bekommst Du mit etwas Hilfe schon hin:

                    1. Aufgabe:  Schnapp Dir das antiquierte Elaborat und identifiziere darin klar
                                 abgegrenzte Aufgaben. Liste diese Aufgaben hier auf (Überschrift,
                                 Beschreibung, was genau passieren soll)

                    2. Aufgabe:  Mal Dir ein Schema (PAP oder Blockdiagramm, ...), wie diese Aufgaben
                                 zusammenhängen und poste es hier (setze einen Link auf das Bild, dass
                                 Du irgendwo auf einem öffetnlich zugänglichen Server parkst).

                    Für diese Aufgaben werden wir dann schrittweise gemeinsam Funktionen ersinnen
                    Anschließend bauen wir die Aufgaben zusammen

                    Liebe Grüße aus dem schönen Oberharz

                    Tom vom Berg

                    --
                    Nur selber lernen macht schlau
                    http://bergpost.annerschbarrich.de
                      1. Aufgabe:  Schnapp Dir das antiquierte Elaborat und identifiziere darin klar
                                     abgegrenzte Aufgaben. Liste diese Aufgaben hier auf (Überschrift,
                                     Beschreibung, was genau passieren soll)

                      2. Aufgabe:  Mal Dir ein Schema (PAP oder Blockdiagramm, ...), wie diese Aufgaben
                                     zusammenhängen und poste es hier (setze einen Link auf das Bild, dass
                                     Du irgendwo auf einem öffetnlich zugänglichen Server parkst).

                      Alles Klar, klingt gut. Danke :)

                      2 Fragen habe ich noch.

                      • Wo befindet sich dieses antiquierte Elaborat?
                      • Soll ich im Schema auch bereits programmierte Dinge erwähnen wie z.B. den Spoiler, welcher schon wunderbar funktioniert?
                      1. Hello,

                        Alles Klar, klingt gut. Danke :)

                        2 Fragen habe ich noch.

                        • Wo befindet sich dieses antiquierte Elaborat

                        Wie meinst Du das? Du hast das Elaborat doch gepostet, oder war das Dein Doppelgänger? :-)

                        • Soll ich im Schema auch bereits programmierte Dinge erwähnen wie z.B. den Spoiler, welcher schon wunderbar funktioniert?

                        Das bleibt Dir überlassen. Ist ja erstmal eine Übersicht.
                        Die feinere Sichtweise konzentrierst Du dann aber auf das Upload-Script, sonst wirst Du nicht fertig.

                        Liebe Grüße aus dem schönen Oberharz

                        Tom vom Berg

                        --
                        Nur selber lernen macht schlau
                        http://bergpost.annerschbarrich.de
                        1. So.
                          Ich hoffe das entspricht ungefähr dem was du erwartet hast:
                          rapidshare-link
                          Ist das so realisierbar?
                          Muss ich das ganze noch ergänzen?

                          1. So.
                            Ich hoffe das entspricht ungefähr dem was du erwartet hast:
                            rapidshare-link
                            Ist das so realisierbar?
                            Muss ich das ganze noch ergänzen?

                            ?

                            1. Hallo Vz7,

                              stelle bitte Deine Überlegungen unkomprimiert (als Text und nicht als MS-Doc) auf einem Webspace vor! Free web space gibt es wie Sand am Mehr.

                              Gruß aus Berlin!
                              eddi

                              --
                              Wenn der Weg zur Hölle mit guten Vorsätzen gepflastert ist, wäre der zum Himmel aus bösen Absichten betoniert. Was aber ist dann ein Weg voller Irrtümer?
                              Wer weiß - vielleicht der Mittelweg. ;)
                              1. Keine Lust mich zu registrieren.
                                Vielleicht hilft das:

                                Ablaufschema: Link

                                Anzeigen des Formulars
                                Beschreibung:  Beim Anklicken der Checkbox wird das Formular angezeigt. Wurde bereits ein Bild von diesem Benutzer hochgeladen, soll es oberhalb des Formulars als Thumbnail angezeigt werden.
                                Anderes:  Momentan wird bleibt leider das Häkchen wenn man einen Refresh macht. Das heisst, wenn man das Häkchen wieder wegmacht, wird der Spoiler geöffnet, was eigentlich nicht gewollt ist.

                                Erlaubte Bilder
                                Beschreibung:
                                Das Dateiformat soll png, jpg oder jpeg sein. (Sinnvoll, oder?)
                                Die Grösse soll max. 3MB sein. (Generiert das zu viel Traffic? Zu viel?)
                                Höhe max. 1080 - Breite max. 1920
                                 Nach dem Upload muss ein Tumbnail erstellt werden. (Ist üblich, oder?)
                                Ein zufälliger Name wird generiert, der im Benutzerordner abgespeichert wird.
                                Der Pfad zu diesem Bild sollte in der MySQL DB abgespeichert werden.
                                Anderes:  Wenn das Bild nicht den Vorgaben entsprechen, sollten die Bilder konvertiert werden.

                                1. Re:

                                  Beschreibung:  Beim Anklicken der Checkbox wird das Formular angezeigt.

                                  Warum machst Du das mit einer Checkbox? Wäre nicht ein Link für die meisten Nutzer sinnvoller, da dieser eher mit einer Aktion assoziiert wird? Ein Beispiel: http://spreeathener.bplaced.net/projekte/http_check/default.php

                                  Wurde bereits ein Bild von diesem Benutzer hochgeladen, soll es oberhalb des Formulars als Thumbnail angezeigt werden.

                                  Dazu muss man den User eindeutig wiedererkennen. Das Stichwort dazu heißt Session. (Gibt es dazu Probleme?)

                                  Dein Diagramm ist für mich wenig Aussagekräftig. Einsehbare Versuche im Internet, also das Formular wären hilfreicher und könnten mir verdeutlichen, was Du mit einem Spoiler meinst...

                                  Gruß aus Berlin!
                                  eddi

                                  --
                                  Wenn der Weg zur Hölle mit guten Vorsätzen gepflastert ist, wäre der zum Himmel aus bösen Absichten betoniert. Was aber ist dann ein Weg voller Irrtümer?
                                  Wer weiß - vielleicht der Mittelweg. ;)