Seite 1 von 1

Guestbook

Verfasst: Mo 23. Sep 2002, 21:08
von jknoblich
So langsam werd ich warm mit Contenido... :D

Hier ein Mini-Simple-Guestbook. Das Originalscript ist nicht aus meiner Feder. Hab ich aus dem WWW, aber ohne Quellangabe im Code. Trotzdem Dank an den Autor.

Bitte mal testen. Ist bestimmt noch Beta. Ich jedenfalls freue mich, daß ich auch mal beisteuern kann. :)

Und nun zerfetzt mich und den Code....
Gruß
Jens

Input:

Code: Alles auswählen

echo "<input type=\"hidden\" name=\"CMS_VAR[0]\" value=\"".$value."\">"; 
echo "<table align=\"left\" cellpadding=\"0\" cellspacing=\"0\">"; 
echo "<tr valign=\"top\"><td width=\"202\">Überschrift:</td>"; 
echo "<td><select name=\"CMS_VAR[1]\" size=\"1\">"; 
if ("CMS_VALUE[1]" != 0) { 
   echo "<option value=\"0\">".$lngForm["nothing"]."</option>"; 
} else { 
   echo "<option value=\"0\" selected>".$lngForm["nothing"]."</option>"; 
} 
for ($i=1; $i<=50; $i++) { 
   if ($i != "CMS_VALUE[1]") { 
            echo "<option value=\"$i\">Font $i</option>"; 
         } else { 
            echo "<option value=\"$i\" selected>Font $i</option>"; 
         } 
} 
echo "</SELECT></td></tr>"; 
echo "<tr valign=\"top\"><td width=\"202\">Text:</td>"; 
echo "<td><select name=\"CMS_VAR[2]\" size=\"1\">"; 
if ("CMS_VALUE[2]" != 0) { 
   echo "<option value=\"0\">".$lngForm["nothing"]."</option>"; 
} else { 
   echo "<option value=\"0\" selected>".$lngForm["nothing"]."</option>"; 
} 
for ($i=1; $i<=50; $i++) { 
   if ($i != "CMS_VALUE[2]") { 
            echo "<option value=\"$i\">Font $i</option>"; 
         } else { 
            echo "<option value=\"$i\" selected>Font $i</option>"; 
         } 
} 
echo "</SELECT></td></tr></table>"; 
Output:

Code: Alles auswählen

$meineseite="$PHP_SELF?client=$client&lang=$lang&parent=$parent&subid=$subid&idcat=$idcat&idside=$idside";

	if($a == "")
	{
		$a="view";
	}
// wenn "add" als aktion übergeben wird
	if($a == "add")
	{

echo "<span id='fontCMS_VALUE[0]'>Eintrag im G&auml;stebuch</span>";
echo "<FORM  name='gb' id='gb'  action='$meineseite'  method='post' enctype='application/x-www-form-urlencoded'>";
echo "<INPUT  TYPE=hidden  NAME=a  VALUE=send>";
echo "<table><tr><td id='fontCMS_VALUE[1]'>Dein Name:</td><td><INPUT  TYPE=text  NAME=name></td></tr><tr><td id='fontCMS_VALUE[1]'>Deine E-mail Adresse:</td><td><INPUT  TYPE=text  NAME=email></td></tr><tr><td id='fontCMS_VALUE[1]'>Deine Homepage:</td><td>http://<INPUT  TYPE=text  NAME=url></td></tr><tr><td id='fontCMS_VALUE[1]'>Dein Wohnort:</td><td><INPUT  TYPE=text  NAME=location></td></tr><tr><td id='fontCMS_VALUE[1]'>Dein Kommentar:</td><td></td></tr><tr><td colspan='2'><TEXT";
echo "AREA  NAME=comments  COLS=60  ROWS=6></TEXT";
echo "AREA></td></tr>	    <tr><td colspan='2' align='center'><INPUT type='Submit' value='eintragen'></td></tr></table>";
echo "</FORM><span id='fontCMS_VALUE[0]'><a href='$meineseite&a=view'>Zur&uuml;ck</a></span>";

	}
