Erst funktionierende Includes - dann alle zusmamen in eine if-bedingung=fehler

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

  • Erst funktionierende Includes - dann alle zusmamen in eine if-bedingung=fehler

    Hallo,

    include_once('./class/user.class.php');
    include_once('DB.php');
    include_once('./config/session.php');

    Hatte ich zuerst

    12: if(include_once('./class/user.class.php') && include_once('DB.php') && include_once('./config/session.php')) {
    ...

    }

    Habe ich daraus gemacht

    Jetzt kommt folgendes


    Warning: include_once() [function.include]: Failed opening '' for inclusion (include_path='.;E:\XAMPP\xampp\php\pear\') in E:\XAMPP\xampp\htdocs\fh-webpage\index.php on line 12

    Warning: include_once(1) [function.include-once]: failed to open stream: No such file or directory in E:\XAMPP\xampp\htdocs\fh-webpage\index.php on line 12

    Warning: include_once() [function.include]: Failed opening '1' for inclusion (include_path='.;E:\XAMPP\xampp\php\pear\') in E:\XAMPP\xampp\htdocs\fh-webpage\index.php on line 12

  • #2
    Re: Erst funktionierende Includes - dann alle zusmamen in eine if-bedingung=fehler

    weil man ein include nicht in ein if packen kann...

    Wenn du die Dateien unbedingt benötigst, verwende require

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      OK, aber bei require kann ich dann ja keine eigene Fehlermeldung anzeigen

      Kommentar


      • #4
        include ist keine Funktion und es geht auch ohne die Klammern. Ich könnte mir vorstellen, dass include die Klammern einfach wegwirft und dann bekommst Du einen Dateinamen '1', bzw. true. So ist es denkbar.

        Hier noch etwas aus dem Manual, es geht in diese Richtung:
        Because include() and require() are special language constructs, you must enclose them within a statement block if it's inside a conditional block.

        Vielleicht reicht es aus, include in doppelte klammern zu packen.
        if ( (include..) && (include..) && (include..) )

        Man kann $a=include ('datei'); versuchen, obwohl ich auch nicht gelesen habe, dass der include-Befehl true oder false zurückgibt.

        Kommentar


        • #5
          Original geschrieben von internetto
          OK, aber bei require kann ich dann ja keine eigene Fehlermeldung anzeigen
          was bei requirerten Dateien auch nicht nötig ist. Sie müssen da sein, wenn sie nicht da sind, ist die komplette Anwendung kaputt -> der user muss erneut installieren

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Kommentar


          • #6
            Ich könnte ja, wenn die Userclasse nicht geladen wird, ne Fehlerseite anzeigen lassen.

            Kommentar


            • #7
              Original geschrieben von internetto
              Ich könnte ja, wenn die Userclasse nicht geladen wird, ne Fehlerseite anzeigen lassen.
              Dann mach ein
              PHP-Code:
              if (is_file($file)) {
                require_once(
              $file);
              } else {
                echo 
              'Fehler';

              ich erachte den zusätzlichen Aufruf von is_file allerdings als unnötigen Overhead ... wenn du natürlich meinst es ist nötig, tu was du nicht lassen kannst ^^,

              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
              Wie man Fragen richtig stellt

              Kommentar

              Lädt...
              X