Cannot redeclare function()

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

  • Cannot redeclare function()

    hallo,

    ich hab eine funktion geschrieben, die mir hochgeladene dateien zuerst auf vorhandensein prüft, und falls vorhanden eine funktion aufruft, die diese dann umbenennt, aufm server speichert, und eine url zur datei in ne datenbank schreibt, so weit so gut, wenn ich jetzt allerdings mehrere dateien übergebe, kommt immer diese fehlermeldung:

    Cannot redeclare rename_file() (previously declared in I:\xampplite\htdocs\J4f_Website\inc\adminfunctions.inc.php:920) in I:\xampplite\htdocs\J4f_Website\inc\adminfunctions.inc.php on line 920

    was ich aber nicht verstehe, denn ich binde diese funktion vorher ein, sie befindet sich in adminfunktions.inc.php, und wird dann in das prüfende script eingebunden:
    PHP-Code:
     include('../inc/base.inc.php');
     include(
    '../inc/adminfunctions.inc.php');
     include(
    '../inc/login.inc.php');

     
    hier die ganzen benutzereingaben die per post übertragen werden
    (würde hier stehenlass ich weg weil nicht relevant)

    for(
    $i 0$_FILES['previewImg'.$i]['tmp_name'] == true$i++)
            {
                
    $dst 'gallery/insert';
                
    $picture 'previewImg'.$i;
                
    $rename 'memberpreviewImg';
                
    uploaded_file_memberinsert($dst,$uidname,$picture,$rename);
            }
          for(
    $i 0$_FIlES['previewTuning'.$i]['tmp_name'] == true$i++)
            {
                
    $dst 'gallery/insert';
                
    $picture 'previewTuning'.$i;
                
    $rename 'memberpreviewTuning';
                
    uploaded_file_memberinsert($dst,$uidname,$picture,$rename);
            }
          for(
    $i 0$_FILES['picture'.$i]['tmp_name'] == true$i++)
            {
                
    $dst 'gallery/insert';
                
    $picture 'picture'.$i;
                
    $rename 'memberpicture';
                
    uploaded_file_memberinsert($dst,$uidname,$picture,$rename);
            } 
    hier die funktion uploaded_file_memberinsert() die in adminfunktions definiert wurde:

    PHP-Code:
    function uploaded_file_memberinsert($dst,$id,$picture,$rename)
        {
            function 
    rename_file($dst,$id,$picture,$rename,$i 0)
            {
                
    $string explode(".",$_FILES[$picture]['name']);
                
    $string str_replace($string[0],$rename.''.$i,$string);
                
    $newfilename implode(".",$string);
                
    $_FILES[$picture]['name'] = $newfilename;
                
    $tstring "../img/upedimages/$newfilename";
                if(
    file_exists($tstring))
                {
                    
    $i++;
                    return 
    rename_file($dst,$id,$picture,$rename,$i);
                }
                else
                {
                    if(
    move_uploaded_file($_FILES[$picture]['tmp_name'],$tstring))
                    {
                        
    $string str_replace('../','',$tstring);
                        
    $url 'test'.$string;
                        switch(
    $dst)
                        {
                            case 
    'gallery/insert':
                                
    $sql "INSERT INTO uped_img (url,uid,rel,visible) VALUES ('$url','$id','$rename','1')";
                                break;
                            case 
    'gallery/update':
                                
    $sql "UPDATE uped_img SET url = '$url' WHERE uid = '$id'";
                                break;
                            case 
    'gallery/del':
                                
    $sql "";
                                break;
                        }        
                        
    //die("$dst<br />$newfilename<br />$id<br />$picture<br />$i");
                        
    include('../inc/database.inc.php');
                        
    mysql_connect($db['host'],$db['uid'],$db['pwd']);
                        
    mysql_select_db($db['db']);
                        
    $result mysql_query($sql);
                        
    mysql_close();
                    }
                    else
                    {
                        return 
    false;
                    }
                }
            }
            
    rename_file($dst,$id,$picture,$rename);
        } 
    ich verstehe einfach nicht wiso diese fehlermeldung auftritt!
    hoffentlich kann mir jemand weiterhelfen.

  • #2
    Du inkludierst 2mal die Datei adminfunctions.inc.php. include_once sollte Abhilfe schaffen.

    Kommentar


    • #3
      hmm, also ich includiere adminfunctions nur einmal, in dieser datei ist die funktion uploaded_file_memberinsert() definiert.

      ich habs dennoch versucht mit include_once, hat nicht geholfen.

      Kommentar


      • #4
        PHP lügt nicht.

        Schau nach, wo die Datei noch inkludiert wird.

        Kommentar


        • #5
          Das ist der code der gesammten datei die auf vorhandensein prüft und gegebenenfalls die funktion zur sicherung und umbenennung in adminfunctions.inc.php aufruft. in adminfunktions selbst wurden wie der name schon erahnen lässt nur funktionen deklariert, außerhalb dieser funktionen wird nichts eingebunden.

          und wie du selbst sehen kanns, wird die datei hier nur einmal am anfang des scriptes eingebunden:
          PHP-Code:
          <?php
            
          /* Konfigurationsdateien laden */
            
          include_once('../inc/base.inc.php');
            include_once(
          '../inc/adminfunctions.inc.php');
            include_once(
          '../inc/login.inc.php');

              
          /* Überprüfen ob Login erfolgt ist, ggf. Anmeldemöglichkeit bieten */
              
          if(is_logged_in())
              {
                  
          //$_FILES['imgUrlPerson']['tmp_name'] == false ? $urlImgPerson = $_POST['urlImgPerson']['tmp_name'] : $urlImgPerson = '';
                  //$_FILES['imgUrlCar']['tmp_name'] == false ? $urlImgCar = $_POST['urlImgCar'] : $urlImgCar = '';
                  
                  
          $id $_POST['id'];
                  
          $visible $_POST['visible'];
                  
                  
          $name $_POST['name'];
                  
          $birthday $_POST['birthday'];
                  
          $hobbys $_POST['hobbys'];
                  
          $status $_POST['status'];
                  
          $memberSince $_POST['memberSince'];
                  
          $job $_POST['job'];
                  
          $city $_POST['city'];
                  
          $previousCars $_POST['previousCars'];
                  
                  
          $brand $_POST['brand'];
                  
          $build $_POST['build'];
                  
          $color $_POST['color'];
                  
          $hp $_POST['hp'];
                  
          $additions $_POST['additions'];
                  
                  
          $engine $_POST['engine'];
                  
          $outside $_POST['outside'];
                  
          $inside $_POST['inside'];
                  
          $hifi $_POST['hifi'];
                  
              include(
          '../inc/database.inc.php');
              
          $connection mysql_connect($db['host'],$db['uid'],$db['pwd']);
              if(
          $connection)
              {
                
          mysql_select_db($db['db']);
                
                
          $sql "INSERT INTO member_person (name,birthday,hobbys,status,memberSince,job,city,previousCars,visible) VALUES ('$name','$birthday','$hobbys','$status','$memberSince','$job','$city','$previousCars',$visible)";
                
          mysql_query($sql);
                
                
          $sql "SELECT id FROM member_person WHERE member_person.name = '$name' AND member_person.birthday = '$birthday'";
                
          $urslt mysql_query($sql);
                
          $uid mysql_fetch_object($urslt);
                
                
          $sql "INSERT INTO member_car (uid,brand,build,color,hp,additions,visible) VALUES ('$uid->id','$brand','$build','$color','$hp','$additions',$visible)";
                
          mysql_query($sql);
                
                
          $sql "INSERT INTO member_tuning (uid,engine,outside,inside,hifi,visible) VALUES ('$uid->id','$engine','$outside','$inside','$hifi',$visible)";
                
          $result mysql_query($sql);
                
                
          $uidname "$uid->id";
                for(
          $i 0$_FILES['previewImg'.$i]['tmp_name'] == true$i++)
                  {
                      
          $dst 'gallery/insert';
                      
          $picture 'previewImg'.$i;
                      
          $rename 'memberpreviewImg';
                      
          uploaded_file_memberinsert($dst,$uidname,$picture,$rename);
                  }
                for(
          $i 0$_FIlES['previewTuning'.$i]['tmp_name'] == true$i++)
                  {
                      
          $dst 'gallery/insert';
                      
          $picture 'previewTuning'.$i;
                      
          $rename 'memberpreviewTuning';
                      
          uploaded_file_memberinsert($dst,$uidname,$picture,$rename);
                  }
                for(
          $i 0$_FILES['picture'.$i]['tmp_name'] == true$i++)
                  {
                      
          $dst 'gallery/insert';
                      
          $picture 'picture'.$i;
                      
          $rename 'memberpicture';
                      
          uploaded_file_memberinsert($dst,$uidname,$picture,$rename);
                  }
                      
          ?>
                      <script type="text/javascript">
                      location.href = 'index.php?cmd=members'; 
                      </script>
                      <?php
                      
          //header('Location: index.php?cmd=members');
              
          }
              }
          ?>

          Kommentar


          • #6
            ruf doch mal bitte die adminfunctions.inc.php direkt auf. Was passiert?

            Kommentar


            • #7
              da kommt wie erwartet und wie es soll eine leere html seite bei raus

              Kommentar


              • #8
                In base.inc.php, login.inc.php und database.inc.php wird auch keine adminfunctions.inc.php inkludiert?

                Kommentar


                • #9
                  Hast du in den anderen irgendwo die admin-datei nochmal includiert?

                  ansonsten solltest du mal debuggen. (einzelne includes ausschließen)

                  Wenn das alles nicht hilft, solltest du mal alle 4 Dateien (ggf. als Anhang) hier posten.

                  Kommentar


                  • #10
                    nö fix nicht, ich lad ma die dateien hoch

                    Kommentar


                    • #11
                      im anhang findet ihr den gesammten code, dieser code hier ist von der datei die den upload verarbeitet:


                      PHP-Code:
                      <?php
                        
                      /* Konfigurationsdateien laden */
                        
                      include_once('../inc/base.inc.php');
                        include_once(
                      '../inc/adminfunctions.inc.php');
                        include_once(
                      '../inc/login.inc.php');

                          
                      /* Überprüfen ob Login erfolgt ist, ggf. Anmeldemöglichkeit bieten */
                          
                      if(is_logged_in())
                          {
                              
                      //$_FILES['imgUrlPerson']['tmp_name'] == false ? $urlImgPerson = $_POST['urlImgPerson']['tmp_name'] : $urlImgPerson = '';
                              //$_FILES['imgUrlCar']['tmp_name'] == false ? $urlImgCar = $_POST['urlImgCar'] : $urlImgCar = '';
                              
                              
                      $id $_POST['id'];
                              
                      $visible $_POST['visible'];
                              
                              
                      $name $_POST['name'];
                              
                      $birthday $_POST['birthday'];
                              
                      $hobbys $_POST['hobbys'];
                              
                      $status $_POST['status'];
                              
                      $memberSince $_POST['memberSince'];
                              
                      $job $_POST['job'];
                              
                      $city $_POST['city'];
                              
                      $previousCars $_POST['previousCars'];
                              
                              
                      $brand $_POST['brand'];
                              
                      $build $_POST['build'];
                              
                      $color $_POST['color'];
                              
                      $hp $_POST['hp'];
                              
                      $additions $_POST['additions'];
                              
                              
                      $engine $_POST['engine'];
                              
                      $outside $_POST['outside'];
                              
                      $inside $_POST['inside'];
                              
                      $hifi $_POST['hifi'];
                              
                          include(
                      '../inc/database.inc.php');
                          
                      $connection mysql_connect($db['host'],$db['uid'],$db['pwd']);
                          if(
                      $connection)
                          {
                            
                      mysql_select_db($db['db']);
                            
                            
                      $sql "INSERT INTO member_person (name,birthday,hobbys,status,memberSince,job,city,previousCars,visible) VALUES ('$name','$birthday','$hobbys','$status','$memberSince','$job','$city','$previousCars',$visible)";
                            
                      mysql_query($sql);
                            
                            
                      $sql "SELECT id FROM member_person WHERE member_person.name = '$name' AND member_person.birthday = '$birthday'";
                            
                      $urslt mysql_query($sql);
                            
                      $uid mysql_fetch_object($urslt);
                            
                            
                      $sql "INSERT INTO member_car (uid,brand,build,color,hp,additions,visible) VALUES ('$uid->id','$brand','$build','$color','$hp','$additions',$visible)";
                            
                      mysql_query($sql);
                            
                            
                      $sql "INSERT INTO member_tuning (uid,engine,outside,inside,hifi,visible) VALUES ('$uid->id','$engine','$outside','$inside','$hifi',$visible)";
                            
                      $result mysql_query($sql);
                            
                            
                      $uidname "$uid->id";
                            for(
                      $i 0$_FILES['previewImg'.$i]['tmp_name'] == true$i++)
                              {
                                  
                      $dst 'gallery/insert';
                                  
                      $picture 'previewImg'.$i;
                                  
                      $rename 'memberpreviewImg';
                                  
                      uploaded_file_memberinsert($dst,$uidname,$picture,$rename);
                              }
                            for(
                      $i 0$_FIlES['previewTuning'.$i]['tmp_name'] == true$i++)
                              {
                                  
                      $dst 'gallery/insert';
                                  
                      $picture 'previewTuning'.$i;
                                  
                      $rename 'memberpreviewTuning';
                                  
                      uploaded_file_memberinsert($dst,$uidname,$picture,$rename);
                              }
                            for(
                      $i 0$_FILES['picture'.$i]['tmp_name'] == true$i++)
                              {
                                  
                      $dst 'gallery/insert';
                                  
                      $picture 'picture'.$i;
                                  
                      $rename 'memberpicture';
                                  
                      uploaded_file_memberinsert($dst,$uidname,$picture,$rename);
                              }
                                  
                      ?>
                                  <script type="text/javascript">
                                  location.href = 'index.php?cmd=members'; 
                                  </script>
                                  <?php
                                  
                      //header('Location: index.php?cmd=members');
                          
                      }
                          }
                      ?>
                      Angehängte Dateien
                      Zuletzt geändert von MegaPixel; 08.06.2008, 21:37.

                      Kommentar


                      • #12
                        die adminfunctions kann ich nicht hochladen, da ist zu viel vertrauliches drin, aber ich kann schwören, dass ich da wenn ich was includiere, dies nur in den jeweiligen funktionen tue.
                        Dann versuch bitte mit der Suchenfunktion deines Editors auf den Fehler zu kommen.

                        Die Datenbank.inc verschweigst du auch?

                        Es steht hier Aussage gegen Aussage (PHP gegen User). Und glaub mir, idR. sollte man - besonders als Außenstehender - hier der PHP-Seite glauben. Im zweifel für den Angeklagten.

                        Kommentar


                        • #13
                          wenns dir darum geht, ich hab zur probe die funktion uploaded_file_memberinsert() aus der adminfunktions rausgenommen, und direkt in das verarbeitende script hinzugefügt, da kommt der selbe fehler.

                          aja verzeihung, hier der inhalt der database.inc

                          <?php
                          $db['db'] = 'j4f';
                          $db['host'] = 'localhost';
                          $db['uid'] = 'root';
                          $db['pwd'] = '';
                          ?>

                          ihr verfügt nun bereits über den gesammten code den dieses prozedere benötigt, bzw einbindet.
                          Zuletzt geändert von MegaPixel; 08.06.2008, 21:43.

                          Kommentar


                          • #14
                            wenns dir darum geht, ich hab zur probe die funktion uploaded_file_memberinsert() aus der adminfunktions rausgenommen, und direkt in das verarbeitende script hinzugefügt, da kommt der selbe fehler.
                            Dann tritt der Fehler auf, BEVOR überhaupt der neu eingefügte Code ausgeführt wird. Ansonsten würdest du nämlich eine leicht abgewandelte Fehlermeldung erhalten.

                            Aber es klappt doch mit dem Debuggen. Nur weiter so.

                            Kommentar


                            • #15
                              Ach ich/du Esel.

                              Du definierst die Funktion "rename_file" IN der Funktion "uploaded_file_memberinsert". Das ist natürlich in erster Linie ziemlich schlechter Stil, apätestens aber, wenn du letztere Funktion ein zweites mal aufrufst, dann wird natürlich auch "rename_file" ein zweites mal versucht zu definieren. Was natürlich nicht geht.

                              Kommentar

                              Lädt...
                              X