// wenn view als aktion übergeben wird bzw. beim erstmaligen Seitenaufruf
	if($a == "view")
	{
		switch ($eintrag)		// das erste mal beim aufruf ist $eintrag undefiniert
		{
		case "";
	    	$eintrag = "0";		// deswegen wertzuweisung 0
		}
		$zps = "5";        		// anzeige der eintr&auml;ge pro Seite

//Zählen der Datensätze

		$counter = mysql_query("SELECT Count(*) as total FROM con_guestbook");
		$eintraege = mysql_fetch_array($counter);

// Zusammensetzen der Unternavigation nächste, vorherige, erste, eintragen

		echo "<center><table><tr><td id='fontCMS_VALUE[1]'>Einträge: ";
		echo $eintraege[total];
		echo "</td>";
		echo "<td  id='fontCMS_VALUE[1]'>[ ";
		$back=$eintrag-5;
		if ($back >=  0)
		{
			echo " <a href=\"$meineseite&a=view&eintrag=";
			echo $back;
			echo "\">Vorherige Seite</a> | ";
		}
		$eintragen = $eintrag + $zps;
		if ($eintragen < $eintraege[total])
		{
			echo "<a href=\"$meineseite&a=view&eintrag=";
			echo $eintragen;
			echo "\">Nächste Seite</a> | ";
		}
		if ($eintrag > 4)
		{
			echo "<a href=\"$meineseite&a=view";
			echo "\">Erste Seite</a> | ";
		}
		echo "<a href=\"$meineseite&a=add\">Eintragen</a> ]</td></tr>";
		echo "</table></center>";

		echo "<center><table width=\"95%\" align=\"center\">";
    	echo "<hr color=\"#555555\">";
// Daten aus der Datenbank abfragen mit der Einschränkung $eintrag (d.h. welche ausgegeben werden sollen) und $zps (anzahl der anzuzeigenden elemente)
    	$result = mysql_query("SELECT name, email, url, date, location, comments FROM con_guestbook order by date desc LIMIT $eintrag,$zps");
// Auslesen des Ergebnisse pro Reihe und Generierung der Seite
    	while  ($row  =  mysql_fetch_row($result))
		{
        	echo "<tr><td id='fontCMS_VALUE[1]' rowspan=\"5\">$count</td><td><B>Name:</B></td><td id='fontCMS_VALUE[1]'>$row[0]</td><td id='fontCMS_VALUE[1]'><b>Datum:</b></td><td id='fontCMS_VALUE[1]'>$row[3]</td></tr>";
        	echo "<tr><td id='fontCMS_VALUE[1]'><B>E-mail:</B></td><td colspan=\"3\" id='fontCMS_VALUE[1]'><A  HREF=\"mailto:$row[1]\">$row[1]</a></td></tr>";
        	echo "<tr><td  id='fontCMS_VALUE[1]'><B>Homepage:</B></td><td colspan=\"3\" id='fontCMS_VALUE[1]'><A  HREF=\"http://$row[2]\" target=\"_blank\">$row[2]</A></td></tr>";
        	echo "<tr><td valign='top' id='fontCMS_VALUE[1]'><B>Kommentar:</B></td><td colspan=\"3\" id='fontCMS_VALUE[1]'>$row[5]</td></tr>";
        	echo "<tr><td colspan=\"5\"><hr></td></tr>";
      	}
    	echo "</table>";

//Zählen der Datensätze

		$counter = mysql_query("SELECT Count(*) as total FROM con_guestbook");
		$eintraege = mysql_fetch_array($counter);

// Zusammensetzen der Unternavigation nächste, vorherige, erste, eintragen

		echo "<table><tr><td id='fontCMS_VALUE[1]'>Einträge: ";
		echo $eintraege[total];
		echo "</td>";
		echo "<td id='fontCMS_VALUE[1]'>[ ";
		if ($back >=  0)
		{
			echo " <a href=\"$meineseite&a=view&eintrag=";
			echo $back;
			echo "\">Vorherige Seite</a> | ";
		}
		$eintragen = $eintrag + $zps;
		if ($eintragen < $eintraege[total])
		{
			echo "<a href=\"$meineseite&a=view&eintrag=";
			echo $eintragen;
			echo "\">Nächste Seite</a> | ";
		}
		if ($eintrag > 4)
		{
			echo "<a href=\"$meineseite&a=view";
			echo "\">Erste Seite</a> | ";
		}
		echo "<a href=\"$meineseite&a=add\">Eintragen</a> ]</td></tr>";
		echo "</table></center>";
	}
