kostenloser Webspace werbefrei: lima-city


Fehler 503 / 502 wegen Endlosschleife

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    createtheweb

    createtheweb hat kostenlosen Webspace.

    Hallo,

    mein Problem liegt darin, dass ein Verzeichnis nicht mehr aufgerufen werden kann, sobald meine PHP-Dateien hereingeladen werden. Es wird der Fehler 503 ausgegeben. Was jedoch wird an meinem PHP-Code nicht unterstützt?

    <html>
    
    <head>
    
    <link rel="stylesheet" type="text/css" href="css.css">
    
    </head>
    <body>
     
    	
    <div id="wrapper">
    
    <div id="header"></div>
    <div id="top"></div>
    <div id="links"><a href="http://createtheweb.lima-city.de/php/index.php?page=index">Index</a></ br>
    		<a href="http://createtheweb.lima-city.de/php/news.php?page=news">News</a></ br>
    		<a href="http://createtheweb.lima-city.de/php/test.php?page=test">Test</a></ br></div>
    <div id="mitte">
    
    <?php
    /**
         * Array -> Inhalte sammeln
         * GET -> Datei laden
         * */
         
        $page = array();
        $page['index'] = 'index.php';
        $page['news'] = 'news.php';
        $page['test'] = 'test.php';
    
    if (isset($_GET['page'])) 
        { 
            switch($_GET['page']) 
            { 
            case 'index': include('index.php'); 
            break; 
            
            case 'news': include('news.php');
            break;
            
            case 'test': include('test.php');
            break;
            }     
        } 
        else 
        { 
            include('index.php'); 
        } 
    ?>
    
    Das ist der Index.</div>
    
    <div id="rechts">rechts</div>
    
    <div id="footer">fusszeile</div>
    
    </div>
    
    </body>
    </html>
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Lade mal eine Datei mit dem Namen .htaccess (in Worten Punkthtaccess) in das betroffene Verzeichnis mit folgendem Inhalt:

    php_value display_errors on


    Damit solltest du aussagekräftige Fehlercodes bekommen!
  4. Autor dieses Themas

    createtheweb

    createtheweb hat kostenlosen Webspace.

    Naja, jetzt bekomme ich dieselbe Statusmeldung ("Derzeit nicht erreichbar"), nur mit Fehlercode 502.

    Zum Selbergucken: http://createtheweb.lima-city.de/php/

    Beitrag zuletzt geändert: 8.11.2010 10:47:56 von createtheweb
  5. djfun

    Co-Admin Kostenloser Webspace von djfun

    djfun hat kostenlosen Webspace.

    öhm.. das ist ja die index.php die du da grad aufrufst..
    und du includest da dann nochmal index.php drin? Das kann ja nicht funktionieren..

    was möchtest du denn damit bezwecken?
  6. Autor dieses Themas

    createtheweb

    createtheweb hat kostenlosen Webspace.

    djfun schrieb:
    öhm.. das ist ja die index.php die du da grad aufrufst..
    und du includest da dann nochmal index.php drin? Das kann ja nicht funktionieren..

    was möchtest du denn damit bezwecken?


    Ich experimentiere gerade mit reinen CSS-Layouts, bei denen die Inhalte über PHP included werden.
    Wie kann ich denn die Startseite includen oder liegt es speziell an der Bezeichnung "index"?
  7. Na sobald du in einer Seite die Seite selber includest, die sich dann auch wieder selber includet und so weiter und so fort, entsteht praktisch eine Endlosschleife.
  8. Autor dieses Themas

    createtheweb

    createtheweb hat kostenlosen Webspace.

    Ah, und wie binde ich die Startseite nun mit ein?
    Mit einer Fake-Startseite, also einer Kopie?

    Und wie verhält sich das mit dem else-Fall? Darf dort dieselbe Seite angegeben werden?
    Oder müsste auch hier gefaked werden?
  9. mach statt include ein require_once... damit dürfte der 503er Fehler nciht mehr kommen, sondern eine andere Fehlermeldung

    und kannst du nciht einfach be den anderne seitenaufrufen den querycode mitliefern, wie ./index.php?q=news

    und über $_GET['q'] in der switch-case den wert abfangen? das ist total umständlöich und anfällig für fehlerquellen, was du da machst!
  10. <html>
    <head>
    <title>Hallo</title>
    <link rel="stylesheet" type="text/css" href="css.css">
    </head>
    <body>
    	<div id="wrapper">
    		<div id="header"></div>
    		<div id="top"></div>
    		<div id="links">
    			<a href="http://createtheweb.lima-city.de/php/index.php?page=index">Index</a><br />
    			<a href="http://createtheweb.lima-city.de/php/index.php?page=news">News</a><br />
    			<a href="http://createtheweb.lima-city.de/php/index.php?page=test">Test</a><br />
    		</div>
    		<div id="mitte">
    			<?php
    			/*
    			 * GET -> Datei laden
    			*/
    
    			switch($_GET['page']) 
    			{        
    				case 'news':
    					include('tpl/news.php');
    				break;
    					
    				case 'test':
    					include('tpl/test.php');
    				break;
    					
    				default:
    					include('tpl/index.php');
    			}
    			?>
    		</div>
    		<div id="rechts">rechts</div>
    		<div id="footer">fusszeile</div>
    	</div>
    </body>
    </html>


    Wenn du eine Datei mit in sich selbst includest, wirst du selbstverständlich nicht weit kommen. Du brauchst eine Seite, die alle anderen Seiten included. Im o.g. Beispiel hast du nun eine index.php die je nach Aufruf von $_GET['page'] den entsprechenden Inhalt aus einer seperaten, im Verzeichnis tpl/ abgelegten Datei ausliest und im "mitte"-Containter anzeigt.

    @sebulon

    So eng sehe ich das garnicht ;)

    Beitrag zuletzt geändert: 8.11.2010 16:41:58 von fabo
  11. Autor dieses Themas

    createtheweb

    createtheweb hat kostenlosen Webspace.

    Hallo Fabo,

    wieso kommt der Switch in deinem Code ohne Auszeichnung der Fallvariablen aus?

    Ich habe mir in den letzten Monaten Grundlagen beigebracht und mit Hilfe von Fachliteratur kleine Skripts selbst gebastelt, also verstehe ich noch nicht alle Zusammenhänge sofort. :)
  12. $_GET['page'] enthält ja schon alles, was du wissen musst. Switch ist nichts anderes als eine IF-Abfrage.

    Pseudocode:

    IF $_GET['page'] = news
    include tpl/news.tpl
  13. Autor dieses Themas

    createtheweb

    createtheweb hat kostenlosen Webspace.

    Hm. Ich würde den Code jetzt so verstehen:
    Wenn die Seite, die GET ['page'] holen soll = News ist, soll news.tpl inkludiert werden.

    Aber woher weiß der Code, dass 'page' auch News sein könnte bzw. was mit der Variable 'page' gemeint sein könnte?
    SIe wird ja nirgendwo mehr deklariert.
  14. Ob du nun schreibst:
    $var = $_GET['page'];
    echo $var;

    oder
    echo $_GET['page'];

    kommt auf das gleiche raus. Genauso verhält es sich bei einer Switch-Case Anweisung.

    Ob du nun schreibst:
    $var = $_GET['page'];
    switch($var){
    ...
    }

    oder
    switch($_GET['page']){
    ...
    }

    ist wieder völlig gleich, da $_GET['page'] immer den gleichen Wert enthält, egal ob man es direkt verwendet oder in einer Variable zwischenspeichert.

    Beitrag zuletzt geändert: 12.11.2010 14:25:29 von alfr3d
  15. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!