kostenloser Webspace werbefrei: lima-city


Cookie auf Unterseite setzen und Funktion einbauen

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    hinghaan

    hinghaan hat kostenlosen Webspace.

    Hi an alle!

    Ich hab ein kleines Anliegen,
    ich möchte auf http://www.hinghaan.lima-city.de/ folgendes tag/re">realisieren:
    nach einem Klick auf ein Zahlenfeld soll ein Fenster mit Rätsel aufgehen,nach dem lösen des Rätsels wird ein weiteres Fenster aufgehen und der Aufruf des letzten Fensters (mit Glückwunsch,nem Tusch oder sowas ;-) soll ein Cokie setzen.

    Auf der Hauptseite soll das Cookie ausgelesen werden und dafür sorgen das man einmal gelöste Rätsel nicht nocheinmal machen muß wenn man die Seite erneut besucht.

    vielen Dank schon einmal vorab
    Christian

    function Geklickt(nummer)
    {
    // PopUp-Window Eigenschaften kleines PopUp Fehlermeldung
    Attribute01 = "left=10,top=10,screenX=10,screenY=10,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=500,height=300";
    // PopUp-Window Eigenschaften für die Tagesdatei
    Attribute02 = "left=10,top=10,screenX=10,screenY=10,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=750,height=600";
    var AdventDatum = new Date();
    AdventMonat = AdventDatum.getMonth();
    AdventTag = AdventDatum.getDate();
    // Durchlauf Untersuchungen: Monat, Tag, angeklickte Nummer
    // dabei Dateiname und PopUp-Window Eigenschaften in Variablen schreiben
    // grundsätzlich erst einmal 'gemogelt' anzeigen
    Datei = pfad + "0.htm";
    Eigenschaften = Attribute01;
    // außer: Klicks von Jan - 30. Nov: 'zu früh' anzeigen
    if(AdventMonat < 1 )
    {
    Datei = pfad + "00.htm";
    Eigenschaften = Attribute01;
    var Info = window.open(Datei,'',Eigenschaften);
    }
    // erlaubte Klicks im Dezember
    if(AdventMonat == 1 && nummer <= AdventTag)
    {
    Datei = pfad + nummer + ".htm";
    // Eigenschaften = Attribute02;
    document.getElementById(nummer).src = "transpixel.gif";
    var Info = window.open(Datei,'',Eigenschaften);
    }
    // nicht erlaubte Klicks im Dezember
    if(AdventMonat == 1 && nummer > AdventTag)
    {
    Datei = pfad + "0.htm";
    Eigenschaften = Attribute01;
    var Info = window.open(Datei,'',Eigenschaften);
    }
    }
    //-->
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Du könntest das per Session realisieren. Dabei weist du jedem Benutzer eine ID zu und speicherst in einem Array, welche Fragen er schon gelöst hat. (http://www.google.de/search?q=session+php).

    Ansonsten setzt du das Cookie mittels
    secookie();
    und liest es mit der Superglobalen
    $_COOKIE
    dann aus.
    Zwei Links noch diesbezüglich:
    http://php.net/manual/de/function.setcookie.php
    http://www.php.net/manual/de/reserved.variables.cookies.php

    Vorteile sessionbasiert:
    * Werte werden auf dem Server gespeichert -> keine Manipulation möglich
    * Ist einfacher, da Cokkies, etc. automatisch gespeichert werden

    Nachteile:
    * Session nicht unendlich lang gültig
  4. Autor dieses Themas

    hinghaan

    hinghaan hat kostenlosen Webspace.

    ich glaube mit Session das funktioniert nicht,da es so geplant ist jeden Tag nur ein Fensterchen zu öffnen,oder geht das doch?

    Beitrag zuletzt geändert: 28.2.2011 19:02:23 von hinghaan
  5. k*********h


    also ich finde erstens:
    die auswertung der klicks und die angabe was dann passiert sollte muss dringend serverseitig also sagen wir in php erfolgen.

    zweitens:
    den user tag-übergreifend, also meinetwegen ip-wechselnd und browserupgradent eindeutig auszumachen funktioniert wohl nur über cookie - aber was wenn er den löscht - oder der browser auf sicher gestellt ist ?

    also muss ein log-in mit user/pass her !
    dazu dann am besten eine datenbank worin du auch gleich für jeden user die fortschrittszustände ablegen kannst.


    Beitrag zuletzt geändert: 28.2.2011 22:06:35 von kleines-ich
  6. Mit Session nicht, nein. Aber mit Cookies schon. Das Problem ist halt, dass es ziemlich aufwendig ist, der Session eine Überlebenszeit von mehreren Tagen zu geben. Gut, aufwendig vielleicht nicht gerade (reicht eine Funktion), aber nicht der gute Stil und nicht Sinn von Sessions.
    Ansonsten - wie schon geschrieben - mit
    setcookie([params]);
    den Cookie setzen und mittels der Superglobalen
    $_COOKIE
    auslesen. Ist keine unschaffbare Aufgabe! ;-)
    Was du machen kannst, wenn du deinen Benutzern nicht traust, dass du in deinem Cookie - ähnlich eines Session-Cookie - eine eindeutige Benutzer-ID zuweist und die zugehörigen Daten in einer Datenbank speicherst.
    Problem hierbei: Wenn der Nutzer seine Cookies deaktiviert hat, bzw. nach dem Browsen alle löscht. Da hilft aber Session & Cookie nicht weiter...
  7. Autor dieses Themas

    hinghaan

    hinghaan hat kostenlosen Webspace.

    Danke Euch ersteinmal,mit so schnellen Antworten habe ich nicht gerechnet,aber zuviel Aufwand wollte ich nicht damit treiben,wenn der Nutzer Cookies löscht oder deaktiviert,bekommt er den Hinweis,das er beim nächsten Aufruf der Seite alle schon gelösten Rätsel nocheinmal lösen muß.

    im ursprünglichen Script (ihr verzeiht mir bitte,bis gestern konnte ich javaschript nicht einmal schreiben ;-) )
    wurde das unsichtbar schalten des Deckblattes so gelöst
    function Geklickt(nummer)
    {
    
    document.getElementById(nummer).src = "transpixel.gif";
    }


    die Werte kommen aus diesen Zeilen
    <td><a href="javascript:void(0)" onclick="javascript:Geklickt(1)"><img
     src="1.gif" id="1" alt="1" border="0" height="100" width="100"></a></td>
          <td><a href="javascript:void(0)" onclick="javascript:Geklickt(2)"><img
     src="2.gif" id="2" alt="2" border="0" height="100" width="100"></a></td>
          <td><a href="javascript:voi


    wie realisiert man das mit einem Cookie?
    Wäre es möglich in die Funktion geklickt den Aufruf der Rätselseite einzubauen,bei erfolgreichem Rätsellösen eine Seite mit Glückwünschen und Tusch und gleichzeitig wird ein Cookie geschrieben und ein Button führt wieder auf die Hauptseite wo gleichzeitig das Cookie ausgelesen wird um mit "document.getElementById..."das entsprechende Rätselfeld transparent zu schalten?
  8. Und da muss ich mir doch glatt einen sehr großen Fehler eingestehen...Tut mir wirklich Leid. Bitte entschuldigt mich.
    Wer lesen kann ich klar im Vorteil...Ich hatte angenommen, du willst das per PHP lösen, dann wären meine Linkvorschläge usw. genau richtig.
    Für JavaScript gibts n gutes Tutorial:http://www.html-world.de/program/js_e_6.php.
    Das Realisieren deines Anliegens:
    Wie hast du die Überprüfung des Rätsels gemacht? Ist das eine JavaScript-Funktion oder eine serverseitige? Bei JavaScript schreibst du dir eine Funktion, die das aktuelle Cookie liest, löscht und dann plus der neuen Aufgabennummer speicherst (Meines Wissens gibt es keine Funktion, die Cookies bearbeitet).
    Diese Funktion rufst du auf, nachdem du erfolgreich geprüft hast, dass das Rätsel gelöst wurde.
    Zum Auslesen schreibst du dir eine Funktion, die einen Übergabeparameter der Aufgabennummer erhält und dann true oder false zurückgibt, ob die Nummer im Cookie steht.
    Soweit erst einmal die Denkanstöße. Falls du direkten Code brauchst, kann ich dir leider im Moment nicht sehr viel weiterhelfen, da ich von JavaScript nicht viel Ahnung habe. Aber alle Achtung, dass du in so kurzer Zeit schon so viel gelernt hast! :wink:
  9. Autor dieses Themas

    hinghaan

    hinghaan hat kostenlosen Webspace.

    entschuldigen,wofür?
    für deine hilfsbereitschaft??
    Vielen Dank dafür,das du dir überhaupt die Mühe gemacht und Gedanken wie man das Problem bewältigen kann!
    Wie hast du die Überprüfung des Rätsels gemacht?

    noch gar nicht,wird aber über onload beim aufrufen der Gratulationsseite hinauslaufen.
    Hauptseite - Rätselseite (mehrere Antworten ,die richtige Verlinkt auf - Glückwunschseite

    Was ich noch nicht verstehe,wie ich
    <td><a href="javascript:void(1)" onclick="javascript:Geklickt(1)"><img
     src="1.gif" id="1" alt="1" border="0" height="100" width="100"></a></td
    per function machen soll,weil das "onclick" auch gleichzeitig definiert welcher Bereich transparent gezeichnet wird.
  10. k*********h

    hinghaan schrieb:
    Hi an alle!
    Ich hab ein kleines Anliegen,
    ich möchte auf http://www.hinghaan.lima-city.de/ folgendes realisieren:
    nach einem Klick auf ein Zahlenfeld soll ein Fenster mit Rätsel aufgehen,nach dem lösen des Rätsels wird ein weiteres Fenster aufgehen und der Aufruf des letzten Fensters (mit Glückwunsch,nem Tusch oder sowas ;-) soll ein Cokie setzen.


    also hinghaan bei aller liebe, selbst wenn die auswertung wirklich client-seitig in javascript ablaufen soll solltest du wenigstens die parameterübergabe deiner bild-klick-events weniger auffällig gestalten :wave: sonst sieht ja jeder hans direkt in der statuszeile die richtige antwort.


    siehe http://www.html-world.de/artikel/art_j15.php
    Eine nette - wenn auch manchmal nervende - Spielerei mit cookies ist das merken des Besuchernamens sowie das anschließende wiedererkennen des Besuchers und eine entsprechende Begrüßung. Alles was dazu benötigt wird ist der ausgefragte Name der gespeichert werden muss. Später wird er einfach wieder ausgelesen und in den Begrüßungstext eingebaut. Beispiel:
    function Schreiben(n,w,e)
    {
     var a = new Date();
     a = new Date(a.getTime() +e);
     document.cookie = n+'='+w+'; expires='+a.toGMTString()+';';
    }
    
    function Lesen(n)
    {
     a = document.cookie;
     res = '';
     while(a != '')
     {
      cookiename = a.substring(0,a.search('='));
      cookiewert = a.substring(a.search('=')+1,a.search(';'));
      if(cookiewert == '')
      {cookiewert = a.substring(a.search('=')+1,a.length);}
    
      if(n == cookiename){res = cookiewert;}
    
      i = a.search(';')+1;
      if(i == 0){i = a.length}
      a = a.substring(i,a.length);
     }
     return(res)
    }
    
    function Loeschen(n)
    {
     document.cookie = n+'=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
    } 
    
    text = 'Willkommen %1 auf unserer Homepage!';
    
    function NameMerken()
    {
     a = prompt('Hallo Besucher. Bitte geben Sie Ihren Namen ein.');
     Schreiben('username',a,1000*60*60*24*365);
     NameHolen();
    }
    
    function NameHolen()
    {
     if(document.cookie)
     {
      username = Lesen('username');
      if(username != '')
      {
       b = text.replace('%1',username);
       document.writeln(b);
      }
     }
     else{NameMerken()}
    }

  11. Autor dieses Themas

    hinghaan

    hinghaan hat kostenlosen Webspace.

    sonst sieht ja jeder hans direkt in der statuszeile die richtige antwort.

    sieht er erst wenn er die richtige Antwort gegeben hat,weil das Cookie nicht von der Antwort abhängt sondern erst wenn die richtige Seite aufgerufen wird wird es generiert.

    Beispiel:Welche Farbe hat der Himmel?
    a) rot - Link Seite a
    b) grün - Link Seite b
    c) blau - Link Seite c ,richtige Seite mit dem Code für den Cookie
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!