Shoutbox einbauen
Shoutbox einbauen
Hallo!
Ich habe auf der Startseite eine Shoutbox eingebaut, die auch ganz wunderbar tut, nur nach dem Submit wird nicht mehr die Startseite aufgerufen, sondern immer nur die Seite mit der Shoutbox. Die Einträge sind dann aber drin.
Ich habe die Shoutbox über einen benutzerdefinierten Tag eingebaut.
So sieht der Quellcode aus.
include("../inc/db.inc.php");
$connect = mysql_connect($dbHost, $dbUser, $dbPass) or die("Keine Verbindung zum Datenbankserver!");
$selectDB = mysql_select_db($dbName) or die("Konnte die Datenbank $dbName nicht auswählen!");
if($_POST['submit'])
{
if(!$_POST['author'])
{
echo "Fehler";
echo "";
echo " ";
echo "Fehler! Kein Name eingetragen ";
echo " ";
echo "zurück";
echo "";
echo "";
die;
}
if(!$_POST['message'])
{
echo "Fehler";
echo "";
echo " ";
echo "Fehler! Keine Nachricht eingetragen ";
echo " ";
echo "zurück";
echo "";
echo "";
die;
}
$message = strip_tags($_POST['message'], '');
$author = strip_tags($_POST['author'], '');
$message_length = strlen($message);
$author_length = strlen($author);
if($message_length > 150)
{
echo "Fehler";
echo "";
echo " ";
echo "Fehler! Die Nachricht ist zu lang! Nachrichten dürfen nur 150 Zeichen lang sein! ";
echo " ";
echo "zurück";
echo "";
echo "";
die;
}
if($author_length > 150)
{
echo "Fehler";
echo "";
echo " ";
echo "Fehler! Dein Name ist zu lang! Namen düfen nur 150 Zeichen lang sein!";
echo " ";
echo "zurück";
echo "";
echo "";
die;
}
mysql_connect($dbHost,$dbUser,$dbPass) or die(mysql_error());
mysql_select_db($dbName) or die(mysql_error());
$datum = date("d.m.y h:i");
$query = "INSERT INTO shoutbox (message, author, datum, ip) VALUES ('$message','$author','$datum','$_SERVER[REMOTE_ADDR]')";
if(ereg("http://", $message) == false)
{
mysql_query($query);
}
mysql_close();
header ("Location: index.php?page=home");
}
else
{
mysql_connect($dbHost,$dbUser,$dbPass) or die(mysql_error());
mysql_select_db($dbName) or die(mysql_error());
$query = "SELECT message, author, datum, ip FROM shoutbox order by id DESC LIMIT 10";
$result = mysql_query($query);
?>
Name:
Nachricht:
Gesendet am $r[datum] von $r[author]$r[message]";
}
echo "";
}
Bin für jede Idee dankbar...
Gruß Tron
Ich habe auf der Startseite eine Shoutbox eingebaut, die auch ganz wunderbar tut, nur nach dem Submit wird nicht mehr die Startseite aufgerufen, sondern immer nur die Seite mit der Shoutbox. Die Einträge sind dann aber drin.
Ich habe die Shoutbox über einen benutzerdefinierten Tag eingebaut.
So sieht der Quellcode aus.
include("../inc/db.inc.php");
$connect = mysql_connect($dbHost, $dbUser, $dbPass) or die("Keine Verbindung zum Datenbankserver!");
$selectDB = mysql_select_db($dbName) or die("Konnte die Datenbank $dbName nicht auswählen!");
if($_POST['submit'])
{
if(!$_POST['author'])
{
echo "Fehler";
echo "";
echo " ";
echo "Fehler! Kein Name eingetragen ";
echo " ";
echo "zurück";
echo "";
echo "";
die;
}
if(!$_POST['message'])
{
echo "Fehler";
echo "";
echo " ";
echo "Fehler! Keine Nachricht eingetragen ";
echo " ";
echo "zurück";
echo "";
echo "";
die;
}
$message = strip_tags($_POST['message'], '');
$author = strip_tags($_POST['author'], '');
$message_length = strlen($message);
$author_length = strlen($author);
if($message_length > 150)
{
echo "Fehler";
echo "";
echo " ";
echo "Fehler! Die Nachricht ist zu lang! Nachrichten dürfen nur 150 Zeichen lang sein! ";
echo " ";
echo "zurück";
echo "";
echo "";
die;
}
if($author_length > 150)
{
echo "Fehler";
echo "";
echo " ";
echo "Fehler! Dein Name ist zu lang! Namen düfen nur 150 Zeichen lang sein!";
echo " ";
echo "zurück";
echo "";
echo "";
die;
}
mysql_connect($dbHost,$dbUser,$dbPass) or die(mysql_error());
mysql_select_db($dbName) or die(mysql_error());
$datum = date("d.m.y h:i");
$query = "INSERT INTO shoutbox (message, author, datum, ip) VALUES ('$message','$author','$datum','$_SERVER[REMOTE_ADDR]')";
if(ereg("http://", $message) == false)
{
mysql_query($query);
}
mysql_close();
header ("Location: index.php?page=home");
}
else
{
mysql_connect($dbHost,$dbUser,$dbPass) or die(mysql_error());
mysql_select_db($dbName) or die(mysql_error());
$query = "SELECT message, author, datum, ip FROM shoutbox order by id DESC LIMIT 10";
$result = mysql_query($query);
?>
Name:
Nachricht:
Gesendet am $r[datum] von $r[author]$r[message]";
}
echo "";
}
Bin für jede Idee dankbar...
Gruß Tron
Re: Shoutbox einbauen
Wo genau hast du den benutzerdefinierten Tag eingebaut (Template, Content, Globaler Content-Block)?
Re: Shoutbox einbauen
Hallo cyberman,
ich habe das im Template eingebaut, wie gesagt als benutzerdefinierten Tag, damit es im rechten Bereich der Startseite angezeigt wird.
Gruß
Tron
ich habe das im Template eingebaut, wie gesagt als benutzerdefinierten Tag, damit es im rechten Bereich der Startseite angezeigt wird.
Gruß
Tron
Re: Shoutbox einbauen
Hast du mal versucht, den Tag in einem zweiten Content-Block aufzurufen?
Re: Shoutbox einbauen
Hallo Cyberman,
was meinst Du denn mit einem zweiten Content-Block.
Ich weiß wohl, das im Template sowas wie {content block='menu'} stehe, aber ich habe keine Ahnung, wie ich da meine Shoutbox hinein bekommen soll.....

