• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Hilfe:Inhalt wird 2mal ausgegeben ! Wieso?

Johnny990

Neues Mitglied
Hallo liebe Community.
Habe ein Problem und finde einfach den Fehler nicht. bin alles schon xmal durchgegangen - ohne Erfolg:

Der Inhalt meiner Seiten wird mir 2 mal ausgegeben. Einmal direkt auf meinem Template und einmal noch unten links irgendwo auf der Seite.

Hier die Dateien:

1) meine index.php die die engine.inc.php lädt

PHP:
<?php
//Einstiegsdatei
require_once('./includes/engine.inc.php');

//Sogar test wird zweimal ausgegeben!
echo "test";
?>
2) meine engine.inc.php die alle Sachen wie Template usw beinhaltet und somit in jeder Datei includet wird. Bis jetzt nur das Layout

PHP:
<?php
//Diese Datei wird in jeder Datei eingebunden und stellt die Grundfunktionalität zur Verfügung

//Skin
require_once ('./includes/layout.inc.php');

?>
3) Meine impressum.php
PHP:
<?php require_once('./includes/engine.inc.php');

echo "HALLLOOOOOOO!!!";

 ?>
4) und natürlich meine layout.inc.php

PHP:
<?php 
require_once('./includes/error_report.inc.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
<meta name="keywords" content="benchmark" />
<meta name="description" content="Beschreibung noch eingeben ..." />
<link href="./css/style.css" rel="stylesheet" type="text/css" />
</head>

<!-- body Beginn-->
<body>
<!--div main Beginn-->
<div id="main">

<!-- div logo und navbar-->
  <div id="logo"><img src="./images/logo.gif" alt="Your Business" border="0"      style="display:block;float:left;" />
  
    <div id="navbar">
    
    <?php 
    
    // if Abfrage legt fest, dass nur Auf Startseite und Impressum Auswahl in der Navbar erfolgen kann
    // (Auswahl während der Umfrage minimieren)
    if ($_GET['section']=='start' || $_GET['section']=='impressum' )
    {
        echo '<ul>';
        echo '<li><a href="index.php?section=start">Home</a></li>';
        echo '<li><a href="impressum.php?section=impressum">Impressum</a></li>';
        echo '</ul>';    
    }          
    ?>
    </div>
    
  </div>
 <!--div logo und navbar Ende--> 
 
  <div id="mainphoto"><img src="http://www.html.de/images/photo-main.jpg" alt="Your Company" /><img src="http://www.html.de/images/statement-main.gif" alt="Business Solutions to fit your personal needs." border="0" /></div>
 
  <!--div main-inner Beginn--> 
  <div id="main-inner">
  
    <!--div main-inner-left Beginn-->
    <div id="main-inner-left">
    
    <?php
/**
     * In einem Array die Inhalte sammeln
     * und mit GET bestimmen welche Datei
     * geladen werden soll/darf
     * */
     
    $section = array();
    $section['start'] = './index.php';
    $section['impressum'] = './impressum.php';
    

if (isset($_GET['section'])) 
    { 
        switch($_GET['section']) 
        { 
        case 'start': include('./index.php'); 
        break; 
        
        case 'impressum': include('./impressum.php');
        break;       
      
        }     
    } 
    else 
    { 
        include('./index.php'); 
    } 


?> 
     
    </div>
    <!--div main-inner-left Ende-->
    
   
    
  </div>
 <!--div main-inner Ende-->
</div> 
<!--div main Ende-->

<div id="footer"> <a href="http://www....de" target="_blank">Name der Firma</a></div>

</body>
</html>
Wie gesagt, allles was normal zwischen <div id="main-inner-left"> und </div> stehen sollte wird mir doppelt ausgegeben. einmal zwischen dem divblock und einmal links unten, ausserhalb des Templates...

Include ich etwas doppelt?

Wenn ja wo?
Ich sehs ned!:(:?::-P

Vielen Dank für jede Hlfe jetzt schon mal!

LG

Mod-Comment: Gewöhnt euch mal an, zu verschiedenen Codes den PASSENDEN Highlighter zu verwenden (XraYSoLo)
 
Zuletzt bearbeitet von einem Moderator:
das fehlt ja ein default-zweig und du brichst die schleife ja gar nicht ab...

grundsätzlich: du mischst zwei programmieranweisungen die jede für sich die aufgabe übernehmen könnten. durch das durcheinanderbenutzen entsteht da wohl ein logischer fehler, liegt aber wohl eher daran, dass du den durchlauf nicht nach dem gewünschten ergebnis abbrichst, sondern weiterrennen lässt.

switch() oder if else bewältigen das schon alleine.

PHP:
<?php
//mit switch() ganz einfach

switch($GET['section'])
   {
   case 'impressum': include('impressum.html'); break;
   case 'wasweissich': include('file.ext'); break;
   
   default: include('index.php'); break;
   }
?>

FERTIG. genau das, was du oben so kompliziert aufgeschrieben hast, gibts hier im vierzeiler.

Nils aka XraYSoLo
 
Wenn $_GET["section"] nicht definiert ist bekommst du nen Fehler unter Verwendung von error_reporting(E_ALL);

PHP:
switch($GET['section'])
$GET sollte wohl auch eher $_GET heißen. Ich tippe mal auf einen Flüchtigkeitsfehler ;)

XraYSoLo schrieb:
und du brichst die schleife ja gar nicht ab...

Wo siehst du denn da im Code eine Schleife, Ray? :D
 
Zurück
Oben