[PHP]Onverklaarbare Redeclare

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Depress
  • Registratie: Mei 2005
  • Laatst online: 18-09 22:29
Ik heb een raar probleem. Ik krijg de volgende error:

Fatal error: Cannot redeclare staticinsert() (previously declared in */httpdocs/NewSite/Core/Static/Static.php:5) in */httpdocs/NewSite/Core/Static/Static.php on line 3

Maar zover ik weer is nergens een redeclare van deze functie.

DIt is het script:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php

    function StaticInsert(){
        
        $tpl = &TemplateParser::getInstance();
        
        $dir = opendir('Core/Static/');
        
        while( ( $file = readdir( $dir ) ) !== false ){
        
            //filename explode voor controle
            $Filename = explode( '.' , $file );
            //controle filename en error uitpoepen bij fout
            if($Filename[1] != 'inc' || $Filename[2] != 'php' || !is_file( 'Core/Modules/'.$file ) ){
                
                if(! is_dir( $file ) ){
                
                    include('Core/Static/'.$file);
                    if(isset($TPL_var,$TPL_content)){
                        $tpl->Assign($TPL_var,$TPL_content);
                        unset($TPL_var,$TPL_var);
                    }
                
                }
                
            }
            
        }
    
    }
    
    StaticInsert(); 

?>


Vink ik regel 5 uit, dan verplaats de redeclare naar regel 7.

Wat gaat er fout, hoe kan ik dit oplossen.

Acties:
  • 0 Henk 'm!

Verwijderd

Waarschijnelijk is de functie al gedeclareerd en wordt deze of de andere file ge-include.

Acties:
  • 0 Henk 'm!

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
Verwijderd schreef op maandag 18 september 2006 @ 10:42:
Waarschijnelijk is de functie al gedeclareerd en wordt deze of de andere file ge-include.
Ja, nota bene in de functie zelf op regel 18 :+

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Ik vermoed dat je Static.php twee keer include. De fout zit iig niet in de door jou geposte code.

@hieronder: Inderdaad, je hebt gelijk. Ik heb de code net ietsje te vluchtig doorgelezen.

[ Voor 32% gewijzigd door Janoz op 18-09-2006 11:26 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
Janoz schreef op maandag 18 september 2006 @ 10:43:
Ik vermoed dat je Static.php twee keer include. De fout zit iig niet in de door jou geposte code.
Volgens mij juist wel. Op regel 7 lijkt iif dezelfde dir te worden geopend als waar dit script in staat. Op regel 18 wordt vervolgens geprobeerd PHP files te skippen, maar daar zit een fout in ($Filename[2] != 'php') == true in geval van "Static.php")

Acties:
  • 0 Henk 'm!

  • Depress
  • Registratie: Mei 2005
  • Laatst online: 18-09 22:29
Het werkt nu.
Heb de IF vervangen voor deze:
PHP:
1
if($Filename[1] == 'inc' && $Filename[2] == 'php'){

En een andere validatie na de if.

Bedankt voor de reacties

Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 18-09 14:42
Tip voor de volgende keer. Print je variabelen naar het scherm. Dan had je zelf al heel snel gezien dat het script zichzelf recursief include.
Pagina: 1