Gruß Tron
was meinst Du denn mit einem zweiten Content-Block.
Ich weiß wohl, das im Template sowas wie {content block='menu'} stehe, aber ich habe keine Ahnung, wie ich da meine Shoutbox hinein bekommen soll.....

Gruß Tron
Re: Shoutbox einbauen
An die Stelle, wo du im Template den Tag aufgerufen hast, erstellst du mit
einen weiteren Content-Block. Wenn du jetzt die Seite in der Administration zur Bearbeitung aufrufst, auf der die Shoutbox eingebaut ist, erscheint auch dort ein weiteres Feld, wo du die Inhalte für den weiteren Content-Block eingeben kannst. Da hinein solltest du den Tag-Aufruf plazieren ...
Code: Select all
{content block='shoutbox'}
Re: Shoutbox einbauen
Hallo cyberman,
ich habe doch gar keine Seite für die Shoutbox, es handelt sich doch um einen benutzerdefinierten Tag. Den baut man doch direkt mit {shoutbox} ein und nicht in eine Seite. Ich möchte doch die Shoutbox mit auf der Home-Seite angezeigt bekommen und nicht als eigene Seite. Ich verstehe jetzt nicht ganz den Sinn des Content-Block...
Gruß
Tron
ich habe doch gar keine Seite für die Shoutbox, es handelt sich doch um einen benutzerdefinierten Tag. Den baut man doch direkt mit {shoutbox} ein und nicht in eine Seite. Ich möchte doch die Shoutbox mit auf der Home-Seite angezeigt bekommen und nicht als eigene Seite. Ich verstehe jetzt nicht ganz den Sinn des Content-Block...
Gruß
Tron
Re: Shoutbox einbauen
Ich kenne deine Seite nicht, aber stell dir einfach mal ein dreispaltiges Layout vor. In der linken Spalte befindet sich das Menü, in der mittleren Spalte der "normale" Content und in der rechten die Sonderinformationen wie News, Shoutbox, RSS usw.
Die rechte Spalte kannst du auf verschiedene Arten "füllen". Entweder du fügst die jeweilige Anwendung direkt im Template ein. Dann benötigst du für jede Seite mit anderen Sonderinformationen ein eigenes Template.
Die andere Variante ist eben, in der rechten Spalte einen weiteren Content-Block zu erstellen und die Tags/Module mit den Sonderinformationen dort im Content aufzurufen. Hier ein Beispiel:
http://test.cmsmadesimple.de/index.php?page=micha
PS: Benutzerdefinierte Tags lassen sich sowohl in Templates als auch direkt im Content (bei Eingabe einer Seite) verwenden.
Die rechte Spalte kannst du auf verschiedene Arten "füllen". Entweder du fügst die jeweilige Anwendung direkt im Template ein. Dann benötigst du für jede Seite mit anderen Sonderinformationen ein eigenes Template.
Die andere Variante ist eben, in der rechten Spalte einen weiteren Content-Block zu erstellen und die Tags/Module mit den Sonderinformationen dort im Content aufzurufen. Hier ein Beispiel:
http://test.cmsmadesimple.de/index.php?page=micha
PS: Benutzerdefinierte Tags lassen sich sowohl in Templates als auch direkt im Content (bei Eingabe einer Seite) verwenden.
Re: Shoutbox einbauen
Hallo Cyberman,
so jetzt habe auch ICH es verstanden, aber leider hilft es mir nicht bei meinem Problem des Refresh. Ich muß ja zum Eintragen der Nachrichten die Shoutbox erneut aufrufen und ich bekomme es einfach nicht hin, dass die Home-Seite aufgerufen wird. Es wird immer nur die Shoutbox angezeit, ohne den Rest der Homepage. Ich kann mir nicht vorstellen, dass nicht noch jemand vor mir mal dasselbe Problem hatte. Wie muß so ein Aufruf über Submit aussehen, damit ich wieder auf meiner Home-Seite lande.
Kriege schon langsam Kringel in den Augen.
Gruß
Tron
so jetzt habe auch ICH es verstanden, aber leider hilft es mir nicht bei meinem Problem des Refresh. Ich muß ja zum Eintragen der Nachrichten die Shoutbox erneut aufrufen und ich bekomme es einfach nicht hin, dass die Home-Seite aufgerufen wird. Es wird immer nur die Shoutbox angezeit, ohne den Rest der Homepage. Ich kann mir nicht vorstellen, dass nicht noch jemand vor mir mal dasselbe Problem hatte. Wie muß so ein Aufruf über Submit aussehen, damit ich wieder auf meiner Home-Seite lande.
Kriege schon langsam Kringel in den Augen.
Gruß
Tron
Re: Shoutbox einbauen
Entweder du setzt in der shoutbox.php einen redirect auf die Seite 'Home', nachdem das Script verarbeitet wurde.
Oder du hängst den Source der shoutbox.php hinter deine Fehlerbehandlung und rufst das Shoutbox-Formular mit sich selbst auf.
Schau mal, wie das im contact_form Tag gelöst wurde
Oder du hängst den Source der shoutbox.php hinter deine Fehlerbehandlung und rufst das Shoutbox-Formular mit sich selbst auf.
Schau mal, wie das im contact_form Tag gelöst wurde
Code: Select all
if (isset($_SERVER['REQUEST_URI']))
{
$action = $_SERVER['REQUEST_URI'];
}
else
{
$action = isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : '';
if (isset($_SERVER['QUERY_STRING']) && $_SERVER['QUERY_STRING'] != '')
{
$action .= '?'.$_SERVER['QUERY_STRING'];
}
}
?>
<form action="<?php echo $action ?>" method="post">
Re: Shoutbox einbauen
Hallo Cyberman,
es gibt doch für alles eine Lösung. Ich hab ja oben in meinem Script alles in eine Datei gepackt, unter anderem auch den Befehl HEADER - so funzt es ja nicht. So, jetzt habe ich das Script getrennt - in einen anzeigenden Bereich und einen schreibenden Bereich. In dem anzeigenden Bereich rufe ich mit dem Submit die schreibende Seite auf und da funzt auch der HEADER-Befehl (
) und ich werde korrekt wieder auf die Home-Seite geleitet. Keine Ahnung warum das anders nicht geht...
Vielen Dank für Deine Hilfe, ich hoffe ich muß Dich nicht so schnell wieder in Anspruch nehmen..
Gruß
Tron
es gibt doch für alles eine Lösung. Ich hab ja oben in meinem Script alles in eine Datei gepackt, unter anderem auch den Befehl HEADER - so funzt es ja nicht. So, jetzt habe ich das Script getrennt - in einen anzeigenden Bereich und einen schreibenden Bereich. In dem anzeigenden Bereich rufe ich mit dem Submit die schreibende Seite auf und da funzt auch der HEADER-Befehl (

Vielen Dank für Deine Hilfe, ich hoffe ich muß Dich nicht so schnell wieder in Anspruch nehmen..
Gruß
Tron