// wenn ein eintrag geschrieben werden soll
	if($a == "send")
	{
// Formatierung des Textes aus dem Kommentarfeld
	    $comments  =  nl2br("$comments");
	    $comments  =  addslashes("$comments");
		$url =  Str_replace("http://","",$url);
	    mysql_query("INSERT into con_guestbook (name, email, url, date, location, comments) VALUES ('$name', '$email', '$url', NOW(), '$location', '$comments')");

echo "<span id='fontCMS_VALUE[0]'>Danke! Dein Beitrag wurde eingetragen</span><br><br>
		<span id='fontCMS_VALUE[1]'><a href='$meineseite&a=view'>Zur&uuml;ck</a></span>";

	}
Tabelle:

Code: Alles auswählen

CREATE TABLE con_guestbook (
   id int(8) DEFAULT '0' NOT NULL auto_increment,
   name varchar(40) NOT NULL,
   email varchar(40) NOT NULL,
   location varchar(40) NOT NULL,
   comments text NOT NULL,
   url varchar(50) NOT NULL,
   date datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
   PRIMARY KEY (id)
);

Verfasst: Mo 23. Sep 2002, 21:36
von Gast
ich habs mal auf die schnelle eingefügt und hab die fehlermeldung bekommen:

Code: Alles auswählen

Warning: Supplied argument is not a valid MySQL result resource in c:\apache\htdocs\contenido\contenido\inc\con_editcontent.inc.php(123) : eval()'d code on line 240

Einträge:  [ Eintragen ] 


--------------------------------------------------------------------------------

Warning: Supplied argument is not a valid MySQL result resource in c:\apache\htdocs\contenido\contenido\inc\con_editcontent.inc.php(123) : eval()'d code on line 275
 
Warning: Supplied argument is not a valid MySQL result resource in c:\apache\htdocs\contenido\contenido\inc\con_editcontent.inc.php(123) : eval()'d code on line 288
Einträge:  [ Eintragen ] 
 

Verfasst: Di 24. Sep 2002, 07:50
von jknoblich
mhm bei mir ging es.

Kann das jemand anders noch mal testen ?

Oder ich hab mal wieder ein Semikolon oder so was vergessen...

Gruß
Jens

Verfasst: Di 24. Sep 2002, 10:08
von Sven777b
Also bei mir läuft es absolut spitze...
ich habe den Code exakt übernommen wie er hier stand - ohne änderungen.
Den MySQL-Dump eingesielt und die Schriftarten im Template konfiguriert - fertig.
Eins von alle dem musst du (Gast) wohl vergessen haben.

Das Gästebuch habe ich auf meine Spielwiese übernommen (die vorrübergehend offline ist).

@Jens: kann ich den Code in meiner Spielwiese mit veröffentlichen? Ansonsten nutze ich das Gästebuch zum vorgegebenen Zwecke ;)

Verfasst: Di 24. Sep 2002, 10:19
von Sven777b
Hallo Jens,

im Output bist du mit den Variablen durcheinander gekommen.
lt. Input enthält:
CMS_VAR[0] = Containernummer
CMS_VAR[1] = Schriftart Überschriften
CMS_VAR[2] = Schriftart Text

in deinem Output aber z.b. :

Code: Alles auswählen

echo "<span id='fontCMS_VALUE[0]'>Danke! Dein Beitrag wurde eingetragen</span><br><br> 
      <span id='fontCMS_VALUE[1]'><a href='$meineseite&a=view'>Zurück</a></span>"; 

   } 
Der Ausschnitt sind die letzten Zeilen des Output.
Wie du siehst, formatierst du die Bestätigungsmeldung in der Schriftart der Containernummer und den Link in der Schriftart der Überschriften.

Ich bin so frei und modifiziere dein Gästebuch noch ein wenig... darf ich?

