azok: problem mit mehreren ifs

hi!

also ich habe folgendes problem:
für meine webseite und die diversen fehler habe ich eine seite erstellt, wo der aufgetretene fehler drinnen steht.
um aber 'unzählige' dateien zu vermeiden habe ich das mit php gelöst und zwar so:

die datei für die fehler ausgabe heißt fehler.php
in der .htaccess datei ist mittels variablenübergabe mit der URL ein bestimmter 'errorcode' festgelegt, nämlich so:

ErrorDocument 405 http://xxx.at/usr/name/fehler.php?errorcode=405

dieser wird in der fehler.php dann über php ermittelt und der entsprechende fehler ausgegeben, so:

if($GET_['errorcode'] == "405") {
   echo "<h1 style="color:#000000;">Method Not Allowed! Fehler
   405</h1>";
   }
diese if klausel steht nun für die fehler von 400-415 und 500-505 in dieser datei.

soweit denke ich, hab ich keine fehler gemacht (hoffentlich),
denn das problem das auftritt ist,
das an dieser stelle einfach der echo befehl ignoriert wird. ich hab den quelltext der datei angesehen, und musste feststellen, das echo einfach 'weggelassen' wird.

weiß irgendwer von euch, woran das liegt?

ich wäre über hilfe dankbar
lg
azok(=freak)

  1. Hi,

    ErrorDocument 405 http://xxx.at/usr/name/fehler.php?errorcode=405

    warum leitest Du auf eine absolute URL um?

    if($GET_['errorcode'] == "405") {

    Was ist $GET_ und womit hast Du es gefüllt? Warum verwendest Du "if" wie eine Funktion?

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. hi!

      warum leitest Du auf eine absolute URL um?

      hoppla... hab ich beim schreiben 'übersehen'... ;-)

      Was ist $GET_ und womit hast Du es gefüllt? Warum verwendest Du "if" wie eine Funktion?

      also ich meinte if(GET_['errorcode'] == "405") {

      es wird aus fehler.php?errorcode=405 der errorcode mit 405 verglichen und demnach die fehlermeldung ausgegeben

      lg
      azok(=freak)

      1. Hi,

        Was ist $GET_ und womit hast Du es gefüllt? Warum verwendest Du "if" wie eine Funktion?
        also ich meinte if(GET_['errorcode'] == "405") {

        glaube ich nicht. Überleg noch mal :-)

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. hi!

          glaube ich nicht. Überleg noch mal :-)

          ich schon bald auch nimmer... ich steh auf der leitung. ich komm bei so einem einfachen ding nicht mehr weiter...

          lg
          azok

          1. Hallo,

            glaube ich nicht. Überleg noch mal :-)
            ich schon bald auch nimmer... ich steh auf der leitung. ich komm bei so einem einfachen ding nicht mehr weiter...

            der Unterstrich kommt _vor_ das GET ... :-)

            Grüße aus Nürnberg
            Tobias

            --
            Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
            1. hi!

              s**t... so was dummes auch, ich denk ich mach für heute schluss

              danke nochmal

              lg
              azok(=freak)

    2. hi!

      warum leitest Du auf eine absolute URL um?

      erstens sollte man, und zweitens wenn ich sie relativ mache gibt der webserver einen 500er aus.

      lg
      azok(=freak)

      1. Hi,

        warum leitest Du auf eine absolute URL um?
        erstens sollte man,

        wieso sollte man?

        und zweitens wenn ich sie relativ mache gibt der webserver einen 500er aus.

        Was sagt das Error-Log dazu?

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
      2. Moin,

        warum leitest Du auf eine absolute URL um?

        erstens sollte man

        Ähm, da musst du dich verlesen haben. Man sollte _nicht_, weil das dazu führt dass der Client einen Redirect kriegt und den ursprünglichen Statuscode nicht zu sehen kriegt. Das führt unter anderem dazu, dass Suchmaschinen fröhlich deine 404-Fehlerseite indizieren werden, etc. pp.

        und zweitens wenn ich sie relativ mache gibt der webserver einen 500er aus.

        Dann hast du offenbar was falsch gemacht.

        --
        Henryk Plötz
        Grüße aus Berlin
        ~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
        ~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~
        1. hi

          sodala, php funzt nur .htaccess zickt...

          ein eintrag darin sieht so bei mir aus:

          ErrorDocument 404 fehler.php?errorcode=404

          ...

          ich weiß nicht, was heute mit mir und dem server los ist...

          ich komm nicht auf den fehler, und schön langsam nervt der 500er

          lg
          azok(=freak)

          1. Hi,

            ich komm nicht auf den fehler, und schön langsam nervt der 500er

            was steht im Error-Log?

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
          2. Hallo azok,

            ErrorDocument 404 fehler.php?errorcode=404

            Das kann nicht funktionieren, da bei ErrorDocument jede lokale URI serverrelativ sein muss. Gib also

            ErrorDocument 404 /pfad/zu/fehler.php?errorcode=404

            ein (nach Deinem vorigen Posting müsste es /usr/name/fehler.php sein). Dann funktioniert das ganze auch.

            Übrigens: Du kannst das mit ?errorcode=... ganz weglassen. Du kannst ganz einfach

            ErrorDocument 404 /pfad/zu/fehler.php

            und statt $_GET['errorcode'] dann $_SERVER['REDIRECT_STATUS'] auswerten, das enthält dann von sich aus schon den Fehlercode, den der Apache erzeugt hat.

            Viele Grüße,
            Christian

  2. sollte das nicht

    if($_GET['errorcode'] == '405'){

    heissen?

    1. sollte das nicht

      if($_GET['errorcode'] == '405'){

      heissen?

      jup

      sollte es.

      danke
      lg
      azok(=freak)

  3. Hi,

    Warum eigentlich nicht einfach einen switch anstatt unzähliger if-Anweisungen?

    Gruss
    shin

    1. Hi,

      Warum eigentlich nicht einfach einen switch anstatt unzähliger if-Anweisungen?

      warum nicht ein assoziatives Array _ohne_[1] Abfrage?

      Cheatah

      [1] Bzw. mit einer Abfrage auf Existenz.

      --
      X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
  4. hi!

    so, nun bin ich bald soweit, dass ich dem server etwas antue...

    da ich den fehler jetzt im htaccess gfunden hab (einmal statt 408 708 gschrieben, hänge ich jetzt beim php-code)

    nämlich:

    ich verwende jetzt auf anraten von ShinToKu

    eine switch abfrage, die so aussieht:

    <?php
     case "400";
        echo "<img src="img/fehler.png" style="width:126px; height:120px; border-width:2px; border-color:#000000; border-style:solid; float:left; margin-right:5px;" alt="Fehler!" /><h1>Bad Request! Fehler 400</h1>";
        break;
        case "401";
        echo "<img src="img/fehler.png" style="width:126px; height:120px; border-width:2px; border-color:#000000; border-style:solid; float:left; margin-right:5px;" alt="Fehler!" /><h1>Unauthorized! Fehler 401</h1>";
        break;
        case "402";
        echo "<img src="img/fehler.png" style="width:126px; height:120px; border-width:2px; border-color:#000000; border-style:solid; float:left; margin-right:5px;" alt="Fehler!" /><h1>Payment Required! Fehler 402</h1>";
        break;
        case "403";
        echo "<img src="img/fehler.png" style="width:126px; height:120px; border-width:2px; border-color:#000000; border-style:solid; float:left; margin-right:5px;" alt="Fehler!" /><h1>Forbidden! Fehler 403</h1>";
        break;
        case "404";
        echo "<img src="img/fehler.png" style="width:126px; height:120px; border-width:2px; border-color:#000000; border-style:solid; float:left; margin-right:5px;" alt="Fehler!" /><h1>Fehler  404</h1>
    //und so weiter
    }

    nur wird mein 'echo' ignoriert. ich denke ich hab irgendwas vergessn, aber ich komm nicht dahinter

    lg
    azok(=freak)

    1. Hi,

      eine switch abfrage, die so aussieht:

      <?php
      case "400";

      Und wo ist da der Switch?

      Warum gibst Du in jedem Zweig dasselbe Bild aus? Das kann man auch einmal vorher machen.

      cu,
      Andreas

      --
      MudGuard? Siehe http://www.Mud-Guard.de/
      Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
      1. hi!

        <?php
        case "400";

        Und wo ist da der Switch?

        hab das beim posten vergessen zu schreiben bzw. zu markieren und einfügen. sieht bei mir im php script so aus:

        <?php
        switch($_GET['errorcode'])
         {
         case "400";
         echo "<img src="img/fehler.png" style="width:126px; height:120px; border-width:2px; border-color:#000000; border-style:solid; float:left; margin-right:5px;" alt="Fehler!" /><h1 style="color:#000000;">Bad Request! Fehler 400</h1>";
         break;
        //und so weiter
        }
        ?>

        lg
        azok(=freak)