Ankündigung

Einklappen
Keine Ankündigung bisher.

das if-else geht nicht

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gast-Avatar
    Ein Gast erstellte das Thema das if-else geht nicht.

    das if-else geht nicht

    hi,

    ich benutz lokal als apache-server XAMPP. wenn ich nun folgendes script laufen lasse, stützt er mir ab, obwohl er sonst gegen if-else nichts einzuwenden hat.

    Code:
    <table width="500" border="1">
      <tr>
        <td>
    
    1</p>
          
    
    2</p>
          
    
    3</p></td>
        <td>
    
    <?	
    if(!$action) {
        include "index.php";
     } else if ($action == "1") {
        include "1.php";
     } else if ($action == "2") {
        include "2.php";
     } else if ($action == "3") {
        include "3.php";
    }
    ?>
    	
    	</td>
      </tr>
    </table>
    weiß jemand von euch, woran das liegt?

  • Gast-Avatar
    Ein Gast antwortete
    Zitat von Icecold
    die switch-methode:
    Code:
    switch ($action) {
    
    # Das muß raus, weil index.php ja aufgerufen wird!
    #    default:
    #    include_once "index.php";
    #    break;
    
    }
    Fast richtig. s.o.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    thx, damit haste mir echt en gefallen getan.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von Skrewdriver
    gegenfrage: wie müsst ichs denn machen, damit das geht?
    Du darfst index.php nicht includieren, wenn Du index.php aufrufst. Sonst includiert index.php sich an der Stelle so lange selbst auf, bis der Speicher voll ist.

    hab gehört, dass das net mit if-else gemacht werden muss, sondern auch mit switch-case geht.
    Switch wäre eleganter und übersichtlicher.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    die switch-methode:

    Code:
    switch ($action) {
        case 1:
        include "1.php";
        break;
    
        case 2:
        include "2.php";
        break;
    
        case 3:
        include "3.php";
        break;
    
        default:
        include_once "index.php";
        break;
    }

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    gegenfrage: wie müsst ichs denn machen, damit das geht? der link soll halt später so aussehen:

    Code:
    http://www.skrewdriver.de/index.php?action=news
    hab gehört, dass das net mit if-else gemacht werden muss, sondern auch mit switch-case geht.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Re: das if-else geht nicht

    Zitat von Skrewdriver
    Code:
    <?	
    if(!$action) {
        include "index.php";
     }
    ?>
    weiß jemand von euch, woran das liegt?
    Falls das obige Script index.php heißt, fabrizierst Du genau an der Stelle eine Endlosschleife, weil index.php sich laufend selbst includieren soll.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    also dein script schaut ja ob die variable $action nicht gesetzt ist und falls das zutrift soll wird die datei index.php included. in der includeten index.php ist die varialbe $action aber immnoch nicht gesetzt und deswegen wird nochmal included.

    so denke ich mir das halt, aber vorraussetzung dafür ist das der code den du gepostet hast auch in der index.php steht.

    wieso machst du das ganze nicht über einen switch? wäre evtl einfacher weil man da mit dem default arbeiten kann

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Code:
    <?php
    
    if($action == "1") { 
        include("1.php"); 
    } else if ($action == "2") { 
    	include("2.php"); 
    } else if ($action == "3") { 
        include("3.php"); 
    } else {
    	include("index.php");
    }
    ?>
    ich würds so machen du musst nicht erst abfragen ob die variable $action überhaupt einen wert hat das erledigt das letzte else für die von alleine

    mfg

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    (verlegensein) kann mir jemand genau sagen, was das heißt?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    hallo

    kann es sein das der code den du kopiert hast in der datei index.php stehst? wenn das der fall ist glaube ich das es zu einem endlosen include kreislauf kommt. das würde auch erklären warum er dir abstürzt.

    hatte sowas auch schonmal :wink:

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    ich weiß es nedd genau aber ich glaube ein elseif-block verlangt auch ein else
    und du nimmst als variable beim link $page und fragst dann nach $action ab

    Einen Kommentar schreiben:

Lädt...
X