Robert: [Perl] Warum funzt meine if-Anweisung nicht

Moin! Moin!

Ich habe folgendes Problem mit meinem Script (Perl):
Ich logge mich in einen geschützten Bereich (.htaccess) mit dem Benutzername "hans" ein und will jetzt (wenn der Benutzername = hans ist) eine, mittels CGI (Perl) generierte, Seite anzeigen lassen.

Hier die wichtigen Auszüge:

Variablendefinition:
$benutzer="$ENV{REMOTE_USER}";
$admin1="hans";

Mein Versuch:
if ($benutzer eq $admin1){&seite_anzeigen}
else {&fehler_anzeigen}

Problem:
Die If-Anweisung will einfach nicht das tun, was ich will, nämlich zu sub seite_anzeigen gehen.
Ich habe das ganze auch schon mit

unless ($benutzer eq $admin1){
    &fehler_anzeigen;
    next;}
    &seite_anzeigen;

ausprobiert.

Wer kann mir sagen wo ich da den Fehler mache???

Schon mal vielen Dank.

Gruß

Robert

  1. Hallo,

    Mein Versuch:
    if ($benutzer eq $admin1){&seite_anzeigen}
    else {&fehler_anzeigen}

    Die If-Anweisung will einfach nicht das tun, was ich will, nämlich zu sub seite_anzeigen gehen.

    "Das Universum ist case-sensitiv" hat hier mal ein äußerst kluger Solid einmal gemeint.
    Also solltest Du einmal sehen, ob $benutzer auch wirklich 'hans' als Inhalt hat, und nicht etwa 'Hans' oder, ganz gemein, 'hans ' (was aber jetzt nichts mit der case-Sensitivität des UNiversums zu tun hat).

    Grüße
      Klaus

    1. ...Fehler gefunden!

      Der Server hat mir die Variable einfach nicht geliefert. Eigentlich tut er das schon - aber nur, wenn ich mich in einem geschützten Bereich aufhalte. Das Script lag aber dummer weise nicht in einem solchen Bereich. Daher war die Variable leer (= '').

      Trozdem Danke fürs "Mitdenken"

      Gruß

      Robert

  2. Moin! Moin!

    Ich habe folgendes Problem mit meinem Script (Perl):
    Ich logge mich in einen geschützten Bereich (.htaccess) mit dem Benutzername "hans" ein und will jetzt (wenn der Benutzername = hans ist) eine, mittels CGI (Perl) generierte, Seite anzeigen lassen.

    Hier die wichtigen Auszüge:

    Variablendefinition:
    $benutzer="$ENV{REMOTE_USER}";

    Liefert Dir der Server diese Variable denn auch??

    $admin1="hans";

    Mein Versuch:
    if ($benutzer eq $admin1){&seite_anzeigen}
    else {&fehler_anzeigen}

    Ohne Semikolon???

    Problem:
    Die If-Anweisung will einfach nicht das tun, was ich will, nämlich zu sub seite_anzeigen gehen.
    Ich habe das ganze auch schon mit

    unless ($benutzer eq $admin1){
        &fehler_anzeigen;
        next;}
        &seite_anzeigen;

    ausprobiert.

    Wer kann mir sagen wo ich da den Fehler mache???

    Schon mal vielen Dank.

    Gruß

    Robert

    Hi Robert,

    bekommst Du denn eine Fehlermeldung oder was passiert??

    Mikki

    1. ...Fehler gefunden!

      Moin! Moin!

      Ich habe folgendes Problem mit meinem Script (Perl):
      Ich logge mich in einen geschützten Bereich (.htaccess) mit dem Benutzername "hans" ein und will jetzt (wenn der Benutzername = hans ist) eine, mittels CGI (Perl) generierte, Seite anzeigen lassen.

      Hier die wichtigen Auszüge:

      Variablendefinition:
      $benutzer="$ENV{REMOTE_USER}";

      Liefert Dir der Server diese Variable denn auch??

      Eigentlich schon - aber nur, wenn ich mich in einem geschützten Bereich aufhalte. Das Script lag aber dummer weise nicht in einem solchen Bereich. Daher war die Variable leer (= '').

      $admin1="hans";

      Mein Versuch:
      if ($benutzer eq $admin1){&seite_anzeigen}
      else {&fehler_anzeigen}

      Ohne Semikolon???

      ...die waren im Script natürlich dabei. Hab ich nur hier beim posten vergessen.

      Problem:
      Die If-Anweisung will einfach nicht das tun, was ich will, nämlich zu sub seite_anzeigen gehen.
      Ich habe das ganze auch schon mit

      unless ($benutzer eq $admin1){
          &fehler_anzeigen;
          next;}
          &seite_anzeigen;

      ausprobiert.

      Wer kann mir sagen wo ich da den Fehler mache???

      Schon mal vielen Dank.

      Gruß

      Robert

      Hi Robert,

      bekommst Du denn eine Fehlermeldung oder was passiert??

      ...keine Fehlermeldung. Das Script springt gleich zur else Anweisung (Logisch -> siehe oben).

      Mikki

      Wie gesagt. Problem gelöst.

      Trozdem Danke fürs "Mitdenken"

      Gruß

      Robert