1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

Gästebuch

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von Lovecraft, 29.05.08.

  1. Lovecraft

    Lovecraft Uelzener Rambour

    Dabei seit:
    21.04.08
    Beiträge:
    374
    Hi,


    Ich habe meine Website fertig und suche 'ne gute Webadresse für Gästebücher.

    Wie baut man die ein bzw. integriert sie in's Script?

    Was haltet ihr von Google Analytics...

    Vielen Dank
     
  2. Maluku

    Maluku Finkenwerder Herbstprinz

    Dabei seit:
    10.05.08
    Beiträge:
    464
    Mittlerweile vertrete ich sogar die Meinung, dass man sein Gästebuch selbst schreiben sollte, weil es dann weniger wahrscheinlich ist, dass ein automatisches Skript das Gästebuch zuspammt.
    Wichtig ist vor allem eine Moderationsfunktion.
     
  3. macsterzel

    macsterzel Meraner

    Dabei seit:
    18.09.04
    Beiträge:
    230
    …und weiter? Ich mein, sehr interessant - aber keine Vorschläge, Links oder sonstiges?
     
  4. Lovecraft

    Lovecraft Uelzener Rambour

    Dabei seit:
    21.04.08
    Beiträge:
    374
    Danke macsterzel...vor einer persönlichen Meinung sollte erstmal die gestellte Frage beantwortet werden.

    Also bitte Vorschläge, Links und was haltet ihr von Google Analytics?
     
  5. Maluku

    Maluku Finkenwerder Herbstprinz

    Dabei seit:
    10.05.08
    Beiträge:
    464
    Vielleicht das hier:
    http://www.hardcoder.com/scripting/php/guestbook/code.php

    Wie gesagt es gibt mittlerweile für jedes Gästebuch und Forum was einigermaßen bekannt ist ein Bot der es vollspammen kann, deswegen kann ich keins guten Herzens empfehlen. Am Besten ist es selbst eins zu programmieren und zu hoffen dass keiner es für wichtig genug befindet einen Bot dafür zu schreiben.

    Wichtigeste Punkte die zu beachten sind:
    Die Beiträge sollten moderiert werden.
    Die Texte die die Benutzer eingeben (auch deren Name) muss "escaped" werden. Sodass kein Javascript oder HTML funktioniert. (Wenn jemand <img src="COM1"> eingibt muss auch in dem Ausgabequellcode &gt;img src=&quot;COM1=&quot;$lt; stehen.

    Wenn du das Gästebuch an eine Datenbank anbinden willst, muss du noch beachten, dass kein eingebener Text SQL Befehle eingeben kann.

    Von Google analytics halte ich nix, deswegen ist die IP und DNS von denen bei mir gesperrt.
     
  6. Maluku

    Maluku Finkenwerder Herbstprinz

    Dabei seit:
    10.05.08
    Beiträge:
    464
    Hier ist mein letztes Gästebuch das ich geschrieben hatte, allerdings benutzt das keine Datenbank, ist in Perl und benutzt ein globales Backend für Templates.

    Aber vielleicht hilft es ja bei einigen Problemen.

    Code:
    [COLOR=#a020f0]#!/usr/bin/perl[/COLOR]
    [COLOR=#804040][B]use warnings[/B][/COLOR];
    [COLOR=#804040][B]use strict[/B][/COLOR];
    [COLOR=#804040][B]require[/B][/COLOR] Webgraph;
    [COLOR=#804040][B]my[/B][/COLOR] [COLOR=#008080]$q[/COLOR]=[COLOR=#804040][B]new[/B][/COLOR] Webgraph([COLOR=#ff00ff]"[/COLOR][COLOR=#ff00ff]G&amp;auml;stebuch[/COLOR][COLOR=#ff00ff]"[/COLOR]);
    [COLOR=#804040][B]print[/B][/COLOR] [COLOR=#008080]$q[/COLOR]->top;
    [COLOR=#804040][B]my[/B][/COLOR] [COLOR=#008080]%book[/COLOR]=[COLOR=#008080]$q[/COLOR]->[COLOR=#804040][B]read[/B][/COLOR]([COLOR=#ff00ff]"[/COLOR][COLOR=#ff00ff]guestbook[/COLOR][COLOR=#ff00ff]"[/COLOR]);
    [COLOR=#008080]$book[/COLOR]{Guestbook}=[] [COLOR=#804040][B]unless[/B][/COLOR] [COLOR=#008080]$book[/COLOR]{Guestbook} [COLOR=#804040][B]and[/B][/COLOR] [COLOR=#804040][B]ref[/B][/COLOR] [COLOR=#008080]$book[/COLOR]{Guestbook} [COLOR=#804040][B]eq[/B][/COLOR] [COLOR=#ff00ff]"[/COLOR][COLOR=#ff00ff]ARRAY[/COLOR][COLOR=#ff00ff]"[/COLOR];
    
    [COLOR=#804040][B]if[/B][/COLOR] ([COLOR=#008080]$q[/COLOR]->cgiparam([COLOR=#ff00ff]"[/COLOR][COLOR=#ff00ff]Text[/COLOR][COLOR=#ff00ff]"[/COLOR]) [COLOR=#804040][B]and[/B][/COLOR] [COLOR=#008080]$q[/COLOR]->cgiparam([COLOR=#ff00ff]"[/COLOR][COLOR=#ff00ff]Name[/COLOR][COLOR=#ff00ff]"[/COLOR])) {
            [COLOR=#804040][B]unshift[/B][/COLOR] @{[COLOR=#008080]$book[/COLOR]{Guestbook}},{[COLOR=#ff00ff]Text[/COLOR]=>[COLOR=#008080]$q[/COLOR]->cgiparam([COLOR=#ff00ff]"[/COLOR][COLOR=#ff00ff]Text[/COLOR][COLOR=#ff00ff]"[/COLOR]),[COLOR=#ff00ff]Time[/COLOR]=>[COLOR=#804040][B]time[/B][/COLOR],[COLOR=#ff00ff]Name[/COLOR]=>[COLOR=#008080]$q[/COLOR]->cgiparam([COLOR=#ff00ff]"[/COLOR][COLOR=#ff00ff]Name[/COLOR][COLOR=#ff00ff]"[/COLOR]),[COLOR=#ff00ff]active[/COLOR]=>[COLOR=#008080]$q[/COLOR]->check([COLOR=#ff00ff]"[/COLOR][COLOR=#ff00ff]Settings[/COLOR][COLOR=#ff00ff]"[/COLOR],[COLOR=#ff00ff]"[/COLOR][COLOR=#ff00ff]Guestbook[/COLOR][COLOR=#ff00ff]"[/COLOR])};
            [COLOR=#008080]$q[/COLOR]->[COLOR=#804040][B]write[/B][/COLOR]([COLOR=#ff00ff]"[/COLOR][COLOR=#ff00ff]guestbook[/COLOR][COLOR=#ff00ff]"[/COLOR],[COLOR=#008080]\%book[/COLOR]);
    }
    [COLOR=#804040][B]if[/B][/COLOR] ([COLOR=#008080]$q[/COLOR]->check([COLOR=#ff00ff]"[/COLOR][COLOR=#ff00ff]Settings[/COLOR][COLOR=#ff00ff]"[/COLOR],[COLOR=#ff00ff]"[/COLOR][COLOR=#ff00ff]Guestbook[/COLOR][COLOR=#ff00ff]"[/COLOR])) {
            [COLOR=#804040][B]if[/B][/COLOR] ([COLOR=#804040][B]defined[/B][/COLOR] [COLOR=#008080]$q[/COLOR]->cgiparam([COLOR=#ff00ff]"[/COLOR][COLOR=#ff00ff]delete[/COLOR][COLOR=#ff00ff]"[/COLOR])) {
                    [COLOR=#804040][B]splice[/B][/COLOR] @{[COLOR=#008080]$book[/COLOR]{Guestbook}},[COLOR=#008080]$q[/COLOR]->cgiparam([COLOR=#ff00ff]"[/COLOR][COLOR=#ff00ff]delete[/COLOR][COLOR=#ff00ff]"[/COLOR]),[COLOR=#ff00ff]1[/COLOR];
                    [COLOR=#008080]$q[/COLOR]->[COLOR=#804040][B]write[/B][/COLOR]([COLOR=#ff00ff]"[/COLOR][COLOR=#ff00ff]guestbook[/COLOR][COLOR=#ff00ff]"[/COLOR],[COLOR=#008080]\%book[/COLOR]);
                    [COLOR=#008080]%book[/COLOR]=[COLOR=#008080]$q[/COLOR]->[COLOR=#804040][B]read[/B][/COLOR]([COLOR=#ff00ff]"[/COLOR][COLOR=#ff00ff]guestbook[/COLOR][COLOR=#ff00ff]"[/COLOR]);
            }
            [COLOR=#804040][B]if[/B][/COLOR] ([COLOR=#804040][B]defined[/B][/COLOR] [COLOR=#008080]$q[/COLOR]->cgiparam([COLOR=#ff00ff]"[/COLOR][COLOR=#ff00ff]activate[/COLOR][COLOR=#ff00ff]"[/COLOR])) {
                    [COLOR=#008080]$book[/COLOR]{Guestbook}->[[COLOR=#804040][B]int[/B][/COLOR]([COLOR=#008080]$q[/COLOR]->cgiparam([COLOR=#ff00ff]"[/COLOR][COLOR=#ff00ff]activate[/COLOR][COLOR=#ff00ff]"[/COLOR]))]->{active}=[COLOR=#ff00ff]1[/COLOR];
                    [COLOR=#008080]$q[/COLOR]->[COLOR=#804040][B]write[/B][/COLOR]([COLOR=#ff00ff]"[/COLOR][COLOR=#ff00ff]guestbook[/COLOR][COLOR=#ff00ff]"[/COLOR],[COLOR=#008080]\%book[/COLOR]);
            }
            [COLOR=#804040][B]my[/B][/COLOR] [COLOR=#008080]$page[/COLOR]=[COLOR=#008080]$q[/COLOR]->get_template([COLOR=#ff00ff]"[/COLOR][COLOR=#ff00ff]GuestbookList[/COLOR][COLOR=#ff00ff]"[/COLOR]);
            [COLOR=#804040][B]my[/B][/COLOR] [COLOR=#008080]$lines[/COLOR]=[COLOR=#ff00ff]""[/COLOR];
            [COLOR=#804040][B]foreach[/B][/COLOR] ([COLOR=#ff00ff]0[/COLOR] .. [COLOR=#008080]$#[/COLOR]{[COLOR=#008080]$book[/COLOR]{Guestbook}}) {
                    [COLOR=#804040][B]my[/B][/COLOR] [COLOR=#008080]$ml[/COLOR]=[COLOR=#008080]$q[/COLOR]->get_template([COLOR=#ff00ff]"[/COLOR][COLOR=#ff00ff]GuestbookEntryAdmin[/COLOR][COLOR=#ff00ff]"[/COLOR]);
                    [COLOR=#804040][B]my[/B][/COLOR] [COLOR=#008080]$l[/COLOR]=[COLOR=#008080]$q[/COLOR]->get_template([COLOR=#ff00ff]"[/COLOR][COLOR=#ff00ff]GuestbookEntryDisabled[/COLOR][COLOR=#ff00ff]"[/COLOR]);
                    [COLOR=#008080]$l[/COLOR]=[COLOR=#008080]$ml[/COLOR] [COLOR=#804040][B]if[/B][/COLOR] [COLOR=#008080]$book[/COLOR]{Guestbook}->[[COLOR=#008080]$_[/COLOR]]->{active};
                    [COLOR=#008080]$l[/COLOR]=~[COLOR=#804040][B]s/[/B][/COLOR][COLOR=#6a5acd]\[[/COLOR][COLOR=#ff00ff]Name[/COLOR][COLOR=#6a5acd]\][/COLOR][COLOR=#804040][B]/[/B][/COLOR][COLOR=#008080]$book[/COLOR][COLOR=#ff00ff]{Guestbook}->[[/COLOR][COLOR=#008080]$_[/COLOR][COLOR=#ff00ff]]->{Name}[/COLOR][COLOR=#804040][B]/gi[/B][/COLOR];
                    [COLOR=#008080]$l[/COLOR]=~[COLOR=#804040][B]s/[/B][/COLOR][COLOR=#6a5acd]\[[/COLOR][COLOR=#ff00ff]Text[/COLOR][COLOR=#6a5acd]\][/COLOR][COLOR=#804040][B]/[/B][/COLOR][COLOR=#008080]$book[/COLOR][COLOR=#ff00ff]{Guestbook}->[[/COLOR][COLOR=#008080]$_[/COLOR][COLOR=#ff00ff]]->{Text}[/COLOR][COLOR=#804040][B]/gi[/B][/COLOR];
                    [COLOR=#008080]$l[/COLOR]=~[COLOR=#804040][B]s/[/B][/COLOR][COLOR=#6a5acd]\[[/COLOR][COLOR=#ff00ff]ID[/COLOR][COLOR=#6a5acd]\][/COLOR][COLOR=#804040][B]/[/B][/COLOR][COLOR=#008080]$_[/COLOR][COLOR=#804040][B]/gi[/B][/COLOR];
                    [COLOR=#008080]$lines[/COLOR].=[COLOR=#008080]$l[/COLOR];
            }
            [COLOR=#008080]$page[/COLOR]=~[COLOR=#804040][B]s/[/B][/COLOR][COLOR=#6a5acd]\[[/COLOR][COLOR=#ff00ff]Lines[/COLOR][COLOR=#6a5acd]\][/COLOR][COLOR=#804040][B]/[/B][/COLOR][COLOR=#008080]$lines[/COLOR][COLOR=#804040][B]/gi[/B][/COLOR];
            [COLOR=#804040][B]print[/B][/COLOR] [COLOR=#008080]$page[/COLOR];
            
    }
    [COLOR=#804040][B]else[/B][/COLOR] {
            [COLOR=#804040][B]my[/B][/COLOR] [COLOR=#008080]$page[/COLOR]=[COLOR=#008080]$q[/COLOR]->get_template([COLOR=#ff00ff]"[/COLOR][COLOR=#ff00ff]GuestbookList[/COLOR][COLOR=#ff00ff]"[/COLOR]);
            [COLOR=#804040][B]my[/B][/COLOR] [COLOR=#008080]$lines[/COLOR];
            [COLOR=#804040][B]foreach[/B][/COLOR] ([COLOR=#ff00ff]0[/COLOR] .. [COLOR=#008080]$#[/COLOR]{[COLOR=#008080]$book[/COLOR]{Guestbook}}) {
                    [COLOR=#804040][B]next[/B][/COLOR] [COLOR=#804040][B]unless[/B][/COLOR]  [COLOR=#008080]$book[/COLOR]{Guestbook}->[[COLOR=#008080]$_[/COLOR]]->{active};
                    [COLOR=#804040][B]my[/B][/COLOR] [COLOR=#008080]$l[/COLOR]=[COLOR=#008080]$q[/COLOR]->get_template([COLOR=#ff00ff]"[/COLOR][COLOR=#ff00ff]GuestbookEntry[/COLOR][COLOR=#ff00ff]"[/COLOR]);
                    [COLOR=#008080]$l[/COLOR]=~[COLOR=#804040][B]s/[/B][/COLOR][COLOR=#6a5acd]\[[/COLOR][COLOR=#ff00ff]Name[/COLOR][COLOR=#6a5acd]\][/COLOR][COLOR=#804040][B]/[/B][/COLOR][COLOR=#008080]$book[/COLOR][COLOR=#ff00ff]{Guestbook}->[[/COLOR][COLOR=#008080]$_[/COLOR][COLOR=#ff00ff]]->{Name}[/COLOR][COLOR=#804040][B]/gi[/B][/COLOR];
                    [COLOR=#008080]$l[/COLOR]=~[COLOR=#804040][B]s/[/B][/COLOR][COLOR=#6a5acd]\[[/COLOR][COLOR=#ff00ff]Text[/COLOR][COLOR=#6a5acd]\][/COLOR][COLOR=#804040][B]/[/B][/COLOR][COLOR=#008080]$book[/COLOR][COLOR=#ff00ff]{Guestbook}->[[/COLOR][COLOR=#008080]$_[/COLOR][COLOR=#ff00ff]]->{Text}[/COLOR][COLOR=#804040][B]/gi[/B][/COLOR];
                    [COLOR=#008080]$l[/COLOR]=~[COLOR=#804040][B]s/[/B][/COLOR][COLOR=#6a5acd]\[[/COLOR][COLOR=#ff00ff]ID[/COLOR][COLOR=#6a5acd]\][/COLOR][COLOR=#804040][B]/[/B][/COLOR][COLOR=#008080]$_[/COLOR][COLOR=#804040][B]/gi[/B][/COLOR];
                    [COLOR=#008080]$lines[/COLOR].=[COLOR=#008080]$l[/COLOR];
            }
            [COLOR=#008080]$page[/COLOR]=~[COLOR=#804040][B]s/[/B][/COLOR][COLOR=#6a5acd]\[[/COLOR][COLOR=#ff00ff]Lines[/COLOR][COLOR=#6a5acd]\][/COLOR][COLOR=#804040][B]/[/B][/COLOR][COLOR=#008080]$lines[/COLOR][COLOR=#804040][B]/gi[/B][/COLOR];
            [COLOR=#804040][B]print[/B][/COLOR] [COLOR=#008080]$page[/COLOR];
    }
    [COLOR=#804040][B]print[/B][/COLOR] [COLOR=#008080]$q[/COLOR]->end;
    
    Erklärung:

    Der erste Teil (if cgiparam("Text ...)) Trägt neue Einträge ein.
    Der zweite Teil überprüft auf Admin Rechte (check("Settings")) und der dritte Teil (else) Zeigt den Inhalt des Gästebuchs an, wenn kein Admin angemeldet ist.
     
  7. Lovecraft

    Lovecraft Uelzener Rambour

    Dabei seit:
    21.04.08
    Beiträge:
    374
    vielen Dank...probier ich mal aus
     
  8. Mac-Rookie

    Mac-Rookie Königsapfel

    Dabei seit:
    25.07.05
    Beiträge:
    1.204

Diese Seite empfehlen