m.mietke: $_SERVER[REQUEST_URI]

Hallo zusammen,

ich möchte, daß man mir den 404- Fehler durch einfachen Klick auf einen button melden kann und ich gleichzeitig den Dateipfad mitgeteilt bekomme.

Im Forumsarchiv (forum.de.selfhtml.org/archiv/2004/10/t92841/#m560209) habe ich schon gefunden, wie man den Dateipfad auslesen kann. Offensichtlich über: $_SERVER[REQUEST_URI].

Wie binde ich aber diesen Befehl korrekt ein? So, wie ich es unten gemacht habe, geht es schonmal nicht:

<?php  
mail("testempfaenger@testempfaenger.de", "Fehler auf website", "Auf der Seite $_SERVER['REQUEST_URI'] ist ein fehlerhafter Link. Bitte beheben!", "From: testsender@testsender.de");  
?>  

Ich bin für jede Hilfe dankbar!
Freundliche Grüße,
m.mietke

  1. Hallo m.mietke

    Wie binde ich aber diesen Befehl korrekt ein? So, wie ich es unten gemacht habe, geht es schonmal nicht:

    Welchen Befehl?

    ---
    $_SERVER ist ein Array, das Informationen wie Header, Pfade und die verschiedenen Wege, das Skript anzusprechen. Die Einträge in diesem Array werden vom Webserver erstellt. Es gibt keine Garantie dafür, dass jeder Webserver alle möglichen Einträge unterstützt - Server können einige weglassen oder andere Einträge unterstützen, die hier nicht aufgeführt sind. Das meint, die meisten der Variablen werden in der» CGI 1.1-Spezifikation ausgewiesen, daher sollten Sie diese als von Ihrem Webserver unterstützt erwarten können.
    ---
    Quelle: http://docs.php.net/manual/de/reserved.variables.server.php (Immer empfehlenswert)

    <?php

    mail("testempfaenger@testempfaenger.de", "Fehler auf website", "Auf der Seite $_SERVER['REQUEST_URI'] ist ein fehlerhafter Link. Bitte beheben!", "From: testsender@testsender.de");
    ?>

      
    Debugausgaben alla echo helfen oft weiter ;-)  
      
    Du könntest dir auch testweise einfach mal $\_SERVER['REQUEST\_URI'] ausgeben lassen.  
      
    Ansonsten helfen sicherlich genauere Beschreibungen als "geht nicht" weiter ;-)  
      
    Grüße von hier  
    s
    
  2. Wie binde ich aber diesen Befehl korrekt ein? So, wie ich es unten gemacht habe, geht es schonmal nicht:

    <?php

    mail("testempfaenger@testempfaenger.de", "Fehler auf website", "Auf der Seite $_SERVER['REQUEST_URI'] ist ein fehlerhafter Link. Bitte beheben!", "From: testsender@testsender.de");
    ?>

      
    Du willst dir also zusenden lassen:  
      
    "Auf der Seite 'Url welche Mailversand PHP irgendwie inkludiert' ist ein fehlerhafter Link. Bitte beheben!";  
      
    mfg Beat
    
    -- 
    Woran ich arbeite:  
    [X-Torah](http://www.elcappuccino.ch/cgi/tok.pl?extern=1-pub-com3306-1)  
    
    ><o(((°>       ><o(((°>  
    
       <°)))o><                      ><o(((°>o  
    
    
    1. Du willst dir also zusenden lassen:

      "Auf der Seite 'Url welche Mailversand PHP irgendwie inkludiert' ist ein fehlerhafter Link. Bitte beheben!";

      Ja, genau, Beat.
      Ich will, daß der user nur auf einen button zu klicken braucht und mir damit den Pfad der Seite mit dem fehlerhaften link (von der er gerade kommt) übermittelt.

      Konnte ich die Problemstellung klarmachen?

      Wie müßte die entsprechende PHP- Anweisung aussehen?

      Danke für Hilfe,
      m.mietke

      1. Du willst dir also zusenden lassen:
        "Auf der Seite 'Url welche Mailversand PHP irgendwie inkludiert' ist ein fehlerhafter Link. Bitte beheben!";

        Ja, genau, Beat.
        Ich will, daß der user nur auf einen button zu klicken braucht und mir damit den Pfad der Seite mit dem fehlerhaften link (von der er gerade kommt) übermittelt.
        Konnte ich die Problemstellung klarmachen?

        Wieso willst du das?
        Wieso soll ich den Button drücken im dir eine Seite zu melden, die du vor wenigen Tagen mit Absicht entfernt hast?
        Wieso soll ich eine fehlende Seite melden die es nie gab, nur weil ich in einem Board einen falsch geschriebenen Link betätigte?
        Wieso willst du mich glauben machen, dass dieser Button da plötzlich eine nie existierende Seite erzeugen wird?

        mfg Beat

        --
        Woran ich arbeite:
        X-Torah
        1. Ich will, daß der user nur auf einen button zu klicken braucht und mir damit den Pfad der Seite mit dem fehlerhaften link (von der er gerade kommt) übermittelt.

          Wieso willst du das?
          Wieso soll ich den Button drücken im dir eine Seite zu melden, die du vor wenigen Tagen mit Absicht entfernt hast?
          Wieso soll ich eine fehlende Seite melden die es nie gab, nur weil ich in einem Board einen falsch geschriebenen Link betätigte?
          Wieso willst du mich glauben machen, dass dieser Button da plötzlich eine nie existierende Seite erzeugen wird?

          mfg Beat

          Beat,

          Danke für Deine Nachricht. Ich glaube, ich konnte noch nicht klarmachen, wofür die Meldung des users an mich gut sein soll.
          Also:

          Die Meldung soll nur dazu dienen, mir selber einen Fehler auf meiner Seite anzuzeigen. Wenn man alles im code schreibt, kann es nun mal leider irgendwann passieren, daß sich ein Fehler einschleicht und ein link nicht funktioniert. Wenn nun der user einfach die übliche 404er Fehlermeldung erhält, ärgert er sich, aber ich bekomme davon wahrscheinlich nichts mit. Daher dachte ich, eine 'Fehlerseite' selber zu erstellen, auf welcher ich den user freundlich bitte, mir doch Bescheid zu geben wegen des fehlerhaften links. Um es ihm möglichst einfach zu machen, wollte ich, daß er dazu nur auf einen button klicken muß.
          Nun, wenn ich dann eine mail bekomme, ist es halt für mich praktisch, wenn diese mail mir gleich den Pfad anzeigt, wo sich der user zuletzt befunden hat. Es geht natürlich nur um Pfade auf meiner eigenen homepage. Wenn jemand in einem Forum einen falschen Pfad angibt, kann ich es natürlich auch nicht ändern.

          Wüßtest Du eine Lösung?
          Danke und Gruß,
          m.mietke

          1. Danke für Deine Nachricht. Ich glaube, ich konnte noch nicht klarmachen, wofür die Meldung des users an mich gut sein soll.
            Also:
            Die Meldung soll nur dazu dienen, mir selber einen Fehler auf meiner Seite anzuzeigen. Wenn man alles im code schreibt, kann es nun mal leider irgendwann passieren, daß sich ein Fehler einschleicht und ein link nicht funktioniert.

            Es gibt eine Weise, wie du deine gewünschte Information erhältst: In der Server ErrorLog
            Wenn es darum geht, falsche interne Verlinkung zu testen, dann würde ich dir eher ein separates Script empfehlen, das genau diesen Test macht, das du aber in Abständen manuell ausführst.

            Falls du (aus was für einem Grund auch immer) keinen Zugang zu einer Errorlog hast, würde ich empfehlen, eine 404 Seite zu basteln, die dann den Request in eine Datei schreibt, welche dir verfügbar ist.
            Dadurch brauchst du gar nicht mehr auf Interaktion mit einem User zu kalkulieren.

            Die Frage ist bloss, ob der Server es dir erlaubt, alternative 404 Seiten zu schreiben. In der Regel ist dies der Fall.
            In SELFHTML Doku gibt es dazu ein Beispiel.
            http://de.selfhtml.org/servercgi/server/htaccess.htm#fehlermeldungen

            Auf dieser alternativen Seite (wohl eine php Seite) kannst du dann auch genau das machen, was du vorhast.
            "Wollen Sie einen Fehler berichten?"
            Mit einer url leitst du dann zu einer Kontaktseite, wo Fehler allgemein mitgeteilt werden können.
            Dass der Link nicht funktionierte, wirst du ja dann in deiner Log sehen.

            mfg Beat

            --
            Woran ich arbeite:
            X-Torah
            ><o(((°>     ><o(((°>
               <°)))o><                      ><o(((°>o
            1. Danke für Deine Nachricht. Ich glaube, ich konnte noch nicht klarmachen, wofür die Meldung des users an mich gut sein soll.
              Also:
              Die Meldung soll nur dazu dienen, mir selber einen Fehler auf meiner Seite anzuzeigen. Wenn man alles im code schreibt, kann es nun mal leider irgendwann passieren, daß sich ein Fehler einschleicht und ein link nicht funktioniert.

              Es gibt eine Weise, wie du deine gewünschte Information erhältst: In der Server ErrorLog
              Wenn es darum geht, falsche interne Verlinkung zu testen, dann würde ich dir eher ein separates Script empfehlen, das genau diesen Test macht, das du aber in Abständen manuell ausführst.

              Falls du (aus was für einem Grund auch immer) keinen Zugang zu einer Errorlog hast, würde ich empfehlen, eine 404 Seite zu basteln, die dann den Request in eine Datei schreibt, welche dir verfügbar ist.
              Dadurch brauchst du gar nicht mehr auf Interaktion mit einem User zu kalkulieren.

              Die Frage ist bloss, ob der Server es dir erlaubt, alternative 404 Seiten zu schreiben. In der Regel ist dies der Fall.
              In SELFHTML Doku gibt es dazu ein Beispiel.
              http://de.selfhtml.org/servercgi/server/htaccess.htm#fehlermeldungen

              Auf dieser alternativen Seite (wohl eine php Seite) kannst du dann auch genau das machen, was du vorhast.
              "Wollen Sie einen Fehler berichten?"
              Mit einer url leitst du dann zu einer Kontaktseite, wo Fehler allgemein mitgeteilt werden können.
              Dass der Link nicht funktionierte, wirst du ja dann in deiner Log sehen.

              mfg Beat

              Danke für die Tips, Beat.
              Jetzt reden wir von derselben Sache.
              Wahrscheinlich hast Du recht, daß es am besten ist, ganz auf die user- Mithilfe zu verzichten, und lieber gelegentlich ein separates Script zur Kontrolle auszuführen. War ich noch gar nicht drauf gekommen. Habe jetzt ein sehr schönes Programm dafür gefunden, welches genau dies tut: eine komplette Seite auf fehlerhafte links zu überprüfen: http://home.snafu.de/tilman/xenulink.html
              Es ist freeware und geht sehr gut, und jetzt werde ich einfach dieses Programm benutzen und alles ist gut. Dann brauche ich gar keine Fehlerseite auf den Server legen und der user wird nicht genervt - das ist die Hauptsache, oder?
              Vielen Dank für den Gedankenanstoß!
              Gruß von
              m.mietke

              1. hi,

                Dann brauche ich gar keine Fehlerseite auf den Server legen und der user wird nicht genervt - das ist die Hauptsache, oder?

                Nein, lass deine User nicht im Regen stehen.

                mfg

                1. hi,

                  Dann brauche ich gar keine Fehlerseite auf den Server legen und der user wird nicht genervt - das ist die Hauptsache, oder?

                  Nein, lass deine User nicht im Regen stehen.

                  mfg

                  Aber ich will doch meine Seite selber testen, so daß gar kein fehlerhafter link mehr drauf sein müßte. Dann könnte es höchstens noch passieren, daß eben besagter Tippfehler passiert oder ein veralteter link versucht wird: in diesem Fall ist es bei mir derzeit so eingestellt, daß der user dann automatisch auf meiner index- Seite landet. Das ist doch okay finde ich?

                  Gruß von
                  m.mietke

                  1. hi,

                    Aber ich will doch meine Seite selber testen, so daß gar kein fehlerhafter link mehr drauf sein müßte.

                    Es geht ja nicht um Fehlerhafte Links, die du dir ausversehen einbaust.
                    Wenn ich Beispielsweise in diesem Posting auf eine Seite deiner Domain verlinken würde, die es nicht gibt, hast du kurz nachdem dieser Thread im Archiv ist Dutzende Roboter, die auf dieser Seite landen.

                    Diese Blechkisten kommen mit Weiterleitungen nicht klar und spielen beleidigte Leberwurst, manche gehen sogar soweit, das sie dich aus ihrer Liste streichen[1].

                    Dann könnte es höchstens noch passieren, daß eben besagter Tippfehler passiert oder ein veralteter link versucht wird: in diesem Fall ist es bei mir derzeit so eingestellt, daß der user dann automatisch auf meiner index- Seite landet. Das ist doch okay finde ich?

                    Damit irritierst du deine User, wenn es die angeforderte Seite/ URI nicht gibt, solltest du das dem User mitteilen.

                    Gerade bei veralteten Links solltest du dir die Mühe machen und einen
                    Redirect Gone /Pfad/zur/Seite.html
                    in deine .htaccess eintragen, dafür ist der Statuscode 410 gedacht.

                    mfg
                    [1] Hab ich mir sagen lassen

                    1. hi,

                      Aber ich will doch meine Seite selber testen, so daß gar kein fehlerhafter link mehr drauf sein müßte.

                      Es geht ja nicht um Fehlerhafte Links, die du dir ausversehen einbaust.
                      Wenn ich Beispielsweise in diesem Posting auf eine Seite deiner Domain verlinken würde, die es nicht gibt, hast du kurz nachdem dieser Thread im Archiv ist Dutzende Roboter, die auf dieser Seite landen.

                      Diese Blechkisten kommen mit Weiterleitungen nicht klar und spielen beleidigte Leberwurst, manche gehen sogar soweit, das sie dich aus ihrer Liste streichen[1].

                      Dann könnte es höchstens noch passieren, daß eben besagter Tippfehler passiert oder ein veralteter link versucht wird: in diesem Fall ist es bei mir derzeit so eingestellt, daß der user dann automatisch auf meiner index- Seite landet. Das ist doch okay finde ich?

                      Damit irritierst du deine User, wenn es die angeforderte Seite/ URI nicht gibt, solltest du das dem User mitteilen.

                      Gerade bei veralteten Links solltest du dir die Mühe machen und einen
                      Redirect Gone /Pfad/zur/Seite.html
                      in deine .htaccess eintragen, dafür ist der Statuscode 410 gedacht.

                      mfg
                      [1] Hab ich mir sagen lassen

                      Hallo Beat und Malcolm,

                      Danke für die weiteren infos. Es wird für mich immer unübersichtlicher, was ich denn nun am besten machen soll, aber ich werde dann wohl eine Fehlerseite einbauen mit einem Hinweis, daß die angeforderte Seite nicht existiert und mit einem button, der den user zu meiner homepage führt.
                      Danke und Gruß,
                      m.mietke

                  2. Dann könnte es höchstens noch passieren, daß eben besagter Tippfehler passiert oder ein veralteter link versucht wird: in diesem Fall ist es bei mir derzeit so eingestellt, daß der user dann automatisch auf meiner index- Seite landet. Das ist doch okay finde ich?

                    Da gibt es ein wenig verschiedene Massnahmen, wie man das einrichten kann. Nicht jede art ist richtig (macht das, was man meint man tue es).
                    Da war kürzlich einer, der einem 404 ein 301 hinterher jagde, wodurch dann die 404 Information gar nicht mehr gesendet wurde.

                    Wenn du hingegen eine 404 Seite schreibst die den META redirect mit geeigneter Verzögerung enthält (plus Link), hast du sowohl die 404 oder 410 Information weitergereicht, als auch einen Einstiegspunkt geliefert für Browser. (nicht alle Agents sind geil auf den Content einer Errormessage.)

                    mfg Beat

                    --
                    Woran ich arbeite:
                    X-Torah
                    ><o(((°>        ><o(((°>
                       <°)))o><                      ><o(((°>o
  3. Hi,

    So, wie ich es unten gemacht habe, geht es schonmal nicht:

    <?php

    mail("testempfaenger@testempfaenger.de", "Fehler auf website", "Auf der Seite $_SERVER['REQUEST_URI'] ist ein fehlerhafter Link. Bitte beheben!", "From: testsender@testsender.de");
    ?>

      
    RTFM: <http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing>  
      
    MfG ChrisB  
      
    
    -- 
    "The Internet: Technological marvel of marvels - but if you don't know \*what\* you're lookin' for on the Internet, it is nothing but a time-sucking vortex from hell."