Jürgen: include mit {

hallo
ich will diese 2 zeile in ein include packen, also

session.php mit inhalt:
@session_start();
if ($_SESSION['rechte']=="Admin") {

wenn ich nun:
include("session.php");
kommt die fehlermeldung das:
Parse error: syntax error, unexpected '}' in D:\Inetpub\wwwroot\swisssonic\web\admin
d.h er erkennt das öffnen der klammer nicht

wenn ich aber die 2 zeilen in die datei schreibe

@session_start();
if ($_SESSION['rechte']=="Admin") {

ist alles ok.
Warum diese fehlermeldung?
wie kann ich das mit include lösen?
mfg juergen

  1. Hi! ist es:

    @session_start();
    if ($_SESSION['rechte']=="Admin") {

    ODER
    if (){

    }<-!!!??
    hast du die } nicht vergessen?
    MFG
    bleicher

    --
    __________________________-
    Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
    1. Hi! ist es:

      @session_start();
      if ($_SESSION['rechte']=="Admin") {

      ODER
      if (){

      }<-!!!??
      hast du die } nicht vergessen?

      das schliesen der klammer habe ich dann wieder in der datei }.
       das oben ist ja nur das include, aber genau die schliesende } erkennt er jetzt als fehler an. d.h doch dann er erkennt das {} der klammern über ein include nicht an??
      Gruß jürgen

      1. Hallo
        nochmal einfach dargestellt mein problem:

        <?php
        //test.php
        include("include.php");

        echo "test";
        }
        ?>
        und in clude.php steht:
        if(1==1){

        Warum geht das nicht?
        Danke jürgen

        1. Hallo
          nochmal einfach dargestellt mein problem:

          <?php
          //test.php
          include("include.php");

          echo "test";
          }
          ?>
          und in clude.php steht:
          if(1==1){

          Warum geht das nicht?
          Danke jürgen

          weil hier kein {-öffenndes element ist.
          Zeig mal das ganze - bzw. alles außer den variblen etc. wenn du die nicht zeigen willst.

          MFG
          bleicher

          --
          __________________________-
          Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
          1. Hallo
            das ganze ist in nem riesenscript aber ich habe hier das problem reduziert

            <?php
            //test.php
            include("include.php");

            echo "test";
            }
            ?>
            und include.php steht:
            if(1==1){

            Warum geht das nicht?
            Danke jürgen

            weil hier kein {-öffenndes element ist.

            das { öffnende Klammer ist in der include datei und das } in der test datei [in der die include.php includiert wird] aber das geht nicht.reqire geht auch nicht.
            Gruß jürgen

            1. Hi,

              anders gefragt: Warum willst du so einen Unsinn machen? Include dient dazu andere (mehr oder weniger in sich geschlossene) Programmteile hinzuzuladen und nicht seinen Code vollkommen wirr zu zerschneiden. Ich weiß nicht ob es theoretisch einen Weg gibt, das es geht die geschweiften Klammern über die Dateigrenzen hinweg zu öffnen, aber hoffe einfach mal, das es das nicht tut, weil es ganz großer Blödsinn ist sowas zu machen. Ich behaupte mal das es nicht eine einzige sinnvolle Anwendung für solch ein Konstrukt gibt. Bitte denk nochmal über die Planung deines Codes nach. Sowas ist definitiv nicht notwendig.

              Marc

              1. hallo

                anders gefragt: Warum willst du so einen Unsinn machen?

                z.b.
                du hast eine login mit session, jetzt wird bei jedem weiterem script geprüft ob die session noch läuft und dann kommt das jeweilige script , und um diese session überprüfung auszulagern. na ist das kein gelungens bsp?

                gruß jürgen

                1. Hi,

                  na ist das kein gelungens bsp?

                  nö, nicht im geringsten ;) Um das zu realisieren gibt es Millionen verschiedener Methode. Eine wäre zum beispiel die Überprüfung in eine Funktion zu packen und diese komplett auszulagern.

                  include.php

                  function check_login(){
                  //Session überprüfen
                  return true bzw. false;
                  }

                  Script:

                  include("include.php");
                  if(check_login()){
                  echo "Alles klar";
                  }

                  Andere (wohl noch sinnvollere Methode) wäre die Überprüfung in deiner index.php drinne zu lassen und dann abhängig vom ergebniss der Überprüfung den Inhalt zu includen (musst dann allerdings aufpassen, das der Inhalt in einem Verzeichniss liegt, das nicht direkt vom Besucher aufgerufen werden kann)

                  Marc

                2. du hast eine login mit session, jetzt wird bei jedem weiterem script geprüft ob die session noch läuft und dann kommt das jeweilige script , und um diese session überprüfung auszulagern. na ist das kein gelungens bsp?

                  Wie wärs mit der exit() Funktion, sprich Bedingung umkehren
                  if ($_SESSION['rechte']!="Admin") { echo"Keine Adminrechte"; exit(); }

  2. Huhu

    kommt die fehlermeldung das:
    Parse error: syntax error, unexpected '}' in D:\Inetpub\wwwroot\swisssonic\web\admin
    d.h er erkennt das öffnen der klammer nicht

    Keineswegs.
    Der Parser meldet eine unerwartete schließende Klammer.

    D.h. Du hast einen öffnende Klammer zuwenig.
    Oder eine schließende zuviel.
    Das ist ein simpler Syntax-Error und hat nichts mit include() zu tun.
    Benutze ggf. einen Editor der zugehörige Klammerpaare beim
    Editieren optisch hervorhebt, das hilft ungemein solche Fehler zu minimieren.

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday
    1. hallo

      kommt die fehlermeldung das:
      Parse error: syntax error, unexpected '}' in D:\Inetpub\wwwroot\swisssonic\web\admin
      d.h er erkennt das öffnen der klammer nicht

      Keineswegs.
      Der Parser meldet eine unerwartete schließende Klammer.

      D.h. Du hast einen öffnende Klammer zuwenig.

      genau den das heist ja es fehlt die öffnende { und ich vermute mal die öffnende klammer ist die in der include datei weil wenn ich den include text in die datei schreibe kommt keine fehlermeldung
      gruß jürgen

  3. echo $begrüßung;

    ich will diese 2 zeile in ein include packen, also
    @session_start();
    if ($_SESSION['rechte']=="Admin") {

    wenn ich nun:
    include("session.php");
    kommt die fehlermeldung das:
    Parse error: syntax error, unexpected '}' in D:\Inetpub\wwwroot\swisssonic\web\admin
    d.h er erkennt das öffnen der klammer nicht

    Das Parsen findet vor dem Ausführen statt. Der Inhalt der zu inkludierenden Datei ist während des Parsens noch nicht bekannt und kann deshalb nicht berücksichtigt werden. Daraus folgt, dass eine Anweisung nicht über mehrere Dateien verteilt werden kann.

    echo "$verabschiedung $name";