include oder was

  1. Steglich

    Steglich Thread Starter MacUser Mitglied

    Mitglied seit:
    30.05.2003
    Beiträge:
    206
    Zustimmungen:
    0
    Auf einer HTML Seite habe ich folgende PHP Zeilen eingebunden:
    PHP:
    <?php
    $thisfile 
    substr(strrchr($_SERVER['PHP_SELF'], '/'), 1);
    include(
    'pmenu.php');
    ?>
    In der pmenu.php Datei wird über simplexml_load_file auf eine XML Datei zugegriffen, in der Seitennammen und die entsprechenden Dateinamen hinterlegt sind. Diese werden in einem Menü als Links ausgegeben. Die Variable thisfile brauche ich, um die Aktuelle Datei im Menü mit den verlinkten Dateien abzugleichen, um den aktuellen Menü Eintrag per CSS hervorzuheben.

    Wenn ich nun auf so einen Link klicke wird auch die entsprechende Seite angesteuert.
    Allerdings wenn ich das dann 4 Mal mit jeweils einer anderen Seite mache wird mir die Datei pmenu.php gar nicht mehr includiert.

    Seltsam ist, dass der Fehler unter Safari gar nicht auftritt, sondern nur unter Firefox 2.0 und IE 6.0.
    Auch bei mir auf dem Server mit PHP 5.1 kein Problem, aber auf dem Kundenserver mit PHP 5.2.
    Also ich weiß jetzt auch nicht mehr weiter :confused:
     
  2. Steglich

    Steglich Thread Starter MacUser Mitglied

    Mitglied seit:
    30.05.2003
    Beiträge:
    206
    Zustimmungen:
    0
    Reload

    Nachdem ich dann zwei Mal Relaod im Browser angeklickt habe, wird mir die Datei wieder includiert. :confused:
     
  3. Jakob

    Jakob MacUser Mitglied

    Mitglied seit:
    05.01.2004
    Beiträge:
    1.067
    Zustimmungen:
    21
    Zweimal neu laden löscht den Cache der Seite und lädt komplett neu. Einfach ein Cache-Problem gewesen.
     
  4. Steglich

    Steglich Thread Starter MacUser Mitglied

    Mitglied seit:
    30.05.2003
    Beiträge:
    206
    Zustimmungen:
    0
    ja aber

    Ja aber ich kann doch meinen Benutzern nicht zumuten, dass wenn das Menü nicht erscheint, die Seite zwei Mal neu zu laden? :rolleyes:
     
  5. Steglich

    Steglich Thread Starter MacUser Mitglied

    Mitglied seit:
    30.05.2003
    Beiträge:
    206
    Zustimmungen:
    0
    Listing

    Hier einmal der Vollständigkeit halber das Listing von pmenu.php:
    PHP:
    <?php
    if ($_GET['t'] !== "") {
        
    $t = (int)$_GET['t'];
    } else {
        
    $t 0;
    }
    /* load xml file */
    if(file_exists("pmenu.xml")) {
        
    $menu simplexml_load_file("pmenu.xml");
    } else {
        echo(
    "Fehler beim Laden der XML Datei");
        exit;
    }

    /* output pruduct menu tabs */
    echo("<div id='tabs'>\n");
    if (
    $t !== 0) {
        
    $counter 1;
        foreach(
    $menu->tab as $tab) {
            if (
    $counter == $t) {
                
    $actualtab $tab;
                
    $selected " class='selected'";
            }
            echo(
    "\t<a href='" $thisfile "?t=" $counter "'" $selected "><div class='tab'>" $tab['name'] . "</div></a>\n");
            
    $selected "";
            
    $counter $counter 1;
        }
    } else {
        
    $counter 1;
        foreach(
    $menu->tab as $tab) {
            foreach(
    $tab->col as $col) {
                foreach(
    $col->group as $group) {
                    foreach(
    $group->entry as $entry) {
                        if (
    $entry->file == $thisfile) {
                            
    $actualtab $tab;
                            
    $selected " class='selected'";
                        } 
                    }
                }
            }
            echo(
    "\t<a href='" $thisfile "?t=" $counter "'" $selected "><div class='tab'>" $tab['name'] . "</div></a>\n");
            
    $selected "";
            
    $counter $counter 1;
        }
    }
    echo(
    "</div> <!-- tabs -->\n");

    /* output products table */
    echo("<div id='pmenu'>\n\t<table>\n\t<tr>\n");
    foreach(
    $actualtab->col as $col) {
        if(
    $col['name'] == "left") {
            echo(
    "\t\t<td class='left'>\n");
        } else {
            echo(
    "\t\t<td class='right'>\n");
        }
        foreach(
    $col->group as $group) {
            echo(
    "\t\t\t<div class='group'>\n");
            echo(
    "\t\t\t\t<h2>" $group['name'] . "</h2>\n");
            foreach(
    $group->entry as $entry) {
                if (
    $entry->file == '') {
                    
    $file "#";
                } else {
                    
    $file $entry->file;
                }
                if (
    $file == $thisfile) {
                    
    $selected " class='selected'>? ";
                } else {
                    
    $selected ">";
                }
                echo(
    "\t\t\t\t\t<p><a href='" $file "'" $selected $entry->name "</a></p>\n");
            }
            echo(
    "\t\t\t</div> <!-- group -->\n");
        }
        echo(
    "\t\t</td>\n");
    }
    echo(
    "\t</tr>\n\t</table>\n</div> <!-- pmenu -->\n");

    ?>
    Wahrscheinlich steckt das Problem oben bei der Passage mit dem simplexml_load_file. Entweder ist der xml Parser so langsam, oder sein Zeiger bleibt hängen, wenn der Server überlastet ist. Keine Ahnung. Auf meinem Server habe ich ja auch keine Probleme.
     
Die Seite wird geladen...