Shoutbox einbauen

Hilfe zu Modulen und Tags
Post Reply
Tron

Shoutbox einbauen

Post by Tron »

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
cyberman

Re: Shoutbox einbauen

Post by cyberman »

Wo genau hast du den benutzerdefinierten Tag eingebaut (Template, Content, Globaler Content-Block)?
Tron

Re: Shoutbox einbauen

Post by Tron »

Hallo cyberman,

ich habe das im Template eingebaut, wie gesagt als benutzerdefinierten Tag, damit es im rechten Bereich der Startseite angezeigt wird.

Gruß

Tron
cyberman

Re: Shoutbox einbauen

Post by cyberman »

Hast du mal versucht, den Tag in einem zweiten Content-Block aufzurufen?
Tron

Re: Shoutbox einbauen

Post by Tron »

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
cyberman

Re: Shoutbox einbauen

Post by cyberman »

An die Stelle, wo du im Template den Tag aufgerufen hast, erstellst du mit

Code: Select all

{content block='shoutbox'}
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 ...
Tron

Re: Shoutbox einbauen

Post by Tron »

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
cyberman

Re: Shoutbox einbauen

Post by cyberman »

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.
Tron

Re: Shoutbox einbauen

Post by Tron »

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
cyberman

Re: Shoutbox einbauen

Post by cyberman »

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

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">
Tron

Re: Shoutbox einbauen

Post by Tron »

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
Post Reply

Return to “Module und Tags”