kostenloser Webspace werbefrei: lima-city


Adventskalender

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    manug9

    manug9 hat kostenlosen Webspace.

    Hi,

    ich würde gerne einen digitalen Adventskalender basteln.
    Ich habe mir das ganze folgendermaßen vorgestellt:
    Eine Seite mit 24 Bildern, eine kleine MYSQL Datenbank, in der ich speichere, ob ein Bild schon geöffnet wurde und ob es an diesem Tag geöffnet werden darf und mit PHP auf die Datenbank zugreifen.

    Jetzt habe ich das ganze bisher folgendermaßen implementiert (ich bin ein totaler PHP-Depp):
    Ich lese die Daten aus der Datenbank aus, und speichere sie in versteckten <input> - Feldern. Wenn man auf ein Bild klickt, wird per Javascript das entsprechende <input>-Feld ausgelesen und je nachdem welche Daten dort enthalten sind, wird das Fenster geöffnet, oder eine Meldung ausgegeben.
    Bei Fenstern die schonmal geöffnet wurden, soll nicht das Standardbild angezeigt werden, sondern ein anderes Bild.
    Das funktioniert alles ganz gut, nur habe ich jetzt das Problem, das ich nicht weiß, wie ich meine Daten aus den <input>-Feldern wieder in die Datenbank zurückschreiben kann, nachdem ich sie durch das Javascript geändert habe.
    Kann man per PHP <input>-Feld Daten auslesen?

    Oder habt ihr einen ganz anderen, besseren Ansatz das zu implementieren?

    Ich hoffe, ihr versteht was ich meine...

    Ciao, manug9
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Du hast einen Supermarkt vor der GHaustür, fährst aber trotzdem 20km in den nächsten Ort, um in einem gleichen Supermarkt einzukaufen. War jetzt ein blödes beispiel, was ich sagen möchte: Geht's noch umständlicher?
    Was du da mit Input-Feldern machen möchtest, weiß ich nicht aber es ist Quatsch!

    Ich verstehe auch nicht ganz, wieso du die Türen geöffnet lassen möchtest, es werden mehrere Besucher auf deine Seite kommen... Wenn du die Türen für den jeweiligen Client geöffnet lassen möchtest, mach es mit Cookies...

    Also:
    Erstelle eine Seite mit 24 Bildchen.

    Erstelle eine Datei, beispielsweise "show.php".
    Die 24 bildchen verlinkst du mit "show.php?show=12" (das wäre jetzt der 12. Dezember).
    In der show.php müsstest du den übergebenen Wert "show" per GET auslesen ($_GET['show']).
    Dann kannst du mittels mktime() einen Timestamp des 12. Dezembers um 0:00:00 Uhr erstellen (der erste Zeitpunkt, zu dem Kabelndertürchen 12 angezeigt werden darf) und diesen Timestamp mit dem aktuellen vergleichen... Ist der aktuelle Timestamp kleienr als der mit mktime() ermittelte, darf das "Türchen nicht geöffnet" werden (also es wird eine Meldung angezeigt), weil der Termin in der Zulunft liegt... Ist der aktuelle Timestamp größer als der ermittelte, darfst du das "Türchen öffnen" (Wert aus Datenbank oder Datei auslesen (oder einfach direkt in der show.php den Wert speichern, wenns nur was kleines ist) und darstellen).

    Wenn du jetzt noch mit Cookies die schon geöffneten Türen offen halten möchtest, musst du bei jedem Mal, bei dem eine Tür erfolgreich geöffnet wird einen Cookie für diese Tür setzen, der das Datum (reicht ja die 12) der Tür enthält. Ablaufen sollte der Cookie logischerweise erst nach dem 24. Dezember.
    Dann überprüfst du auf der Seite mit den 24 Bildchen für jedes Türchen, ob ein Cookie esetzt ist und stellst dementsprechend eine geöffnete Tür dar.


    Verstanden?
    Bei Rückfragen und Unklarheiten - fragen...


    Achso, noch als Hinweis - der Dezember ist noch dreieinhalb Monate hin...


    gruß
    ferdinand24

    Beitrag geändert: 16.8.2007 13:33:43 von ferdinand24
  4. Autor dieses Themas

    manug9

    manug9 hat kostenlosen Webspace.

    Hi,

    LOL, der mit dem Supermarkt ist gut.
    Also es soll nur ein Person darauf zugreifen, es soll nicht öffentlich werden sondern ein persönliches Ding.
    Darum will ich auch, dass beim Aufruf der Seite, die Fenster die schonmal geöffnet wurden, als offen angezeigt werden. Es muss gar nichts mit dem Timestamp etc. gemacht werden, dass jeden Tag nur ein Fenster geöffnet wird, dafür sorge ich schon ;)
    Eigentlich funktioniert alles soweit ganz gut, nur, kann mir jemand sagen, wie ich folgende PHP Anweisung in eine Javascript Funktion kriege?
    <?php

    mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());

    ?>

    Bei mir bringt er dann immer die Fehlermeldung "Unfinished String literal..."

    Hab schon alle Möglichkeiten, die ich in JS kenne durchprobiert.
  5. Also ich weiß zwar nicht genau, was du damit sagen möchtest, die PHP anweisung in eine JavaScript Funktion zubekommen. Aber hat dir schon einmal jemand gesagt, dass PHP und JavaScrtipt 2 total verschiedene Sachen sind. PHP wird auf dem Server ausgeführt und JavaScript führt der Browser aus. Mit JavaScript kannst du keine MySQL-Fehlermeldungen anzeigen, es sei denn du nutzt AJAX (eine Verbindung zwischen JS und PHP), wird ich dir aber nicht empfehlen zu probieren, da du ja gesagt hast, dass du ein totaler PHP-Depp bist und um AJAX zu lernen sollte man sowohl in JS als auch PHP firm sein.
    Aber warum möchtest du diese PHP Anweisung eingentlich in einer JavaScript Funktion haben?

  6. Hi,

    LOL, der mit dem Supermarkt ist gut.
    Also es soll nur ein Person darauf zugreifen, es soll nicht öffentlich werden sondern ein persönliches Ding.
    Darum will ich auch, dass beim Aufruf der Seite, die Fenster die schonmal geöffnet wurden, als offen angezeigt werden. Es muss gar nichts mit dem Timestamp etc. gemacht werden, dass jeden Tag nur ein Fenster geöffnet wird, dafür sorge ich schon ;)
    Eigentlich funktioniert alles soweit ganz gut, nur, kann mir jemand sagen, wie ich folgende PHP Anweisung in eine Javascript Funktion kriege?
    <?php

    mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());

    ?>

    Bei mir bringt er dann immer die Fehlermeldung "Unfinished String literal..."

    Hab schon alle Möglichkeiten, die ich in JS kenne durchprobiert.


    Lass dein JavaScrpt mal komplett aus dem Spiel. Wie hugo schon sagte, hat das mit PHP absolut nichts zu tun.

    Mach die Seite mit 24 Bildchen, eine Datei show.php und eine Datenbank mit Tabelle (nennen wir sie "calendar"), die aufgebaut ist: Tag (int), geöffnet (1,0)(= int), inhalt (text)
    Aaaalso, der genaue Aufbau der Tabelle: day (int), opened (int), contents (text)

    show.php übergibst du per GET das Datum (show.php?day=13). Dann liest du aus der Datenbank mit die Daten aus, gibst den Inhalt aus und füllst das Feld "opened" mit TRUE (1):


    show.php
    <?php
    //Zur Datenbank verbinden
    //[...]
    
    $sql = mysql_query("SELECT contents FROM calendar WHERE day = '".$_GET['day']."' LIMIT 1");
    $row = mysql_fetch_object($sql);
    
    //Inhalt ausgeben
    echo $row->contents;
    
    //opened = true
    $sql = "UPDATE calendar SET opened = 1 WHERE day = '".$_GET['day']."' LIMIT 1");
    mysql_query($sql);
    
    //Datenbankverbindung trennen
    mysql_close($datenbankzeiger)
    ?>



    Verstanden? Nichts mit Javascript.
    Die 24 Bildchen verlinkst du einfach nur: Bild 1 wird mit "show.php?day=1" verlinkt, Bild 6 mit "show.php?day=6" und Bild 22 mit "show.php?day=22", to be continued...


    gruß
    ferdinand24

    Beitrag geändert: 19.8.2007 12:48:36 von ferdinand24
  7. 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!