JulianBaumueller: include() in switch()

Hallo,

ich habe folgendes fabriziert:

  
<?php  
  
$site = $_GET[site];  
  
switch($site) {  
  
include("/sites/includes.php");  
  
}  
  
?>  

nun zeigt der mir aber folgendes an:
Parse error: syntax error, unexpected T_INCLUDE, expecting T_CASE or T_DEFAULT or '}' in C:\*.... on line 163

Mir ist jetzt also klar, dass man DIREKT in ein switch() nichts includen kann. Man muss dass include() wenn dann in ein CASE schreiben.

  
<?php  
  
$site = $_GET[site];  
  
switch($site) {  
  
case start:  
include("/sites/start.php");  
break;  
  
}  
  
?>  
  
  
Kann man dass irgendwie machen, dass man dass include() direkt in dass switch() (erstes) reinschreiben kann?  
  
  
  
MfG,  
JulianBaumueller.  

  1. Hello,

    ich habe folgendes fabriziert:

    <?php

    $site = $_GET[site];

    Das Umkopieren aus der Get-Variable in eine einfache Scriptvariable ist nicht notwendig, wohl aber das Abfangen böser Eingaben, die in der Get-Variablen landen können.

    switch($site)

    {

    Ob switch() ohne case funktioniert, kann ich Dir nichrt sagen, aber auf jeden Fall mit.

    include("/sites/includes.php");

    }

    ?>

      
      
      
      
      
    Liebe Grüße aus dem schönen Oberharz  
      
      
    Tom vom Berg  
    ![](http://selfhtml.bitworks.de/Virencheck.gif)  
      
    
    -- 
     ☻\_  
    /▌  
    / \ Nur selber lernen macht schlau  
    <http://bergpost.annerschbarrich.de>
    
  2. Hi,

    <?php
    $site = $_GET[site];
    switch($site) {
    include("/sites/includes.php");
    }

    ?>

    
    > nun zeigt der mir aber folgendes an:  
    > Parse error: syntax error, unexpected T\_INCLUDE, expecting T\_CASE or T\_DEFAULT or '}' in C:\\*.... on line 163  
      
    natürlich.  
    In einem Switch müssen immer case und max. ein default sein.  
    Erst nach einem case- oder default-Label kann sonstiger Code kommen.  
      
    
    > Mir ist jetzt also klar, dass man DIREKT in ein switch() nichts includen kann. Man muss dass include() wenn dann in ein CASE schreiben.  
      
    nach einem case, nicht in.  
    Die einzelnen cases (inkl. defaults) sind Labels - je nach Wert im Switch wird eines der Label angesprungen.  
      
    Selbst wenn der Code vor dem ersten case stehen dürfte:  
    er würde ja gar nicht ausgeführt, da zum ersten case gesprungen wird, der zur Bedingung paßt.  
      
    
    > Kann man dass irgendwie machen, dass man dass include() direkt in dass switch() (erstes) reinschreiben kann?  
      
    Nein. Das geht nicht.  
      
    Was wäre der Sinn?  
    Wenn der include auf jeden Fall ausgeführt werden soll, dann schreib ihn VOR den switch.  
      
    cu,  
    Andreas
    
    -- 
    [Warum nennt sich Andreas hier MudGuard?](http://MudGuard.de/)  
    [O o ostern ...](http://ostereier.andreas-waechter.de/)  
      
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.  
    
    
    1. Kann man dass irgendwie machen, dass man dass include() direkt in dass switch() (erstes) reinschreiben kann?

      Nein. Das geht nicht.

      Was wäre der Sinn?

      Ich will meine Seite so organisiert und geordnet wie möglich schreiben. Darum hab ich meistens alles in einzelne Dateien unterteilt. Ich hab mir ein Register- und Login-Script geschrieben. Für jeden registrieten User wird ein CASE-Label erstellt. (per fopen, fputs usw..) aber damit ich das mit meinen kenntnissen machen kann, musste ich ne extra datei anlegen, in die ich dass alles reinschreiben kann.

      naja is halt so mein konzept wie ichs machen will.. :D
      aber wenn mans so nich machen kann, lässt sich da wohl nix machen..
      Muss mir halt was einfallen lassen.

      Grüße,
      JulianBaumueller.

      1. Hi,

        Für jeden registrieten User wird ein CASE-Label erstellt.

        Huch?
        Self-Modifying Code?

        Normalerweise legt man die Daten der registrierten User in einer Datenbank (von mir aus auch flatfile-DB) ab, aber nicht im Code.

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        O o ostern ...
        Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
        1. Self-Modifying Code?

          Ja, aber immer doch! :D ;-)

          Normalerweise legt man die Daten der registrierten User in einer Datenbank (von mir aus auch flatfile-DB) ab, aber nicht im Code.

          Ich habs nich so mit Datenbanken und hat bei mir noch nie geklappt...

          geil wärs wenns son generator für fertige php-codes geben würde..
          wär ne bereicherung xD

          MfG,
          JulianBaumueller.

          1. Hi!

            geil wärs wenns son generator für fertige php-codes geben würde..

            Gibts doch, nennt sich Programmierer.

            Lo!

  3. Moin allerseits,

    Hallo,

    ich habe folgendes fabriziert:

    <?php

    $site = $_GET[site];

    switch($site) {

    include("/sites/includes.php");

    }

    ?>

      
      
    
    > ~~~php
      
    
    > <?php  
    >   
    > $site = $_GET[site];  
    >   
    > switch($site) {  
    >   
    > case start:  
    > include("/sites/start.php");  
    > break;  
    >   
    > }  
    >   
    > ?>  
    >   
    
    Ein switch ist dann notwendig, wenn du z.B. abhängig vom Wert einer Variable unterschiedliche Funktionen ausführen willst. In deinem Fall willst du offensichtlich abhängig vom Wert der Variable ein include durchführen. Wahrscheinlich soll auch die Datei geladen werden, deren Name in der Variable steht. Das Funktioniert ganz einfach:  
    [code lang=php]include("/sites/".$_GET[site].".php");
    

    Aber VORSICHT! Beachte Toms Ratschlag bezüglich der Sicherheit.

    Grüße, JN

    --
    ie:{ fl:( br:^ va:| ls:[ fo:| rl:? n4:? ss:| de:] js:| ch:? sh:( mo:| zu:)
    http://www.johny7.de