Julian Budke: function authenticate() erzeugt Fehlermeldung

Hallo,

ich habe ein kleines Problem. Ich möchte anhand von "function authenticate()" Usern die Möglichkeit geben sich auszuloggen, leider befindet sich schon in der ersten Zeile ein Fehler. ( Parse error: parse error, unexpected T_STRING, expecting '{' in /is/htdocs/28570/www.team-prometheus.de/claudius/admin/logout.php )

Da ich mich mit php nicht so gut auskenne kann ich diesen aber beim besten Willen nicht finden, auf mehreren Referenzseiten wurde die Lösung als praktikabel angegben.

Ich hoffe ihr könnt mir erklären warum es nur bei mir nicht funktioniert. ;)

<?

function authenticate() {
       setcookie("noauth","");
        header( "WWW-authenticate:  Basic realm="test"");
      header( "HTTP/1.0  401  Unauthorized");
     echo "You must enter user name";
       exit ;
   }

if  (   !isset($PHP_AUTH_USER) ||  ($logoff==1) && $noauth=="yes"  )   {
   authenticate();
   }

?>

Schonmal vielen Dank...

  1. Hallo,

    ich habe ein kleines Problem. Ich möchte anhand von "function authenticate()" Usern die Möglichkeit geben sich auszuloggen, leider befindet sich schon in der ersten Zeile ein Fehler. ( Parse error: parse error, unexpected T_STRING, expecting '{' in /is/htdocs/28570/www.team-prometheus.de/claudius/admin/logout.php )

    [...]

    <?

    function authenticate() {
           setcookie("noauth","");
            header( "WWW-authenticate:  Basic realm="test"");
          header( "HTTP/1.0  401  Unauthorized");
         echo "You must enter user name";
           exit ;
       }

    if  (   !isset($PHP_AUTH_USER) ||  ($logoff==1) && $noauth=="yes"  )   {
       authenticate();
       }

    ?>

    Schonmal vielen Dank...

    Wenn ich dein Script kopiere und auf meinem Server ausführe bekomme ich keinen Parse Error angezeigt... aber das ist doch wohl auch nicht die gesamte logout.php, oder?

    Gruß,
    Zeek

    1. if  (   !isset($PHP_AUTH_USER) ||  ($logoff==1) && $noauth=="yes"  )   {

      authenticate();
         }
       ?>
      Schonmal vielen Dank...
      Wenn ich dein Script kopiere und auf meinem Server ausführe bekomme ich keinen Parse Error angezeigt... aber das ist doch wohl auch nicht die gesamte logout.php, oder?

      ursprünglich nicht. Ich habe es nur versucht auf diese Zeilen zu reduzieren, da immer der Fehler geliefert wurde.
      Interessant vor allem da ich die Zeilen lediglich per Copy und Paste von einer phpReferenzseite gezogen habe, in der steht das dies die beste Methode wäre per HTTP Authentifikation eingeloggte Benutzer auszuloggen.

      Also wenn jemand ne bessere Idee hat würde ich mich sehr freuen.

  2. Hallo!

    <?

    function authenticate() {
           setcookie("noauth","");
            header( "WWW-authenticate:  Basic realm="test"");
          header( "HTTP/1.0  401  Unauthorized");
         echo "You must enter user name";
           exit ;
       }

    if  (   !isset($PHP_AUTH_USER) ||  ($logoff==1) && $noauth=="yes"  )   {
       authenticate();
       }

    ?>

    Also ich sehe auch keinen Fehler. Zumal die erste Zeile leer ist?!
    Bist Du sicher dass Du das nicht irgendwo einbindest, oder sowas? Übrigens funktioniert das ganze nur wenn Du die Modul-Version von PHP verwendest, mit CGI geht das nicht. Und Du solltest nicht $PHP_AUTH_USER verwenden, sondern $_SYSTEM['PHP_AUTH_USER'].
    Was ist $logoff? Ich hoffe doch kein GET oder POST-Parameter? Denn die schreibt man als $_GET['logoff'] bzw. $_POST['logoff'].

    Grüße
    Andreas

    1. function authenticate() {
             setcookie("noauth","");
              header( "WWW-authenticate:  Basic realm="test"");
            header( "HTTP/1.0  401  Unauthorized");
           echo "You must enter user name";
             exit ;

      Also ich sehe auch keinen Fehler. Zumal die erste Zeile leer ist?!

      Sorry, meinte natürlich die zweite Zeile. ;)

      Bist Du sicher dass Du das nicht irgendwo einbindest, oder sowas?
      Übrigens funktioniert das ganze nur wenn Du die Modul-Version von
      PHP verwendest, mit CGI geht das nicht. Und Du solltest nicht

      Ah, da liegt der Hund begraben. Ich versuche es also hier falsch.

      $PHP_AUTH_USER verwenden, sondern $_SYSTEM['PHP_AUTH_USER'].

      Mh... Das werde ich dann auch ändern.

      Was ist $logoff? Ich hoffe doch kein GET oder POST-Parameter?
      Denn die schreibt man als $_GET['logoff'] bzw. $_POST['logoff'].

      Nein, $logoff 1 oder 0 wird übergeben von der vorangegangen Seite

      vielen Dank auf jeden Fall...
      Werde heute nacht mal probieren ob es mit euren Vorschlägen besser klappt.