Ticker mit Eintragemöglichkeit der Besucher

Mit einer Mischung aus PHP und Javascript können Sie Ihren Besuchern die Möglichkeit geben, eigene Texte und Grüße auf Ihrer Webseite in einem Ticker zu präsentieren.

Das Script zeigt in einem IFrame, den Sie an beliebiger Stelle in Ihre Webseite einfügen können, ständig eine frei wählbare Anzahl von Einträgen der Besucher an. Dabei wird laufend durch die aktuellsten Einträge gescrollt und alle 60 Sekunden (oder jedem anderen beliebigen Zeitraum) neu hinzugekommene Einträge mit angezeigt. Optional möglich ist, zusätzlich neben dem Namen und dem Nachrichtentext seine eMail-Adresse und einen Link anzugeben.

Das folgende Beispiel besteht aus insgesamt fünf Dateien, die folgende Funktionen erfüllen:

  • index.php – In dieser Datei ist der Ticker als IFrame eingebaut
  • box.php – Diese Datei dient dazu, den Ticker darzustellen
  • eintragen.php - Das Dialogfenster, in dem der Besucher eine neue Nachricht eingeben kann
  • config.inc.php – In dieser Datei werden grundlegende Einstellungen des Scriptes verwaltet
  • nachrichten.txt – Diese Datei nimmt die einzelnen Textnachrichten auf

In der Datei “index.php” ist lediglich der IFrame eingebaut, den Sie so oder angepasst in Ihre Webseite übernehmen können:

index.php

<html>
<head>
<title>Newsticker mit Eintragemöglichkeit der Besucher</title>
</head>
<body>
<iframe width="300" height="60" scrolling="no" frameborder="0" src="box.php" name="box"></iframe>
</body>
</html>

box.php

Die Datei “box.php” stellt den eigentlichen Ticker dar. Bevor überhaupt mit der Ausgabe der HTML-Seite begonnen wird, erfolgt zunächst die Einbindung der Konfigurationsdatei “config.inc.php” (Z. 2) und das Auslesen der anzuzeigenden Tickernachrichten. Es wird festgelegt, wie oft der Ticker mit neuen Daten initialisiert wird (die Rate wird in der Konfigurationsdatei angegeben). Zum Schluss werden die aktuellsten Einträge ausgegeben und zusätzlich ein Link dargestellt, über den der Benutzer eine neue Nachricht hinzufügen kann.

<?php
require("config.inc.php");

$Nachrichten = file($DateinameNachrichten);

if(count($Nachrichten)-$AngezeigteNachrichten < 1)
{
$Endwert = 0;
}
else
{
$Endwert = count($Nachrichten)-$AngezeigteNachrichten;
}

for($i = count($Nachrichten)-1, $Nachricht = ""; $i >= $Endwert; $i--)
{
$Daten = explode("|", $Nachrichten[$i]);
$Nachricht .= "&nbsp;&nbsp;---&nbsp;&nbsp;<i>";

if(!empty($Daten[1]))
{
$Nachricht .= "<a href="mailto:".$Daten[1]."">";
}

$Nachricht .= $Daten[0];

if(!empty($Daten[1]))
{
$Nachricht .= "</a>";
}

$Nachricht .= ":</i> ";

if(!empty($Daten[3]))
{
$Nachricht .= "<a href="".$Daten[3]."" target="_blank">";
}

$Nachricht .= $Daten[2];

if(!empty($Daten[3]))
{
$Nachricht .= "</a>";
}
}

$Nachricht .= "&nbsp;&nbsp;---";

?>

<html>
<head>
<meta http-equiv="refresh" content="<?php echo$Aktualisierungsrate; ?>; URL=<?php echo$_SERVER['PHP_SELF']; ?>">
<script language="JavaScript">
<!--
function PopUp()
{
var URL = "eintragen.php";
var Name = "eintragen";
var Fensteroptionen = "toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0";
var Breite = 325;
var Hoehe = 225;
window.open(URL, 'Name', Fensteroptionen + ',width=' + Breite + ',height=' + Hoehe);
}
//-->
</script>
<style type="text/css">
<!--
A {
text-decoration: none;
}

A:hover {
text-decoration: underline;
}

BODY {
font-family: verdana, sans-serif;
font-size: 10pt;
margin-bottom: 0px;
margin-left: 0px;
margin-right: 0px;
margin-top: 0px;
}

MARQUEE {
border: 2px ridge blue;
font-size: 10pt;
padding: 5px;
}

