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

  • 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?


  • #2
    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

    Kommentar


    • #3
      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:

      Kommentar


      • #4
        (verlegensein) kann mir jemand genau sagen, was das heißt?

        Kommentar


        • #5
          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

          Kommentar


          • #6
            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

            Kommentar


            • #7
              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.

              Kommentar


              • #8
                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.

                Kommentar


                • #9
                  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;
                  }

                  Kommentar


                  • #10
                    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.

                    Kommentar


                    • #11
                      thx, damit haste mir echt en gefallen getan.

                      Kommentar


                      • #12
                        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.

                        Kommentar

                        Lädt...
                        X