Verfasst: Di 24. Sep 2002, 10:31
von Sven777b
nur der OUTPUT nochmal. Ich habe lediglich die Schriftarten korrigiert.
Alles was Userdaten sind, werden mit der 2. Schriftart (CMS_VALUE[2]) formatiert und alles was statisch ist, wird mit der 1. Schriftart formatiert (CMS_VALUE[1]).

Code: Alles auswählen

$meineseite="$PHP_SELF?client=$client&lang=$lang&parent=$parent&subid=$subid&idcat=$idcat&idside=$idside"; 

   if($a == "") 
   { 
      $a="view"; 
   } 
// wenn "add" als aktion übergeben wird 
   if($a == "add") 
   { 

echo "<span id='fontCMS_VALUE[1]'>Eintrag im Gästebuch</span>"; 
echo "<FORM  name='gb' id='gb'  action='$meineseite'  method='post' enctype='application/x-www-form-urlencoded'>"; 
echo "<INPUT  TYPE=hidden  NAME=a  VALUE=send>"; 
echo "<table><tr><td id='fontCMS_VALUE[2]'>Dein Name:</td><td><INPUT  TYPE=text  NAME=name></td></tr><tr><td id='fontCMS_VALUE[2]'>Deine E-mail Adresse:</td><td><INPUT  TYPE=text  NAME=email></td></tr><tr><td id='fontCMS_VALUE[2]'>Deine Homepage:</td><td>http://<INPUT  TYPE=text  NAME=url></td></tr><tr><td id='fontCMS_VALUE[2]'>Dein Wohnort:</td><td><INPUT  TYPE=text  NAME=location></td></tr><tr><td id='fontCMS_VALUE[2]'>Dein Kommentar:</td><td></td></tr><tr><td colspan='2'><TEXT"; 
echo "AREA  NAME=comments  COLS=60  ROWS=6></TEXT"; 
echo "AREA></td></tr>       <tr><td colspan='2' align='center'><INPUT type='Submit' value='eintragen'></td></tr></table>"; 
echo "</FORM><span id='fontCMS_VALUE[2]'><a href='$meineseite&a=view'>Zurück</a></span>"; 

   } 
