Ergebnis 1 bis 10 von 10
Like Tree1Likes
  • 1 Post By Junkee[]

Thema: Mit PHP prüfen ob JavaScript im Client aktiviert ist

  1. #1
    Avatar von jspit
    jspit ist offline Lounge-Member
    registriert
    19-06-2009
    Beiträge
    1.710

    Mit PHP prüfen ob JavaScript im Client aktiviert ist

    Bekanntermaßen steht die Information ob JavaScript im Client aktiviert ist nicht direkt für PHP zur Verfügung. Die Information kann nützlich sein, wenn man z.B. nicht mit Weichen arbeiten will und zwei Versionen "mit" und "ohne" Javascript pflegen möchte.
    Da diese Information nur clientseitig zur Verfügung steht, muss man überlegen wie sie zum Server übertragen wird.
    Bei der hier beschriebenen Lösung wird bei aktivierten Javascript die Seite erneut aufgerufen und dabei per GET die Information mitgegeben:
    PHP-Code:
    session_start();
    if(isset(
    $_GET['js_aktiv']))$_SESSION['js_aktiv'] = ($_GET['js_aktiv'] == '1');
    if(
    $_SESSION['js_aktiv'] === NULL) {
      echo 
    '<script type="text/javascript">window.location="'.$_SERVER['PHP_SELF'].'?js_aktiv=1&'.htmlspecialchars(SID).'";</script>';
      
    $_SESSION['js_aktiv'] = false;
    }
    echo 
    $_SESSION['js_aktiv'] ? "JS Aktiv<br>" "JS nicht aktiv<br>"
    Die Information wird in einer Session Variable gespeichert, damit diese besucherabhängig zur Verfügung steht.
    $_SESSION['js_aktiv'] ist true wenn Javascript beim Client aktiviert ist und false wenn es deaktiviert ist.
    Werden die Regeln für die Weitergabe der Session-ID beachtet, steht die Information ob Javascript beim Client aktiv ist auch für weitere Seiten zur Verfügung.
    Geändert von jspit (09-11-2010 um 12:40 Uhr)

  2. #2
    Avatar von Arcsinh
    Arcsinh ist offline Kaiser
    registriert
    03-06-2010
    Beiträge
    1.392

    AW: Mit PHP prüfen ob JavaScript im Client aktiviert ist

    Cool, wusste gar nicht, dass das geht?
    Werde es mal bei Gelegenheit ausprobieren, danke.
    Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Goethe)

  3. #3
    ABNetworks.DE ist offline Routinier
    registriert
    13-01-2003
    Beiträge
    338

    AW: Mit PHP prüfen ob JavaScript im Client aktiviert ist

    Und was ist wenn ich das Skript mit skript.php?js_aktiv=1 aufrufe, aber kein JS installiert habe?

  4. #4
    Avatar von Junkee[]
    Junkee[] ist offline Lounge-Member
    registriert
    08-05-2009
    Ort
    Leonberg
    Beiträge
    3.169

    AW: Mit PHP prüfen ob JavaScript im Client aktiviert ist

    Dann wirst du die Funktionen der Seite nicht nutzen können.
    dertypdernixkan likes this.

  5. #5
    ABNetworks.DE ist offline Routinier
    registriert
    13-01-2003
    Beiträge
    338

    AW: Mit PHP prüfen ob JavaScript im Client aktiviert ist

    Zitat Zitat von Junkee[] Beitrag anzeigen
    Dann wirst du die Funktionen der Seite nicht nutzen können.
    Haha, sinnlose Antwort. Wollte nur auf die Lücken des Skriptes hinweisen.

  6. #6
    Avatar von jspit
    jspit ist offline Lounge-Member
    registriert
    19-06-2009
    Beiträge
    1.710

    AW: Mit PHP prüfen ob JavaScript im Client aktiviert ist

    Zitat Zitat von ABNetworks.DE Beitrag anzeigen
    Und was ist wenn ich das Skript mit skript.php?js_aktiv=1 aufrufe, aber kein JS installiert habe?
    Ich finde die Frage auch berechtigt. So wird der Script ausgetrickst. Abhilfe schafft eine zusätzliche Sessionvariable:
    PHP-Code:
    session_start();
    if(isset(
    $_GET['js_aktiv']) AND isset($_SESSION['aufruf']) AND ($_SESSION['aufruf'] == "ok")) { 
      
    $_SESSION['js_aktiv'] = ($_GET['js_aktiv'] == '1');
      }
    if(
    $_SESSION['js_aktiv'] === NULL) {
      
    $_SESSION['aufruf'] = "ok";
      echo 
    '<script type="text/javascript">window.location="'.$_SERVER['PHP_SELF'].'?js_aktiv=1&'.htmlspecialchars(SID).'";</script>';
      
    $_SESSION['js_aktiv'] = false;
    }
    else 
    $_SESSION['aufruf'] = "";
    echo 
    $_SESSION['js_aktiv'] ? "JS Aktiv<br>" "JS nicht aktiv<br>"
    Es gibt noch eine einfache (und sichere) Alternative, wenn Formulare mit POST benutzt werden. Dafür wird eine Zeile im ersten (Login)Formular spendiert:
    Code:
      <form action="session.php" method="POST" onsubmit="this.js_aktiv.value=1;"> 
      <input type="hidden" name="js_aktiv" value="0" />
         :
      </form>
    Sofern Javascript aktiviert ist wird mit onsubmit value auf 1 gesetzt, wenn nicht bleibt es 0.
    Die Information steht nach dem Absenden des Formulars zur Verfügung und wird in einer Session Variable gespeichert, damit diese wieder besucherabhängig zur Verfügung steht:
    PHP-Code:
    session_start();
    if(isset(
    $_POST['js_aktiv']))$_SESSION['js_aktiv'] = ($_POST['js_aktiv'] == '1');
    if(
    $_SESSION['js_aktiv'] === NULL)$_SESSION['js_aktiv'] = false
    LG jspit
    Geändert von jspit (09-11-2010 um 14:44 Uhr) Grund: Schreifehler

  7. #7
    Avatar von Junkee[]
    Junkee[] ist offline Lounge-Member
    registriert
    08-05-2009
    Ort
    Leonberg
    Beiträge
    3.169

    AW: Mit PHP prüfen ob JavaScript im Client aktiviert ist

    Man kann das Script trotzdem austricksen und es wird immer gehen!

  8. #8
    ABNetworks.DE ist offline Routinier
    registriert
    13-01-2003
    Beiträge
    338

    AW: Mit PHP prüfen ob JavaScript im Client aktiviert ist

    Zitat Zitat von Junkee[] Beitrag anzeigen
    Man kann das Script trotzdem austricksen und es wird immer gehen!
    Hört also bitte auf Skripte zu schreiben. Irgendwie kann man sie immer austricksen! Ist das deine Message?

  9. #9
    Avatar von Junkee[]
    Junkee[] ist offline Lounge-Member
    registriert
    08-05-2009
    Ort
    Leonberg
    Beiträge
    3.169

    AW: Mit PHP prüfen ob JavaScript im Client aktiviert ist

    Nein, meine Nachricht ist: "Vertraut nicht auf das was der Client sagt"

  10. #10
    j-l-n Guest

    AW: Mit PHP prüfen ob JavaScript im Client aktiviert ist

    Hab gerade mir diesen Thread angesehen. Auch wenn er schon ziemlich alt war, trotzdem nützlich. Danke an jspit

Ähnliche Themen

  1. JavaScript Chat-Client (Jabber)
    Von bis im Forum JavaScript
    Antworten: 30
    Letzter Beitrag: 19-02-2010, 11:03
  2. Antworten: 13
    Letzter Beitrag: 21-08-2009, 18:42
  3. cookies aktiviert? prüfen mit php
    Von iam_peter im Forum Serverseitige Programmierung
    Antworten: 1
    Letzter Beitrag: 04-09-2007, 22:23
  4. Mit JavaScript überprüfen ob Client online
    Von jhr-online im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 19-02-2006, 22:51
  5. Prüfen on Checkbox aktiviert ist
    Von Sisko im Forum JavaScript
    Antworten: 10
    Letzter Beitrag: 26-05-2001, 16:35

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •