Alain: #referer check foreach (@ref) geht nicht?

Hallo,
es will einfach nicht :)
Das problem ist folgendes,ich möchte in einem weiterleitungs
cgi ein referer check einbinden bevor es auf ein geschütztes
verzeichniss geht(ich weiss geht auch mit htaccess,möcht ich aber nicht).
Und jetzt hab ich mir die folgende variante ausgedacht:

$ref = $ENV{'HTTP_REFERER'};
@refer = ('http://www.meine.domain.de','http://meine.domain.de');

#referer check
foreach (@refer)
            {
            if ($_ ne $ref) {

print "sorry bad Referer $_ - Access Denied  \n";
    &SendMail(); }  }
ich möchte dabei auch dass der falsche refer url dem user angezeigt
wird,die wird aber nicht angezeigt im printtext?!
oder muss da statt ne was anderes stehen?

gruss vom Alain

  1. Hallo,

    Das problem ist folgendes,ich möchte in einem weiterleitungs
    cgi ein referer check einbinden bevor es auf ein geschütztes
    verzeichniss geht(ich weiss geht auch mit htaccess,möcht ich aber nicht).

    Sinnfrei.

    $ref = $ENV{'HTTP_REFERER'};
    @refer = ('http://www.meine.domain.de','http://meine.domain.de');

    #referer check
    foreach (@refer)
                {
                if ($_ ne $ref) {

    print "sorry bad Referer $_ - Access Denied  \n";
        &SendMail(); }  }

    Da ist ein Logik-Fehler drin. Besser so:

    my $ref   = $ENV{HTTP_REFERER};
    @referers = ('http://www.meine.domain.de','http://meine.domain.de');
    my $found = 0;

    foreach(@referers) {
      if($_ eq $ref) {
        $found = 1;
        break;
      }
    }

    if($found) {
      print "Content-Type: text/plain\n\nJucheissa!";
    }
    else {
      print "Content-Type: text/plain\n\nbad guy! You came from $ref.";
      SendMail();
    }

    Du solltest dir ueberigens mal einen vernuenftigen Formatierungs-Stil
    angewoehnen. Dein Quelltext ist grauenhaft.

    Gruesse,
     CK

    1. Hallo,

      hallo CK,

      Da ist ein Logik-Fehler drin. Besser so:

      Danke für den hinweis

      my $ref   = $ENV{HTTP_REFERER};
      @referers = ('http://www.meine.domain.de','http://meine.domain.de');
      my $found = 0;

      foreach(@referers) {
        if($_ eq $ref) {
          $found = 1;
          break;
        }
      }

      if($found) {
        print "Content-Type: text/plain\n\nJucheissa!";
      }
      else {
        print "Content-Type: text/plain\n\nbad guy! You came from $ref.";
        SendMail();
      }

      Du solltest dir ueberigens mal einen vernuenftigen Formatierungs-Stil
      angewoehnen. Dein Quelltext ist grauenhaft.

      von welchem quelltext sprichst du? vom perl beispiel?
      if ($perl) {warum?} :)

      Gruesse,
      CK

      gruss vom Alain

      1. Hallo,

        Du solltest dir ueberigens mal einen vernuenftigen Formatierungs-Stil
        angewoehnen. Dein Quelltext ist grauenhaft.
        von welchem quelltext sprichst du? vom perl beispiel?
        if ($perl) {warum?} :)

        Merkst du gar keinen Unterschied zwischen dem Quelltext, den ich geschrieben habe
        und dem, den du geschrieben hast? Du

        - benutzt kein 'use strict'
         - benutzt kein 'my'
         - rueckst nicht richtig ein
         - benutzt '&' zum Aufrufen von Funktionen

        Benutzt du den -w-Schalter von Perl?

        Lies vielleicht mal bei Gelegenheit 'perldoc perlstyle` (auch auf
        http://www.perldoc.com/ zu finden).

        Deine Scripte waeren unter mod_perl *nicht* lauffaehig.

        Gruesse,
         CK

        1. Hallo,

          hallo CK nochma,
          ok aber ich bin ja *noch* Anfänger und ich finds gut,dass Du mich darauf
          aufmerksam machst,denn ich weiss ja auch nicht was richtig ist
          oder falsch wenn ich *noch* keinen Überblick vom perl gesetz habe.
          Ich habe das "use strict" ...etc. schon gelesen im selhtml,
          dass das z.B. nützlich ist bei fehlerhaftem ablauf ,fehler zu finden.
          Aber wie gesagt,wenn man nicht alle Funktionen und anwendungen vom perl
          weiss,dann kann man schlecht einschätzen ob jetzt das wircklich ein gut
          geschriebenes cgi ist oder nicht.
          Wenn ich Dir sagen würde bring mir einen kaffe und Du bringst mir einen Kaffe
          ohne rahm und ich Dir sage "he Du","warum ist da kein rahm drinn?"-"schlechter service!!!"
          naja,wenn du nicht weisst was rahm ist und man Kaffe
          normalerweise mit rahm trinkt ,dann wären wir gleich weit oder?
          gruss vom Alain

          Du solltest dir ueberigens mal einen vernuenftigen Formatierungs-Stil
          angewoehnen. Dein Quelltext ist grauenhaft.
          von welchem quelltext sprichst du? vom perl beispiel?
          if ($perl) {warum?} :)

          Merkst du gar keinen Unterschied zwischen dem Quelltext, den ich geschrieben habe
          und dem, den du geschrieben hast? Du

          • benutzt kein 'use strict'
          • benutzt kein 'my'
          • rueckst nicht richtig ein
          • benutzt '&' zum Aufrufen von Funktionen

          Benutzt du den -w-Schalter von Perl?

          Lies vielleicht mal bei Gelegenheit 'perldoc perlstyle` (auch auf
          http://www.perldoc.com/ zu finden).

          Deine Scripte waeren unter mod_perl *nicht* lauffaehig.

          Gruesse,
          CK

          1. Hallo,

            [... Anfaenger koennen nicht wissen, was gut ist ...]

            Deshalb habe ich mir die Muehe gemacht und dir eine Antwort geschrieben.

            Gruesse,
             CK