fehlerhafte IF bei PHP 5.2.0

Alles, was PHP betrifft, kann hier besprochen werden.

fehlerhafte IF bei PHP 5.2.0

Postby ThomasBauer » 18. December 2006 08:51

Ich hatte bisher PHP 5.1.6 auf meinem Rechner. Heute habe ich XAMPP 1.5.5 mit PHP 5.2.0 installiert. Nun funkioniert eine IF-Abfrage plötzlich nicht mehr:

Die HTML-Datei:
Code: Select all
 1   <?php
 2   // Directory-Link zum obersten Level
 3   $dirTop = "../../";
 4   // benoetigte PHP-Libraries
 5   require_once $dirTop."php/config.inc";
 6   require_once $phpTools;
 7   // Menu erstellen
 8   $xmlMenu = simplexml_load_file($fileMenu);
 9   // Zugriffsrechte laden
10   $xmlAdmin = simplexml_load_file($fileAccess);
11   ?>
12   <head>
13   <link rel="stylesheet" href="<?=$dirTop?>styles/menu.css" type="text/css" media="all">
14   <script language="JavaScript" src="<?=$dirTop?>javascript/anzeigen.js" type="text/javascript"></script>
15   </head>
16   <body class="menu">
17   
18   <div class="MenuListe">
19      <ul id="MenuPoint">
20         <li><a target="_top" href="<?=$dirTop?>index.htm">CVJM Steinheim</a></li>
21         <li><a target="haupt" href="center.php">Verwaltung</a></li>
22      </ul>
23   </div>
24   
25   <div class="MenuListe">&nbsp;</div>
26   
27   
28   <!-- Verwaltungscenter-Menu -->
29   <div class="MenuListe">
30      <ul id="MenuPoint">
31         <?php foreach($xmlMenu->menupoint as $daten): ?>
32            <!-- Hauptmenuepunkt -->
33            <!-- User bzgl. Rechte fuer Menuepunkt pruefen und danach ausgeben -->
34            <?php if(CheckRechte($daten->recht,$_SERVER['REMOTE_USER'])): ?>
35               <li><a target="haupt" href="<?=$daten->aktion?>"><?=utf8_decode($daten->name)?></a></li>
36               <!-- Untermenuepunkt -->
37               <?php if($daten->submenu): ?>
38                  <?php foreach($daten->submenu as $subdaten): ?>
39                     <!-- User bzgl. Rechte fuer Menuepunkt pruefen und danach ausgeben -->
40                     <?php if(CheckRechte($subdaten->recht,$_SERVER['REMOTE_USER'])): ?>
41                        <li><a class="submenu" target="haupt" href="<?=$subdaten->aktion?>"><?=utf8_decode($subdaten->name)?></a></li>
42                     <?php endif; ?>
43                  <?php endforeach; ?>
44               <?php endif; ?>
45            <?php endif; ?>
46         <?php endforeach; ?>
47      </ul>
48   </div>
49   </p>
50   
51   </body>
52   </html>


In Zeile 34 rufe ich die Funktion CheckRechte() auf:
Code: Select all
 1   function CheckRechte($strMenu,$strUser) {
 2      // globale Variablen
 3      global $xmlAdmin;
 4   
 5      $flagAccess = False;
 6      // pruefen, ob User in Zugriffsliste eingetragen ist
 7      if($listUser=$xmlAdmin->xpath("//user[remote_id='".$strUser."']")) {
 8         // Adminstrator
 9         if($listUser[0]->rechte->administrator)
10             $flagAccess = True;
11         // nomaler User
12         else {
13            foreach($listUser[0]->rechte->recht as $Rechte) {
14               if($Rechte==$strMenu)
15                  $flagAccess = True;
16            }
17         }
18      }
19      // Berechtigugn zureuckgeben
20      return $flagAccess;
21   }


In Zeile 14 ist die IF-Abfrage, die seit PHP 5.2.0 nicht mehr funktioniert. Bei einer Überprüfung der Funktion durch Ausgabe der beiden Werte (echo "*".$Rechte."/".$strMenu."*<br>"), die bei der IF-Abfrage verwendet werden, gab es z.B. die Ausgabe: *nachrichten/nachrichten*. Somit sind nach meinem Verständnis beide Werte identisch, was ja auch durch Funktionieren der Abfrage in PHP 1.5.6 bestätigt wird. In PHP 5.2.0. komme ich jedoch nie in den True-Zweig der IF-Abfrage (Zeile 15). Kann jemand erklären, was in PHP 5.2.0 anders ist, das die Abfrage zu einem Ungleich führt.
ThomasBauer
 
Posts: 25
Joined: 08. November 2005 16:34

Postby ThomasBauer » 03. January 2007 10:37

Hallo zusammen und ein gutes Neues Jahr allen.

Weiß wirklich keiner eine Lösung zu meinem Problem. Ich kann beim besten Willen nicht verstehen, dass eine IF-Abfrage in PHP 5.1.6 funktioniert und mit PHP 5.2.0 nicht mehr.
ThomasBauer
 
Posts: 25
Joined: 08. November 2005 16:34


Return to PHP

Who is online

Users browsing this forum: No registered users and 49 guests