tm Gästebuch - ein simples, frisches, sauberes Gästebuch-Script
Nachdem die guten alten "Gästebücher" bei der neuen, tollen Web 2.0 Welle etwas untergegangen sind, bekam ich vor einiger Zeit für ein neues Web-Projekt die Anforderung, dass ein Gästebuch enthalten sein soll.
Gesagt, getan, programmiert.
Und hier für die freie Verwendung zur Verfügung gestellt.
Gesagt, getan, programmiert.
Und hier für die freie Verwendung zur Verfügung gestellt.
Hier eine schmal-gehaltene Übersicht:
Features:
- Potenzielle Einträge werden geprüft
- Vor (automatischen) Spam-Einträgen wird geschützt
- Der Admin kann Einträge bearbeiten / löschen / kommentieren
- IP-Adresse des Nutzers wird gespeichert und kann bei bedarf auf der Hauptseite angezeigt werden
- Mail-Funktion bei neuem Eintrag (optional)
- CSS-basierend - kann somit ohne großen Aufwand für die eigene Homepage angepasst werden.
Installation:
- Kopiere die Dateien in einen Ordner deines Webservers
- Passe die "tmbg-config.php" entsprechend an (Verbindungseinstellungen + Optionen)
- Führe entweder die Datei "/tmgb-install/install.php" aus (Dabei wird eine Datenbank mit Tabelle erzeugt) oder importiere die "tm_guestbook.sql", mit Hilfe von PHPMyAdmin o.ä.
- Fertig. Ab sofort können Einträge erfolgen...
To Do:
- Passwort-Schutz für den Admin-Bereich ;-)
- ...? Was immer das Herz begehrt
Angefügte Dateien:
» tm_gaestebuch-0.9.zip «abgelegt in Projekte von admin am 2009-04-28
Open-Source Website-Suche mit integrierter Autovervollständigung
Dieses PHP- Open-Source "Search-Script" basiert auf dem "CJ Website Search".
Es wurde für ein Projekt ins Deutsche übersetzt und (meiner Meinung nach) noch ein bisschen optimiert.
Das Script ist leicht zu installieren und beinhaltet eine Administrationsoberfläche.
Das Suchfeld beinhaltet eine Autovervollständigung. Oft verwendete Suchbegriffe für die Autovervollständigung können in der searchform.js editiert werden. Searchform stammt von CSSGlobe.
Suchergebnisse werden manuell eingeben. So kann entschieden werden, welche Suchbegriffe gefunden werden sollen und auf welche Seite sie verlinken.
Dies bietet insbesondere Vorteile, wenn man eigene Templates benutzt und Design-Snippets "included".
Konfiguriert werden muss nur die config.php - hier muss lediglich der rootpfad zum Scriptordner angegeben werden.
Es wurde für ein Projekt ins Deutsche übersetzt und (meiner Meinung nach) noch ein bisschen optimiert.
Das Script ist leicht zu installieren und beinhaltet eine Administrationsoberfläche.
Das Suchfeld beinhaltet eine Autovervollständigung. Oft verwendete Suchbegriffe für die Autovervollständigung können in der searchform.js editiert werden. Searchform stammt von CSSGlobe.
Suchergebnisse werden manuell eingeben. So kann entschieden werden, welche Suchbegriffe gefunden werden sollen und auf welche Seite sie verlinken.
Dies bietet insbesondere Vorteile, wenn man eigene Templates benutzt und Design-Snippets "included".
Konfiguriert werden muss nur die config.php - hier muss lediglich der rootpfad zum Scriptordner angegeben werden.
Screenshots