SMALL {
font-size: 8pt;
}
-->
</style>
</head>
<body>
<table border="0" cellpadding="1" cellspacing="2" width="300">
<tr>
<td><marquee scrolldelay="75"><?php echo$Nachricht; ?></marquee></td>
</tr>
<tr>
<td align="right"><small><a href="javascript:PopUp();">Nachricht hinzufügen</a></small></td>
</tr>
</table>
</body>
</html>

eintragen.php

Sobald der Benutzer einen neuen Eintragen hinzufügen will, öffnet sich nach einem Klick auf den Link unter dem Ticker in einem PopUp-Fenster die Datei “eintragen.php”. Zuerst muss wiederum die Konfigurationsdatei “config.inc.php” eingebunden werden und nachdem der Benutzer das Formular ausgefüllt hat, werden zunächst unerwünschte Zeichen sowie HTML- und PHP-Tags aus den Eingaben herausgefiltert und der jeweilige Eintrag als eine Zeile in die Datei “nachrichten.txt” geschrieben. Anschließend wird der IFrame aktualisiert sowie das Eintragsformular geschlossen.

<?php
require("config.inc.php");

if($_REQUEST['Send'])
{
if(!empty($_REQUEST['Name']) && !empty($_REQUEST['Nachricht']) && strlen($_REQUEST['Name']) <= 20 && strlen($_REQUEST['Email']) <= 100 && strlen($_REQUEST['Nachricht']) <= 80 && strlen($_REQUEST['Link']) <= 200)
{
$Name = strip_tags(str_replace("|", "", $_REQUEST['Name']));
$Email = strip_tags(str_replace("|", "", $_REQUEST['Email']));
$Nachricht = strip_tags(str_replace("|", "", $_REQUEST['Nachricht']));
$Link = strip_tags(str_replace("|", "", $_REQUEST['Link']));

if(strlen($Link) <= 7)
{
$Link = "";
}

$Zeile = $Name . "|" . $Email . "|" . $Nachricht . "|" . $Link . "|" . date("Y-m-d H:i:s") . "|" . $_SERVER['REMOTE_ADDR'] . "n";
$FilePointer = fopen($DateinameNachrichten, "a");
fwrite($FilePointer, $Zeile);
fclose($FilePointer);
}

header("Location: box.php");
}
else
{
?>
<html>
<head>
<style type="text/css">
<!--
BODY, TD {
font-family: verdana, sans-serif;
font-size: 10pt;
}
-->
</style>
<title>Nachricht versenden</title>
</head>
<body>
Füllen Sie das folgende Formular aus, um eine Nachricht abzuschicken:<br>
<small>* erforderliche Angaben</small><br>
<table border="0" cellpadding="1" cellspacing="2">
<form action="<?php echo$_SERVER['PHP_SELF']; ?>" method="post" onSubmit="javascript:window.close();" target="<?php echo$NameIframe; ?>">
<tr>
<td>Name *</td>
<td><input maxlength="20" name="Name" size="20" type="text"></td>
</tr>
<tr>
<td>eMail</td>
<td><input maxlength="100" name="Email" size="20" type="text"></td>
</tr>
<tr>
<td>Nachricht *</td>
<td><input maxlength="80" name="Nachricht" size="30" type="text"></td>
</tr>
<tr>
<td>Link</td>
<td><input maxlength="200" name="Link" size="20" type="text" value="http://"></td>
</tr>
<tr>
<td align="center" colspan="2"><input name="Send" type="submit" value="Senden"></td>
</tr>
</form>
<tr>
<td align="right" colspan="2"><small><a href="javascript:window.close();">Fenster schließen</a></small></td>
</tr>
</table>
</body>
</html>
<?php
}
?>

config.php

In der Konfigurationsdatei “config.inc.php” werden der Dateiname, in der die Nachrichten abgelegt werden, der Name des IFrames, die Anzahl der angezeigten Nachrichten, sowie die Aktualisierungsrate des IFrames in Sekunden festgelegt.

<?php

$DateinameNachrichten = "nachrichten.txt";
$NameIframe = "box";
$AngezeigteNachrichten = 5;
$Aktualisierungsrate = 60; //in Sekunden

?>

Die Datei “nachrichten.txt” speichert pro Zeile einen Eintrag. Neben den eingegeben Daten werden zusätzlich der Zeitpunkt des Eintrages und die IP-Adresse des Benutzer gespeichert:

Christian|mail@domain.de|Hallo Welt!|http://www.web.de|2004-09-05 10:50:37|127.0.0.1

Bitte beachten Sie, dass Sie der Textdatei gegebenenfalls Lese- und Schreibrechte geben müssen (chmod 777).

1459 Tage ago by in PHP MySQL | You can follow any responses to this entry through the RSS feed. You can leave a response, or trackback from your own site.

Leave A Response

* Required