Martin aus Wien: error reporting

Hallo zusammen,

kann das sein, dass mein ISP PHP so konfiguriert hat, dass

error_reporting(E_ALL ^ E_NOTICE);

keine Wirkung hat und auf jeden Fall Notices erscheinen, wenn PHP das für nötig hält?

Oder mach ich was falsch? PHP 4.3.11, display_errors: On, error_reporting: 81, html_errors: On;

Und wenn ich schon dabei bin: Kann ich irgendwie erreichen, dass mir PHP Parse Errors anzeigt, wenn der ISP das anscheinend ausgeschaltet hat? Ich krieg immer nur weiße Seiten, wenn ich mal ein Semikolon vergessen habe.

Gruß und Dank

Martin

  1. echo $begrüßung;

    error_reporting(E_ALL ^ E_NOTICE);
    Oder mach ich was falsch? PHP 4.3.11, display_errors: On, error_reporting: 81, html_errors: On;

    Du rechnest falsch. Für E_ALL ohne E_NOTICE musst du E_ALL AND NOT E_NOTICE rechnen und nicht E_ALL NOT E_NOTICE. Als Ergebnis sollte dann 2039 rauskommen.

    echo "$verabschiedung $name";

    1. Du rechnest falsch. Für E_ALL ohne E_NOTICE musst du E_ALL AND NOT E_NOTICE rechnen und nicht E_ALL NOT E_NOTICE. Als Ergebnis sollte dann 2039 rauskommen.

      Nanu?

      // Report all errors except E_NOTICE
      // This is the default value set in php.ini
      error_reporting(E_ALL ^ E_NOTICE);

      http://at.php.net/manual/en/function.error-reporting.php

      Gruß

      Martin

      1. echo $begrüßung;

        Du rechnest falsch. Für E_ALL ohne E_NOTICE musst du E_ALL AND NOT E_NOTICE rechnen und nicht E_ALL NOT E_NOTICE. Als Ergebnis sollte dann 2039 rauskommen.

        Nanu?

        // Report all errors except E_NOTICE
        // This is the default value set in php.ini
        error_reporting(E_ALL ^ E_NOTICE);

        http://at.php.net/manual/en/function.error-reporting.php

        'tschuldigung, Irrtum meinerseits. ^ steht nicht für NOT sondern für XOR.

        E_ALL    = 0111 1111 1111 = 2047
        E_NOTICE = 0000 0000 1000 = 8
        XOR      = 0111 1111 0111 = 2039

        81       = 0000 0101 0001 = E_ERROR,E_CORE_ERROR,E_COMPILE_ERROR

        Das ^ hätte also doch funktionieren sollen. Die 81 sieht sehr nach Vorsatz aus. Frage lieber mal deinen Provider.

        echo "$verabschiedung $name";

    2. Moin,

      Du rechnest falsch. Für E_ALL ohne E_NOTICE musst du E_ALL AND NOT E_NOTICE rechnen und nicht E_ALL NOT E_NOTICE.

      das Ergebnis ist aber dasselbe, solange im Ausgangswert (E_ALL) alle Bits gesetzt sind. Bei 2047 = 0x07FF ist das der Fall, darum führen beide Rechnungen zum gleichen Ergebnis.

      Zahlenwerte:
       E_ALL    = 0x07FF
       E_NOTICE = 0x0008

      Rechenweg mit AND und NOT:
       0x07FF & (~0x0008) =
       0x07FF & 0xFFF7 = 0x07F7 = 2039    - passt also.

      Rechenweg mit reinem XOR:
       0x07FF ^ 0x0008 = 0x07F7 = 2039    - passt auch. qed.

      Als Ergebnis sollte dann 2039 rauskommen.

      Das tut es auch. :-)

      Schönen Tag noch,
       Martin

      --
      Lieber eine Fliege im Porzellanladen
      als ein Elefant in der Suppe.
  2. hi,

    Kann ich irgendwie erreichen, dass mir PHP Parse Errors anzeigt, wenn der ISP das anscheinend ausgeschaltet hat? Ich krieg immer nur weiße Seiten, wenn ich mal ein Semikolon vergessen habe.

    Du entwickelst doch nicht etwa auf einem Live-System?

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Du entwickelst doch nicht etwa auf einem Live-System?

      Ehrlich gesagt, bei kleineren Adaptionen schon.

      M.