Download
abgelegt in Projekte von admin am 2008-01-25
PHP: Werbefreier Domaincheck für die eigene Homepage
Oft ist es erwünscht, auf der eigenen Homepage einen Domaincheck-Service anzubieten.
Gerade wenn man sich mit Webdesign und allgemein mit dem WWW beschäftigt, kann dies auf der eigenen Homepage von Vorteil sein.
Dr. Web veröffentliche mehrere PHP-Scripts, die nun nicht mehr nur den zahlenden Abonnenten zur Verfügung stehen, sondern kostenlos von jedermann gelesen und heruntergeladen werden können.
Sehr interessant ist hierbei das Script für den werbefreien Domaincheck auf der eigenen Seite:
Abschließend sei noch jedem einen Besuch beim Dr. Web ans Herz gelegt.
Gerade wenn man sich mit Webdesign und allgemein mit dem WWW beschäftigt, kann dies auf der eigenen Homepage von Vorteil sein.
Dr. Web veröffentliche mehrere PHP-Scripts, die nun nicht mehr nur den zahlenden Abonnenten zur Verfügung stehen, sondern kostenlos von jedermann gelesen und heruntergeladen werden können.
Sehr interessant ist hierbei das Script für den werbefreien Domaincheck auf der eigenen Seite:
<html>
<head>
<title>Domaincheck</title>
</head>
<body>
<form action="<? $_SERVER["PHP_SELF"] ?>" method="post">
<p>Prüfen Sie, ob Ihre Wunschdomain noch frei ist!</p>
<?
$domain_name = $_POST["domain_name"];
$domain_endung = $_POST["domain_endung"];
$domain = $domain_name.$domain_endung;
if($domain_endung == ".de") $domain_endung_de = " selected=\"selected\"";
if($domain_endung == ".at") $domain_endung_at = " selected=\"selected\"";
if($domain_endung == ".ch") $domain_endung_ch = " selected=\"selected\"";
if($domain_endung == ".com") $domain_endung_com = " selected=\"selected\"";
if($domain_endung == ".net") $domain_endung_net = " selected=\"selected\"";
if($domain_endung == ".org") $domain_endung_org = " selected=\"selected\"";
?>
<p><input type="text" name="domain_name" value="<? echo $domain_name ?>" />
<select name="domain_endung">
<option<? echo $domain_endung_de ?>>.de</option>
<option<? echo $domain_endung_at ?>>.at</option>
<option<? echo $domain_endung_ch ?>>.ch</option>
<option<? echo $domain_endung_com ?>>.com</option>
<option<? echo $domain_endung_net ?>>.net</option>
<option<? echo $domain_endung_org ?>>.org</option>
</select></p>
<p><input type="submit" value="Domain prüfen" />
</form>
<?
$ausgabe_unzulaessig = "Der von Ihnen gewählte Domainname ist nicht zulässig.";
$ausgabe_verbindung = "Es konnte keine Verbindung zum Whois-Server aufgenommen werden.";
$ausgabe_frei = "Der von Ihnen gewählte Domainname <span style=\"font-weight:bold\">".$domain."</span> ist noch frei.";
$ausgabe_vergeben = "Der von Ihnen gewählte Domainname <span style=\"font-weight:bold\">".$domain."</span> ist bereits vergeben.";
if($domain_name != "" && $domain_endung != "") {
switch($domain_endung) {
case ".de":
$daten = array("whois.denic.de", "status: free", "status: invalid", "connection refused");
break;
case ".at":
$daten = array("whois.nic.at", "nothing found");
break;
case ".ch":
$daten = array("whois.nic.ch", "we do not have an entry");
break;
case ".com":
$daten = array("whois.internic.net", "no match");
break;
case ".net":
$daten = array("rs.internic.net", "no match");
break;
case ".org":
$daten = array("whois.networksolutions.com", "no match");
break;
default:
die("Diese Domainendung wird nicht unterstützt.");
break;
}
$server = $daten[0];
$meldung_frei = $daten[1];
$meldung_unzulaessig = $daten[2];
$meldung_verbindung = $daten[3];
$check = fsockopen($server, 43);
if($check) {
fputs($check, $domain." \r\n");
while(!feof($check)) $ergebnis = $ergebnis.fgets($check, 128);
fclose($check);
}
$ergebnis = strtolower($ergebnis);
while(substr_count($ergebnis, " ") > 0) $ergebnis = str_replace(" ", " ", $ergebnis);
if(ereg($meldung_frei, $ergebnis) && $ausgabe == "") {
$ausgabe = $ausgabe_frei;
} else if(ereg($meldung_unzulaessig, $ergebnis) && $ausgabe == "") {
$ausgabe = $ausgabe_unzulaessig;
} else if(ereg($meldung_verbindung, $ergebnis) && $ausgabe == "") {
$ausgabe = $ausgabe_verbindung;
} else if($domain != "" && $ausgabe == "") {
$ausgabe = $ausgabe_vergeben;
}
}
echo "<p>".$ausgabe."</p>\r\n";
?>
</body>
</html>
<head>
<title>Domaincheck</title>
</head>
<body>
<form action="<? $_SERVER["PHP_SELF"] ?>" method="post">
<p>Prüfen Sie, ob Ihre Wunschdomain noch frei ist!</p>
<?
$domain_name = $_POST["domain_name"];
$domain_endung = $_POST["domain_endung"];
$domain = $domain_name.$domain_endung;
if($domain_endung == ".de") $domain_endung_de = " selected=\"selected\"";
if($domain_endung == ".at") $domain_endung_at = " selected=\"selected\"";
if($domain_endung == ".ch") $domain_endung_ch = " selected=\"selected\"";
if($domain_endung == ".com") $domain_endung_com = " selected=\"selected\"";
if($domain_endung == ".net") $domain_endung_net = " selected=\"selected\"";
if($domain_endung == ".org") $domain_endung_org = " selected=\"selected\"";
?>
<p><input type="text" name="domain_name" value="<? echo $domain_name ?>" />
<select name="domain_endung">
<option<? echo $domain_endung_de ?>>.de</option>
<option<? echo $domain_endung_at ?>>.at</option>
<option<? echo $domain_endung_ch ?>>.ch</option>
<option<? echo $domain_endung_com ?>>.com</option>
<option<? echo $domain_endung_net ?>>.net</option>
<option<? echo $domain_endung_org ?>>.org</option>
</select></p>
<p><input type="submit" value="Domain prüfen" />
</form>
<?
$ausgabe_unzulaessig = "Der von Ihnen gewählte Domainname ist nicht zulässig.";
$ausgabe_verbindung = "Es konnte keine Verbindung zum Whois-Server aufgenommen werden.";
$ausgabe_frei = "Der von Ihnen gewählte Domainname <span style=\"font-weight:bold\">".$domain."</span> ist noch frei.";
$ausgabe_vergeben = "Der von Ihnen gewählte Domainname <span style=\"font-weight:bold\">".$domain."</span> ist bereits vergeben.";
if($domain_name != "" && $domain_endung != "") {
switch($domain_endung) {
case ".de":
$daten = array("whois.denic.de", "status: free", "status: invalid", "connection refused");
break;
case ".at":
$daten = array("whois.nic.at", "nothing found");
break;
case ".ch":
$daten = array("whois.nic.ch", "we do not have an entry");
break;
case ".com":
$daten = array("whois.internic.net", "no match");
break;
case ".net":
$daten = array("rs.internic.net", "no match");
break;
case ".org":
$daten = array("whois.networksolutions.com", "no match");
break;
default:
die("Diese Domainendung wird nicht unterstützt.");
break;
}
$server = $daten[0];
$meldung_frei = $daten[1];
$meldung_unzulaessig = $daten[2];
$meldung_verbindung = $daten[3];
$check = fsockopen($server, 43);
if($check) {
fputs($check, $domain." \r\n");
while(!feof($check)) $ergebnis = $ergebnis.fgets($check, 128);
fclose($check);
}
$ergebnis = strtolower($ergebnis);
while(substr_count($ergebnis, " ") > 0) $ergebnis = str_replace(" ", " ", $ergebnis);
if(ereg($meldung_frei, $ergebnis) && $ausgabe == "") {
$ausgabe = $ausgabe_frei;
} else if(ereg($meldung_unzulaessig, $ergebnis) && $ausgabe == "") {
$ausgabe = $ausgabe_unzulaessig;
} else if(ereg($meldung_verbindung, $ergebnis) && $ausgabe == "") {
$ausgabe = $ausgabe_verbindung;
} else if($domain != "" && $ausgabe == "") {
$ausgabe = $ausgabe_vergeben;
}
}
echo "<p>".$ausgabe."</p>\r\n";
?>
</body>
</html>
Abschließend sei noch jedem einen Besuch beim Dr. Web ans Herz gelegt.
abgelegt in Codeschnipsel von admin am 2007-10-25
Vertikale (mittige) Ausrichtung in einem (X)HTML Element
Oft möchte man ein Zeichen oder Wort in einem (X)HTML-Element vertikal ausrichten (z.B. für ein Menü o.ä.).
Doch die vorhandene CSS-Eigenschaft “vertical-align” ist leider nicht immer zuverlässig.
Würde man zum Beispiel im Absatz mit fester Höhe eine Zeile oder ein einzelnes Wort ausgeben wollen, so positioniert sich die Zeichenfolge oben links.
In der Ausgabe würde der Text oben Links stehen:

Mit dem CSS-Befehl "line-height" kann der Browser jedoch die Mitte der Zeile errechnen und dadurch den eigentlichen Inhalt vertikal zentrieren:
Aussehen würde es nun so:

Doch die vorhandene CSS-Eigenschaft “vertical-align” ist leider nicht immer zuverlässig.
Würde man zum Beispiel im Absatz mit fester Höhe eine Zeile oder ein einzelnes Wort ausgeben wollen, so positioniert sich die Zeichenfolge oben links.
Eine mögliche Lösung
Mit der CSS-Eigentschaft "height" wird dem Element eine feste Höhe und mit "color" (color zur Verdeutlichung) eine Hintergrundfarbe zugewiesen.p { height: 50px; color:#abc7db; }
In der Ausgabe würde der Text oben Links stehen:

Mit dem CSS-Befehl "line-height" kann der Browser jedoch die Mitte der Zeile errechnen und dadurch den eigentlichen Inhalt vertikal zentrieren:
p { height: 50px; color:#abc7db; line-height: 50px; }
Aussehen würde es nun so:
Kleiner Nachteil
Da die Default-Höhe der Zeile geändert wird, ist diese Lösung für Texte, die über mehrere Zeilen verteilt sind, nicht zu empfehlen.abgelegt in Codeschnipsel von admin am 2007-10-08
PHP HTML-Tags aus Datenbankabfrage (MySQL) entfernen/ ausblenden mittels strip_tags
Wenn man beispielsweise einen Text aus einer MySQL-Datenbank auslesen möchte, hier aber auf die HTML-Tags verzichten will geht dieses sehr bequem über den Befehl strip_tags.
Bespiel:
Würde normal folgende Ausgabe ergeben: Hallo. Wie siehts aus?
Mit dem gestrippten Tags, aber so: Hallo. Wie siehts aus?
Ausnahmen können auch definiert werden:
Bespiel:
$text = "<b>Hallo</b>. Wie siehts <i>aus</i>?";
echo strip_tags($text);Würde normal folgende Ausgabe ergeben: Hallo. Wie siehts aus?
Mit dem gestrippten Tags, aber so: Hallo. Wie siehts aus?
Ausnahmen können auch definiert werden:
echo strip_tags($text, '<b><i>');
Würde die Attribute <b> und <i> erlauben.
abgelegt in Codeschnipsel von admin am 2007-10-07