// wenn view als aktion übergeben wird bzw. beim erstmaligen Seitenaufruf 
   if($a == "view") 
   { 
      switch ($eintrag)      // das erste mal beim aufruf ist $eintrag undefiniert 
      { 
      case ""; 
          $eintrag = "0";      // deswegen wertzuweisung 0 
      } 
      $zps = "5";              // anzeige der einträge pro Seite 

//Zählen der Datensätze 

      $counter = mysql_query("SELECT Count(*) as total FROM con_guestbook"); 
      $eintraege = mysql_fetch_array($counter); 

// Zusammensetzen der Unternavigation nächste, vorherige, erste, eintragen 

      echo "<center><table><tr><td id='fontCMS_VALUE[2]'>Einträge: "; 
      echo $eintraege[total]; 
      echo "</td>"; 
      echo "<td  id='fontCMS_VALUE[2]'>[ "; 
      $back=$eintrag-5; 
      if ($back >=  0) 
      { 
         echo " <a href=\"$meineseite&a=view&eintrag="; 
         echo $back; 
         echo "\">Vorherige Seite</a> | "; 
      } 
      $eintragen = $eintrag + $zps; 
      if ($eintragen < $eintraege[total]) 
      { 
         echo "<a href=\"$meineseite&a=view&eintrag="; 
         echo $eintragen; 
         echo "\">Nächste Seite</a> | "; 
      } 
      if ($eintrag > 4) 
      { 
         echo "<a href=\"$meineseite&a=view"; 
         echo "\">Erste Seite</a> | "; 
      } 
      echo "<a href=\"$meineseite&a=add\">Eintragen</a> ]</td></tr>"; 
      echo "</table></center>"; 

      echo "<center><table width=\"95%\" align=\"center\">"; 
       echo "<hr color=\"#555555\">"; 
// Daten aus der Datenbank abfragen mit der Einschränkung $eintrag (d.h. welche ausgegeben werden sollen) und $zps (anzahl der anzuzeigenden elemente) 
       $result = mysql_query("SELECT name, email, url, date, location, comments FROM con_guestbook order by date desc LIMIT $eintrag,$zps"); 
// Auslesen des Ergebnisse pro Reihe und Generierung der Seite 
       while  ($row  =  mysql_fetch_row($result)) 
      { 
           echo "<tr><td id='fontCMS_VALUE[1]' rowspan=\"5\">$count</td><td><B>Name:</B></td><td id='fontCMS_VALUE[2]'>$row[0]</td><td id='fontCMS_VALUE[1]'><b>Datum:</b></td><td id='fontCMS_VALUE[2]'>$row[3]</td></tr>"; 
           echo "<tr><td id='fontCMS_VALUE[1]'><B>E-mail:</B></td><td colspan=\"3\" id='fontCMS_VALUE[2]'><A  HREF=\"mailto:$row[1]\">$row[1]</a></td></tr>"; 
           echo "<tr><td  id='fontCMS_VALUE[1]'><B>Homepage:</B></td><td colspan=\"3\" id='fontCMS_VALUE[2]'><A  HREF=\"http://$row[2]\" target=\"_blank\">$row[2]</A></td></tr>"; 
           echo "<tr><td valign='top' id='fontCMS_VALUE[1]'><B>Kommentar:</B></td><td colspan=\"3\" id='fontCMS_VALUE[2]'>$row[5]</td></tr>"; 
           echo "<tr><td colspan=\"5\"><hr></td></tr>"; 
         } 
       echo "</table>"; 

//Zählen der Datensätze 

      $counter = mysql_query("SELECT Count(*) as total FROM con_guestbook"); 
      $eintraege = mysql_fetch_array($counter); 

// Zusammensetzen der Unternavigation nächste, vorherige, erste, eintragen 

      echo "<table><tr><td id='fontCMS_VALUE[2]'>Einträge: "; 
      echo $eintraege[total]; 
      echo "</td>"; 
      echo "<td id='fontCMS_VALUE[2]'>[ "; 
      if ($back >=  0) 
      { 
         echo " <a href=\"$meineseite&a=view&eintrag="; 
         echo $back; 
         echo "\">Vorherige Seite</a> | "; 
      } 
      $eintragen = $eintrag + $zps; 
      if ($eintragen < $eintraege[total]) 
      { 
         echo "<a href=\"$meineseite&a=view&eintrag="; 
         echo $eintragen; 
         echo "\">Nächste Seite</a> | "; 
      } 
      if ($eintrag > 4) 
      { 
         echo "<a href=\"$meineseite&a=view"; 
         echo "\">Erste Seite</a> | "; 
      } 
      echo "<a href=\"$meineseite&a=add\">Eintragen</a> ]</td></tr>"; 
      echo "</table></center>"; 
   } 
// wenn ein eintrag geschrieben werden soll 
   if($a == "send") 
   { 
// Formatierung des Textes aus dem Kommentarfeld 
       $comments  =  nl2br("$comments"); 
       $comments  =  addslashes("$comments"); 
      $url =  Str_replace("http://","",$url); 
       mysql_query("INSERT into con_guestbook (name, email, url, date, location, comments) VALUES ('$name', '$email', '$url', NOW(), '$location', '$comments')"); 

echo "<span id='fontCMS_VALUE[1]'>Danke! Dein Beitrag wurde eingetragen</span><br><br> 
      <span id='fontCMS_VALUE[2]'><a href='$meineseite&a=view'>Zurück</a></span>"; 

   } 

Verfasst: Di 24. Sep 2002, 11:25
von jknoblich
Hi Sven,

natürlich kannst Du das auf Deiner Spielwiese veröffentlichen.
Der Code kann beliebig umgemodelt werden. Vielleicht entstehen so neue, bzw. andere Versionen davon.

Danke für den neuen Output. Es war gestern wohl schon zu spät.

Gruß
Jens

Wo muss "Tabelle" hin?

Verfasst: Di 24. Sep 2002, 21:36
von JUG
Öhm :?:

wo muss denn das, was unter Tabelle steht, hin:
CREATE TABLE con_guestbook (
id int( 8 ) DEFAULT '0' NOT NULL auto_increment,
name varchar(40) NOT NULL,
email varchar(40) NOT NULL,
location varchar(40) NOT NULL,
comments text NOT NULL,
url varchar(50) NOT NULL,
date datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
PRIMARY KEY (id)
);
:roll: :roll: :roll:

Verfasst: Di 24. Sep 2002, 22:23
von Sven777b
wo muss denn das, was unter Tabelle steht, hin:
das ist ein sogenannter SQL-Dump. Eine Befehlsfolge für MySQl. Man erkennt sie leicht daran, dass sie meist mit "CREATE TABLE" oder "INSERT INTO" anfangen.
Diese SQL-Dumps werden im Allgemeinen im phpMyAdmin eingefügt. Ich hoffe du weißt was das ist. Wenn nicht: das ist das Script, mit dem du deine Datenbank administrierst. Es kann sich eventuell auch um ein anderes Programm handeln.
Beim phpMyAdmin ist es so, dass du auf der Übersichsseite deiner Datenbank ein Textfeld hast, welches mit "SQL-Befehl(e)" überschrieben ist.
In dieses Textfeld fügst du den kompletten Dump (wie du ihn im Zitat kopiert hast) ein und schickst ihn ab. Fertig.
Es wird automatisch eine neue Tabelle con_guestbook angelegt.

Funzt wirklich gut

Verfasst: Mi 25. Sep 2002, 19:41
von jacke
Schönes und vor allem funktionierendes Gästebuch. Hat sofort gefunzt. Mal sehn ob ich es noch hinbekomme eine eMailbenachrichtigung für neue Einträge einzubauen um Schmutz entfernen zu können. Oder hat das schon
wer?


Jacke

Verfasst: Do 26. Sep 2002, 14:58
von JUG
Sven777b hat geschrieben:
wo muss denn das, was unter Tabelle steht, hin:
das ist ein sogenannter SQL-Dump. Eine Befehlsfolge für MySQl.
Danke Sven, nun habe ICH das auch begriffen :? . Gästebuch funzt jetzt natürlich auch bei mir :roll: .

Ich habe noch eine Ausbau-Idee: 8)

- Freigabefunktion in Verbindung mit e-Mail-Notify.

Grüße
Jörg

fehlermeldung beim eintrag...

Verfasst: Sa 14. Dez 2002, 21:12
von yak
hallo zusammen,

da es bei euch allen zu funktionieren scheint, habe ich mich wahrscheinlich nur wieder zu dumm angestellt, bei mir wird jeder eintrag quitiert mit:

Danke! Ihr Beitrag wurde eingetragen

Warning: Division by zero in /var/www/html/cms-contenido/front_single/front_content.php(128) : eval()'d code on line 150
Einträge: 1-0 von 0

eingetragen wurde aber nichts...

vielen dank für eure hilfe!

lars

Verfasst: Sa 11. Jan 2003, 22:50
von pulk
mir ist da noch was im output bereich aufgefallen bei:

Code: Alles auswählen

echo "<tr><td id='fontCMS_VALUE[1]' rowspan=\"5\">$count</td><td><B>Name:</B></td>
geändert auf

Code: Alles auswählen

echo "<tr><td rowspan=\"5\">$count</td><td id='fontCMS_VALUE[1]'><B>Name:</B></td>
sonst wird die schriftart nicht für den Namen übernommen. (bei mir jedenfalls) :)

nachtrag: das selbe auch hier, bei der eintragung eines neuen beitrages:

Code: Alles auswählen

<td>http://<INPUT  TYPE=text  NAME=url></td>
geändert auf

Code: Alles auswählen

<td id='fontCMS_VALUE[2]'>http://<INPUT  TYPE=text  NAME=url></td>

Verfasst: Mi 13. Aug 2003, 13:24
von xamibor
hat es jamnd schon für die Version 4.3.1 angepasst?

lg
Andreas

adminbereich

Verfasst: So 14. Dez 2003, 18:00
von project gonzo
Wie kann, oder gibt es einen Adminbereich, errreichen und eiträge ändern, löschen, etc?