Gästebuch
######################################################################
## ##
## +------------------------------------------------------------+ ##
## | projekt : ScarBook v1.2 | ##
## | zuletzt geaendert : 25.01.2003 | ##
## +------------------------------------------------------------+ ##
## | | ##
## | Das ScarBook ist ein 'fast' normales Gästebuch, mit | ##
## | variabler Feldanzahl, '100%-ig' anpassbarem Layout. | ##
## | Sämtliche Felder können frei eingestellt werden, egal ob | ##
## | es um das Layout oder die Aufgabe (Funktion) des Feldes | ##
## | geht. | ##
## | Unterstütz wird zusätzlich: | ##
## | - GB-Code, | ##
## | - Auto-Replace für URL und eMail angaben, | ##
## | - Bad-Words können durch andere ersetzt werden, | ##
## | - Spamfilter, | ##
## | - freiwählbare Fehlertexte, | ##
## | - freiwählbare standartwerte, wie 'z.B.' Anfangswert der | ##
## | Einträge pro Seite | ##
## | - Einträge werden Seitenweise angezeigt | ##
## | (auch bei der Suche) | ##
## | - Seiten können direkt via Seitenmenü angewählt werden | ##
## | - Anzahl der Einträge pro Seite kann der User selbst | ##
## | auch wunsch ändern. | ##
## | - u.s.w. | ##
## | Alle Felder können durchsucht werden und/oder kann direkt | ##
## | zu einem bestimmten Eintrag springen. | ##
## | Sendet eMail (sofern gewünscht) an den Gast, den Admin und | ##
## | wenn ein Kommentar angefügt wird. | ##
## | Gäste können für eine frei wählbare Zeit ihre eigenen | ##
## | Einträge aus dem Gästebuch löschen (ersetzt die | ##
## | Vorschaufunktion). | ##
## | | ##
## | ScarBook kann auch als Chat(Msg/Shout)Boxeingesetzt | ##
## | werden! alles eine Frage der Konfiguration ,o) | ##
## | | ##
## +------------------------------------------------------------+ ##
## | | ##
## | Das Script unterliegt meinen Nutzerbedingunen. Ein ent- | ##
## | fernen, ersetzten oder manipulieren des (c) oder Scriptes | ##
## | ist nicht! gestattet. | ##
## | (siehe Nutzerbedingungen @ www.scar4u.de) | ##
## | | ##
## | Für Commerzielle oder Profit orientierte Seiten ist das | ##
## | Script nicht kostenlos! (in diesem Rücksprache nehmen) | ##
## | | ##
## +------------------------------------------------------------+ ##
## | (c) since 2002 by Christian Kerl (Scar) | ##
## | WWW -> http://www.Scar4U.de.vu | ##
## | eMail -> Die.Ist.Geheim@GMX.net | ##
## +------------------------------------------------------------+ ##
## ##
######################################################################
######################################################################
###
### Trage hier den absoluten Server-Path zum urspruenglichen
### Verzeichnis von ScarBook ein
###
### (kann auch wahlweise vor dem include() Befehl geschriebn werden
### bei NONE-FRAME-Seiten)
###
### Am Ende muss ein '/' stehn !!
###
### du musst das '#' Zeichen davor entfernen !!
# $sgb_admin_dir = "/www/user234/cats/scarbook/";
######################################################################
###
### Debug-Modus
###
### Wird er aktiviert, werden MySQL Fehler mit vollständigem
### Fehlertext ausgegeben.
# $sgb_debug = 1;
######################################################################
######################################################################
#### ############################
#### AB HIER DARF NICHTS MEHR GEÄNEDERT ###### < < - - - ###########
#### ############################
######################################################################
######################################################################
$sgb_get_post = array_merge($HTTP_GET_VARS, $HTTP_POST_VARS);
foreach ($sgb_get_post as $sgb_key => $sgb_value) {
if(eregi("^sgb_",$sgb_key)) { ${strtolower($sgb_key)} = $sgb_value; }
}
$PHP_SELF = $HTTP_SERVER_VARS['PHP_SELF'];
######################################################################
### ###
### Einbinden der Konfigurationen ###
if(file_exists($sgb_admin_dir."admin/config.inc.php")) { ###
include($sgb_admin_dir."admin/config.inc.php"); ###
} else { ###
die("[SCARBOOK ERROR] Die konfigurationsdatei konnte nicht gefunden werden.
");
} ###
######################################################################
######################## datenbank-verbindung #######################################
mysql_connect($sgb_db_server, $sgb_db_user, $sgb_db_pass) or die("
[SCARBOOK ERROR] Es konnte keine Verbindung zum Datenbankserver aufgebaut werden!
");
mysql_select_db($sgb_db_name) or die("
[SCARBOOK ERROR] Die Datenbank konnte nicht ausgewaehlt werden!
");
######################## variablen #######################################
$sgb_rs = sgb_query("SELECT * FROM ".$sgb_db_pre."scarbook_var");
while($sgb_row = mysql_fetch_row($sgb_rs)){
$sgb_var[$sgb_row[0]] = $sgb_row[1];
}
######################## db bereinigen #######################################
if($sgb_user_del>0){
sgb_query("DELETE FROM ".$sgb_db_pre."scarbook_guest_del WHERE time<'".(time()-$sgb_user_del)."'");
}
######################## funktionen #######################################
function sgb_query($sql){
GLOBAL $sgb_debug;
$rs = mysql_query($sql);
if(mysql_errno==0){
return $rs;
} else {
if($sgb_debug == 1){
die("
[SCARBOOK ERROR] - Debug-Mode
MySQL-Befehl: $sql
Error-Nr: ".mysql_errno()."
Error-Msg: ".mysql_error()."
[SCARBOOK ERROR]
Es kam zu einem Fehler bei der Ausführung eines MySQL-Befehles.
Bitte wenden sie sich an den Webmaster, wenn dieses Problem weiterhin auftritt.
");
}
}
}
function sgb_seiten_waehler($seite,$seiten,$seiten_zaehler,$seiten_zaehler_sprung,$uri){
GLOBAL $sgb_var, $PHP_SELF;
if ($seiten>0){
if($seite>1){
$out .= str_replace("{ZAHL}","|<<", "
$sgb_var[proseite_layout] ");
$out .= str_replace("{ZAHL}","-".$seiten_zaehler_sprung, "
$sgb_var[proseite_layout] ");
$out .= str_replace("{ZAHL}","Zurueck", "
$sgb_var[proseite_layout]   ");
} else { $out .= str_replace("{ZAHL}","|<< -".$seiten_zaehler_sprung." Zurueck   ",$sgb_var[proseite_layout]); }
if($seite<$seiten){ $seiten_zaehler_start = $seite-$seiten_zaehler; }
if($seite < ($seiten-$seiten_zaehler)) { $seiten_zaehler_ende = $seite+$seiten_zaehler;
} else { $seiten_zaehler_ende = $seiten; $seiten_zaehler_start = $seiten-($seiten_zaehler*2); }
if($seiten_zaehler_start<1) { $seiten_zaehler_start=1; }
if($seiten_zaehler_start<$seiten_zaehler) { $seiten_zaehler_ende=$seiten_zaehler_start+($seiten_zaehler*2); }
if($seiten_zaehler_ende>$seiten) { $seiten_zaehler_ende=$seiten; }
for($i=$seiten_zaehler_start; $i<=$seiten_zaehler_ende; $i++){
if($i != $seite){
$out .= str_replace("{ZAHL}","$i","
$sgb_var[proseite_layout] ");
} else {
$out .= str_replace("{ZAHL}","$i",$sgb_var[proseite_layout_aktive]);
}
$out .= (" ");
}
if($seiten>$seite){
$out .= str_replace("{ZAHL}","Weiter", " 
$sgb_var[proseite_layout] ");
$out .= str_replace("{ZAHL}","+".$seiten_zaehler_sprung, "
$sgb_var[proseite_layout] ");
$out .= str_replace("{ZAHL}",">>|", "
$sgb_var[proseite_layout] ");
} else {
$out .= str_replace("{ZAHL}","   Weiter +".$seiten_zaehler_sprung." >>|",$sgb_var[proseite_layout]);
}
return $out;
} else { return "
"; }
}
function sgb_tpl($file){
GLOBAL $sgb_admin_dir;
if(file_exists($sgb_admin_dir."templates/".$file)){
return implode("",(@file($sgb_admin_dir."templates/".$file)));
} else {
die("
[ScarBook ERROR] Template-File '$file' ist nicht vorhanden.
");
}
}
######################## app #######################################
@include($sgb_admin_dir."templates/gb_header.html");
echo("\n\n");
if(!empty($sgb_var[offline])){
echo sgb_tpl("gb_offline.html");
} else {
if(isset($sgb_save)){
$sgb_rs = sgb_query("SELECT id FROM ".$sgb_db_pre."scarbook_msg WHERE ip = '".getenv("REMOTE_ADDR")."'
&& time > '".(time()-$sgb_var[flood_protect] )."' ");
if(mysql_num_rows($sgb_rs)<1){
$sgb_rs = sgb_query("SELECT * FROM ".$sgb_db_pre."scarbook_msg");
$sgb_num_fields = mysql_num_fields($sgb_rs);
$sgb_field_def_array = mysql_fetch_array(sgb_query("SELECT * FROM ".$sgb_db_pre."scarbook_field_def LIMIT 1"));
# eingabe kontrolle
for($sgb_x=4;$sgb_x<$sgb_num_fields;$sgb_x++){
$sgb_feld_name = mysql_field_name($sgb_rs,$sgb_x);
$sgb_feld_recht = mysql_fetch_array(sgb_query("SELECT * FROM ".$sgb_db_pre."scarbook_field_def WHERE name='$sgb_feld_name' LIMIT 1"));
$sgb_feld[$sgb_feld_name] = " ".$sgb_feld[$sgb_feld_name]." ";
## bad word
if($sgb_var[bad_word]==1){
if($sgb_bad_word_array!=TRUE){
$sgb_bad_word_rs = sgb_query("SELECT * FROM ".$sgb_db_pre."scarbook_bad_word");
if(mysql_num_rows($sgb_bad_word_rs)>0){
while($sgb_bad_word_array = mysql_fetch_array($sgb_bad_word_rs)){
$sgb_bad_word_bad[] = $sgb_bad_word_array["bad"];
$sgb_bad_word_good[] = $sgb_bad_word_array["good"];
}
$sgb_bad_word_array = TRUE;
}
}
for($sgb_zz=0;$sgb_zz
$sgb_feld_recht["len_max"] ){
$sgb_feld_err[$sgb_feld_name] .= str_replace("{ZAHL}",$sgb_feld_recht["len_max"],$sgb_var[field_len_max_err]);
$sgb_save_err = TRUE;
}
## fehlerkontrolle - feld hat zu wenig zeichen
if ( $sgb_feld_recht["len_min"]!=0 && strlen($sgb_feld[$sgb_feld_name])<$sgb_feld_recht["len_min"] && !empty($sgb_feld[$sgb_feld_name]) ){
$sgb_feld_err[$sgb_feld_name] .= str_replace("{ZAHL}",$sgb_feld_recht["len_min"],$sgb_var[field_len_min_err]);
$sgb_save_err = TRUE;
}
## feld funktionen
switch ($sgb_feld_recht["fkt"]) {
case 1: ## http://
if( !empty( $sgb_feld[$sgb_feld_name] ) && !eregi("^http://",$sgb_feld[$sgb_feld_name]) && !eregi("^https://",$sgb_feld[$sgb_feld_name]) ) {
$sgb_feld[$sgb_feld_name] = "http://".$sgb_feld[$sgb_feld_name];
}
break;
case 2: ## email @.
if( !empty($sgb_feld[$sgb_feld_name]) && !eregi("^[a-zA-Z0-9._-]+@([a-zA-Z0-9._-]+\.)+([a-zA-Z]){2,4}$", $sgb_feld[$sgb_feld_name]) ) {
$sgb_feld_err[$sgb_feld_name] .= $sgb_var[ungueltige_email];
$sgb_save_err = TRUE;
$sgb_email_feld_name = $sgb_feld_name;
}
break;
case 3: ## ip - wegrationalisiert
break;
case 4: ## HOST # getenv("HTTP_HOST")
$sgb_feld[$sgb_feld_name] = gethostbyaddr(getenv("REMOTE_ADDR"));
break;
case 5: ## icon-fkt
$sgb_smilies_rs = sgb_query("SELECT * FROM ".$sgb_db_pre."scarbook_smilies");
$sgb_smilies_temp = "";
while($sgb_smilies_array = mysql_fetch_array($sgb_smilies_rs)){
$sgb_smilies_temp .= $sgb_smilies_array["def"]."|µ|@-|";
}
if(!ereg($sgb_feld[$sgb_feld_name],$sgb_smilies_temp)){
$sgb_feld[$sgb_feld_name] = "";
}
break;
case 6: ## nur numerische daten
if(!ereg("(^[0-9][0-9]*$)",$sgb_feld[$sgb_feld_name]) && !empty($sgb_feld[$sgb_feld_name])){
$sgb_feld_err[$sgb_feld_name] .= $sgb_var[numerisch_err];
$sgb_save_err = TRUE;
}
break;
}
## automatisch email + url ersetzten
if($sgb_feld_recht["auto_replace"]==1){
$sgb_feld[$sgb_feld_name] = preg_replace("/([^]_a-z0-9-=\"'\/])((https?|ftp):\/\/|www\.)([^ \r\n\(\)\*\^\$!`\"'\|\[\]\{\};<>]*)/si","[url=\\2\\4]\\4[/url]",$sgb_feld[$sgb_feld_name]);
$sgb_feld[$sgb_feld_name] = preg_replace("/^((https?|ftp):\/\/|www\.)([^ \r\n\(\)\*\^\$!`\"'\|\[\]\{\};<>]*)/si","[url=http://\\1\\3]\\1\\3[/url]",$sgb_feld[$sgb_feld_name]);
$sgb_feld[$sgb_feld_name] = preg_replace("/([\s])([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,}))/si","[email]\\2[/email]",$sgb_feld[$sgb_feld_name]);
$sgb_feld[$sgb_feld_name] = preg_replace("/^([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,}))/si","[email]\\0[/email]",$sgb_feld[$sgb_feld_name]);
}
}
# mysql_query generierung
if(!$sgb_save_err){
$sgb_sql_new_field = "";
$sgb_sql_new_wert = "";
for($sgb_x=4;$sgb_x<$sgb_num_fields;$sgb_x++){
$sgb_feld_name = mysql_field_name($sgb_rs,$sgb_x);
$sgb_feld_recht = mysql_fetch_array(sgb_query("SELECT * FROM ".$sgb_db_pre."scarbook_field_def WHERE name='$sgb_feld_name' LIMIT 1"));
if($sgb_x<($sgb_num_fields-1)) { $sgb_sql_komme = (","); } else { unset($sgb_sql_komme); }
## spalten
$sgb_sql_new_field .= $sgb_feld_name.$sgb_sql_komme;
## werte verarbeiten
switch ($sgb_feld_recht["html"]) {
case 0: ## html on
$sgb_sql_new_wert .= "'".$sgb_feld[$sgb_feld_name]."'".$sgb_sql_komme;
break;
case 1: ## html code umwandeln
$sgb_sql_new_wert .= "'".htmlentities($sgb_feld[$sgb_feld_name])."'".$sgb_sql_komme;
break;
case 2: ## html code entfernen
$sgb_sql_new_wert .= "'".@strip_tags($sgb_feld[$sgb_feld_name])."'".$sgb_sql_komme;
}
}
## daten schreiben
sgb_query("INSERT INTO ".$sgb_db_pre."scarbook_msg (time, ip, $sgb_sql_new_field) VALUES ('".time()."','".getenv("REMOTE_ADDR")."',$sgb_sql_new_wert) ");
$sgb_new_id = mysql_insert_id();
if(mysql_errno()==0){
## sendet email an admin
if($sgb_var[send_admin_mail]==1){
## template - admin email
$sgb_tpl_admin_mail = str_replace( array( "{DATUM}", "{ZEIT}", "{IP}" ),
array( date("d.m.Y"),date("H:i:s"),getenv("REMOTE_ADDR") ),
sgb_tpl("gb_mail_admin.txt")
);
for($sgb_x=4;$sgb_x<$sgb_num_fields;$sgb_x++){
$sgb_tpl_admin_mail = str_replace( "{".strtoupper(mysql_field_name($sgb_rs,$sgb_x))."}", $sgb_feld[mysql_field_name($sgb_rs,$sgb_x)],$sgb_tpl_admin_mail );
}
$sgb_guest_addy = (empty($sgb_feld[$sgb_var[send_guest_mail]])) ? "ScarBook - www.Scar4U.de " : "ScarBook - ".$sgb_feld[$sgb_var[send_guest_mail]]." <".$sgb_feld[$sgb_var[send_guest_mail]].">";
@mail($sgb_admin_email, $sgb_var[admin_mail_subjekt]." [ ScarBook ]",$sgb_tpl_admin_mail,"From: ".$sgb_guest_addy);
}
## sendet email an gast
if(!empty($sgb_var[send_guest_mail]) && !empty($sgb_feld[$sgb_var[send_guest_mail]]) ){
## template - guest email
$sgb_tpl_guest_mail = str_replace( array( "{DATUM}", "{ZEIT}", "{IP}" ),
array( date("d.m.Y"), date("H:i:s"), getenv("REMOTE_ADDR") ),
sgb_tpl("gb_mail_besucher.txt")
);
for($sgb_x=4;$sgb_x<$sgb_num_fields;$sgb_x++){
$sgb_tpl_guest_mail = str_replace( "{".strtoupper(mysql_field_name($sgb_rs,$sgb_x))."}", $sgb_feld[mysql_field_name($sgb_rs,$sgb_x)],$sgb_tpl_guest_mail );
}
@mail($sgb_feld[$sgb_var[send_guest_mail]], $sgb_var[guest_mail_subjekt]." [ ScarBook ]",$sgb_tpl_guest_mail,"From: ScarBook - $sgb_admin_name <".$sgb_admin_email.">");
}
}
}
} else { $sgb_save_err = $sgb_var[flood_protect_err]; }
}
if(!empty($sgb_del) && $sgb_var[user_del]>0){
sgb_query("DELETE FROM ".$sgb_db_pre."scarbook_msg WHERE id = '".$sgb_del."'
&& ip = '".getenv("REMOTE_ADDR")."'
&& time > '".(time()-$sgb_var[user_del])."'");
}
if(isset($sgb_add) || $sgb_save_err){
## template - neue nachrichten
$sgb_tpl_new = sgb_tpl("gb_new_msg.html");
$sgb_rs = sgb_query("SELECT * FROM ".$sgb_db_pre."scarbook_msg");
$sgb_num_fields = mysql_num_fields($sgb_rs);
$sgb_field_def_array = mysql_fetch_array(sgb_query("SELECT * FROM ".$sgb_db_pre."scarbook_field_def LIMIT 1"));
for($sgb_x=4;$sgb_x<$sgb_num_fields;$sgb_x++){
$sgb_tpl_new = str_replace( array( "{".strtoupper(mysql_field_name($sgb_rs,$sgb_x))."}",
"{".strtoupper(mysql_field_name($sgb_rs,$sgb_x))."_ERR}" ),
array( $sgb_feld[mysql_field_name($sgb_rs,$sgb_x)],
$sgb_feld_err[mysql_field_name($sgb_rs,$sgb_x)] ),
$sgb_tpl_new
);
}
echo str_replace( array("{SELF}","{ERROR}"),
array($PHP_SELF."?".$sgb_var[uri],
$sgb_save_err = (strlen($sgb_save_err)>1) ? $sgb_save_err : "" ),
$sgb_tpl_new);
} else {
## sql erweiterung bei aktiver suche
if(!empty($sgb_suche) && !empty($sgb_suche_spalte)) {
$sgb_suche_sql = (" WHERE ".strtolower($sgb_suche_spalte)." LIKE '%".str_replace("%","\%",$sgb_suche)."%' ");
$sgb_var[uri] .= ("&sgb_suche_spalte=$sgb_suche_spalte&sgb_suche=$sgb_suche");
}
## variablen
$sgb_num = mysql_result(sgb_query("SELECT count(id) FROM ".$sgb_db_pre."scarbook_msg $sgb_suche_sql"),0,0);
if(!$sgb_proseite) { $sgb_proseite = ($sgb_var[proseite_default]<1) ? 10 : $sgb_var[proseite_default]; }
if(!$sgb_seite || $sgb_seite<1){ $sgb_seite=1; }
$sgb_seiten = ceil($sgb_num/$sgb_proseite);
if($sgb_seite>$sgb_seiten){$sgb_seite=$sgb_seiten;}
$sgb_proseitestart = ($sgb_seite-1) * $sgb_proseite;
$sgb_nr = $sgb_num - ((($sgb_seite-1) * $sgb_proseite));
## bestimmte nr anzeigen
if(!empty($sgb_show) && $sgb_show>0 && $sgb_show<$sgb_num){
$sgb_seite = (int)( ( ($sgb_num - $sgb_show) / $sgb_proseite ) + 1 );
$sgb_seiten_waehler = sgb_seiten_waehler($sgb_seite,$sgb_seiten,$sgb_var[seiten_zaehler],$sgb_var[seiten_zaehler_sprung],"&sgb_proseite=$sgb_proseite$sgb_var[uri]");
$sgb_nr = $sgb_show;
$sgb_proseitestart = $sgb_num-$sgb_show;
} else {
$sgb_seiten_waehler = sgb_seiten_waehler($sgb_seite,$sgb_seiten,$sgb_var[seiten_zaehler],$sgb_var[seiten_zaehler_sprung],"&sgb_proseite=$sgb_proseite$sgb_var[uri]");
unset($sgb_show);
}
## datenbak resultate
$sgb_rs = sgb_query("SELECT * FROM ".$sgb_db_pre."scarbook_msg $sgb_suche_sql ORDER BY id DESC LIMIT $sgb_proseitestart, $sgb_proseite");
$sgb_num_fields = mysql_num_fields($sgb_rs);
## proseite
unset($sgb_proseite_show);
$sgb_proseite_rs = explode(",",$sgb_var[proseite_zahlen]);
for($sgb_x=0;$sgb_x$sgb_var[proseite_layout] ");
} else {
$sgb_proseite_show .= str_replace("{ZAHL}",$sgb_proseite_rs[$sgb_x],$sgb_var[proseite_layout_aktive]);
}
}
## seiteback
$sgb_neue_seite = $sgb_seite-1;
if($sgb_seite>1){
$sgb_seite_back=(" ".str_replace("{ZAHL}","$sgb_neue_seite",$sgb_var[seite_back_layout])." ");
} else {
$sgb_seite_back=(" ");
}
## x - y von z
if($sgb_num>0){
$sgb_x_bis_y_von_z = "";
if(!empty($sgb_show) && $sgb_show>0 && $sgb_show<$sgb_num){ ## bei anzeige bestimmter nummer
if( ($sgb_show-$sgb_proseite) > 0) { $sgb_x_bis_y_von_z.= $sgb_show-$sgb_proseite+1; } else { $sgb_x_bis_y_von_z.= "1"; } $sgb_x_bis_y_von_z.=(" - ");
if(($sgb_proseite*$sgb_seite)>=$sgb_num){ $sgb_x_bis_y_von_z.= $sgb_num - ($sgb_num - $sgb_show); } else { $sgb_x_bis_y_von_z.= ($sgb_num - $sgb_proseitestart); }
} else { ## standart
if(($sgb_num-$sgb_proseite*$sgb_seite+1)<1){ $sgb_x_bis_y_von_z.= "1"; } else { $sgb_x_bis_y_von_z.= ($sgb_num-$sgb_proseite*$sgb_seite+1); } $sgb_x_bis_y_von_z.=(" - ");
if(($sgb_proseite*$sgb_seite)>=$sgb_num){ $sgb_x_bis_y_von_z.= $sgb_num - ($sgb_proseite*$sgb_seite) + $sgb_proseite; } else { $sgb_x_bis_y_von_z.= ($sgb_num - $sgb_proseitestart); }
}
$sgb_x_bis_y_von_z.=(" von $sgb_num");
} else { $sgb_x_bis_y_von_z = (" "); }
## seitenext
$sgb_neue_seite = $sgb_seite+1;
if($sgb_seiten>$sgb_seite){ $sgb_seite_next=("".str_replace("{ZAHL}","$sgb_neue_seite",$sgb_var[seite_next_layout])." "); } else { $sgb_seite_next=(" "); }
## suchespalten
$sgb_selected_rs = sgb_query("SELECT * FROM ".$sgb_db_pre."scarbook_field_def WHERE search='1' ORDER BY name");
while($sgb_selected_array = mysql_fetch_array($sgb_selected_rs)){
if( $sgb_suche_spalte == $sgb_selected_array["name"]){ $sgb_selected = (" selected "); } else { $sgb_selected = ""; }
$sgb_such_spalten .= ("".$sgb_selected_array["bezeichnung"]." ");
}
## template - hauptgblayout
$sgb_tpl_main = sgb_tpl("gb_main.html");
## suche
if(!empty($sgb_suche) && !empty($sgb_suche_spalte)) {
## template - bei aktiver suche
$sgb_tpl_suche = sgb_tpl("gb_suche.html");
$sgb_suche_tpl = str_replace( array( "{SUCHE}","{SUCHESPALTE}","{NUM}","{SELF}"),
array( $sgb_suche,mysql_result(sgb_query("SELECT bezeichnung FROM ".$sgb_db_pre."scarbook_field_def WHERE name='$sgb_suche_spalte'"),0,0),$sgb_num,$PHP_SELF."?".mysql_result(sgb_query("SELECT wert FROM ".$sgb_db_pre."scarbook_var WHERE var='uri'"),0,0) ),
$sgb_tpl_suche
);
}
# gb content ersetzungen
if($sgb_num>0){
## template - eintraege
$sgb_tpl_tbl_1 = sgb_tpl("gb_tabelle_1.html");
$sgb_tpl_tbl_2 = sgb_tpl("gb_tabelle_2.html");
$sgb_tpl_kommentar_1 = sgb_tpl("gb_kommentar_1.html");
$sgb_tpl_kommentar_2 = sgb_tpl("gb_kommentar_2.html");
## feld-layouts
$sgb_feld_layout_rs = sgb_query("SELECT name, layout FROM ".$sgb_db_pre."scarbook_field_def");
while($sgb_feld_layout_array = mysql_fetch_array($sgb_feld_layout_rs)){
$sgb_feld_layout[$sgb_feld_layout_array["name"]] = $sgb_feld_layout_array["layout"];
}
## smilies array
$sgb_smilies_rs = sgb_query("SELECT * FROM ".$sgb_db_pre."scarbook_smilies");
$sgb_sm_i = 0;
while( $sgb_smilies_array = mysql_fetch_array($sgb_smilies_rs) ) {
$sgb_smilies_needle[$sgb_sm_i] = trim($sgb_smilies_array["def"]);
$sgb_smilies_str[$sgb_sm_i] = " ";
$sgb_sm_i++;
}
## eintraege auslesen
while($sgb_row = mysql_fetch_row($sgb_rs)){
$sgb_id = $sgb_row[0];
## tbl - layout - wechsel
if($sgb_nr%2 == 0){
$sgb_tpl_kommentar = $sgb_tpl_kommentar_1;
$sgb_tpl_tbl = $sgb_tpl_tbl_1;
} else {
$sgb_tpl_kommentar = $sgb_tpl_kommentar_2;
$sgb_tpl_tbl = $sgb_tpl_tbl_2;
}
if(!empty($sgb_row[3])){
$sgb_kommentar = str_replace ( $sgb_smilies_needle, $sgb_smilies_str, str_replace("{KOMMENTAR}",nl2br($sgb_row[3]),$sgb_tpl_kommentar));
} else { $sgb_kommentar = ""; }
$sgb_tpl_tbl_temp = $sgb_tpl_tbl;
for($sgb_x=4;$sgb_x<$sgb_num_fields;$sgb_x++){
$sgb_field_name = mysql_field_name($sgb_rs,$sgb_x);
$sgb_field_def_array = mysql_fetch_array(sgb_query("SELECT * FROM ".$sgb_db_pre."scarbook_field_def WHERE name='$sgb_field_name'"));
## smilie ersetzungen wenn smilie fkt aktiviert
if($sgb_field_def_array["smilies"]==1){
$sgb_replace_text = str_replace ( $sgb_smilies_needle, $sgb_smilies_str, $sgb_row[$sgb_x]);
} else { ## wenn keien smilie ersetungen aktiviert sind
$sgb_replace_text = $sgb_row[$sgb_x];
}
$sgb_replace_text = trim($sgb_replace_text);
if(!empty($sgb_replace_text)) {
$sgb_replace_text = str_replace("{WERT}",$sgb_replace_text,$sgb_feld_layout[$sgb_field_name]);
} else {
$sgb_replace_text = $sgb_field_def_array["layout_else"];
}
## zeilenumbruch
if($sgb_field_def_array["nl2br"]==1){ $sgb_replace_text = nl2br($sgb_replace_text); }
## gb-code
if($sgb_field_def_array["gb_code"]==1){
$sgb_field_def_array["gb_code_ebenen"] = ($sgb_field_def_array["gb_code_ebenen"]<1) ? $sgb_field_def_array["gb_code_ebenen"] = 1 : $sgb_field_def_array["gb_code_ebenen"] = $sgb_field_def_array["gb_code_ebenen"];
for($sgb_bla = 0; $sgb_bla<$sgb_field_def_array["gb_code_ebenen"]; $sgb_bla++){
$sgb_replace_text = preg_replace("/\[b](.*?)\[\/b\]/si", "\\1 ", $sgb_replace_text); # bold
$sgb_replace_text = preg_replace("/\[i](.*?)\[\/i\]/si", "\\1 ", $sgb_replace_text); # italic
$sgb_replace_text = preg_replace("/\[u](.*?)\[\/u\]/si", "\\1 ", $sgb_replace_text); # underline
$sgb_replace_text = preg_replace("/\[d](.*?)\[\/d\]/si", "\\1", $sgb_replace_text); # durchgestrichen
$sgb_replace_text = preg_replace("/\[sub](.*?)\[\/sub\]/si", "\\1 ", $sgb_replace_text); # tiefergestellt
$sgb_replace_text = preg_replace("/\[sup](.*?)\[\/sup\]/si", "\\1 ", $sgb_replace_text); # hoehergestellt
$sgb_replace_text = preg_replace("/\[font=(.*?)](.*?)\[\/font\]/si", "\\2 ", $sgb_replace_text); # font-face
$sgb_replace_text = preg_replace("/\[size=(.*?)](.*?)\[\/size\]/si", "\\2 ", $sgb_replace_text); # font-size
$sgb_replace_text = preg_replace("/\[color=(.*?)](.*?)\[\/color\]/si", "\\2 ", $sgb_replace_text); # font-size
$sgb_replace_text = preg_replace("/\[left](.*?)\[\/left\]/si", "\\1
", $sgb_replace_text); # align-left
$sgb_replace_text = preg_replace("/\[center](.*?)\[\/center\]/si", "\\1 ", $sgb_replace_text); # align-center
$sgb_replace_text = preg_replace("/\[right](.*?)\[\/right\]/si", "\\1
", $sgb_replace_text); # align-right
$sgb_replace_text = preg_replace("/\[block](.*?)\[\/block\]/si", "\\1
", $sgb_replace_text); # align-block
$sgb_replace_text = preg_replace("/\[img](.*?)\[\/img\]/si", " ", $sgb_replace_text); # img
$sgb_replace_text = preg_replace("/\[url]http:\/\/(.*?)\[\/url\]/si", "\\1 ", $sgb_replace_text); # url
$sgb_replace_text = preg_replace("/\[url]https:\/\/(.*?)\[\/url\]/si", "\\1 ", $sgb_replace_text); # url
$sgb_replace_text = preg_replace("/\[url](.*?)\[\/url\]/si", "\\1 ", $sgb_replace_text); # url
$sgb_replace_text = preg_replace("/\[url=http:\/\/(.*?)](.*?)\[\/url\]/si", "\\2 ", $sgb_replace_text); # url-name
$sgb_replace_text = preg_replace("/\[url=https:\/\/(.*?)](.*?)\[\/url\]/si", "\\2 ", $sgb_replace_text); # url-name
$sgb_replace_text = preg_replace("/\[url=(.*?)](.*?)\[\/url\]/si", "\\2 ", $sgb_replace_text); # url-name
$sgb_replace_text = preg_replace("/\[email](.*?)\[\/email\]/si", "\\1 ", $sgb_replace_text); # email
$sgb_replace_text = preg_replace("/\[email=(.*?)](.*?)\[\/email\]/si", "\\2 ", $sgb_replace_text); # email-name
}
}
## wordwrap
if(!empty($sgb_replace_text) && $sgb_field_def_array["wordwrap"]>0){
$sgb_replace_text = preg_replace("/([^\n\r ?&\.\/<>\"\\-]{".$sgb_field_def_array["wordwrap"]."})/i"," \\1\n",$sgb_replace_text);
}
$sgb_tpl_tbl_temp = str_replace("{".strtoupper($sgb_field_name)."}",$sgb_replace_text,$sgb_tpl_tbl_temp);
}
## guest del
if($sgb_var[user_del]>0 && $sgb_row[1]>time()-$sgb_var[user_del] && $sgb_row[2]==getenv("REMOTE_ADDR")){
$sgb_guest_del = (" $sgb_var[user_del_layout] ");
} else { $sgb_guest_del = ""; }
$sgb_tbl_tpl .= str_replace( array( "{NR}","{DATUM}","{ZEIT}","{IP}","{ADMIN}","{GUEST_DEL}","{KOMMENTAR}"),
array( $sgb_nr--,
date("d.m.Y",$sgb_row[1]),
date("H:i:s",$sgb_row[1]),
$sgb_row[2],
"$sgb_var[admin_del_url] ",
$sgb_guest_del,
$sgb_kommentar ),
$sgb_tpl_tbl_temp
);
}
} elseif(!empty($sgb_suche) && !empty($sgb_suche_spalte)) {
$sgb_tbl_tpl = $sgb_suche_erfolglos;
} else {
$sgb_tbl_tpl = $sgb_keine_eintraege;
}
echo str_replace( array( "{SUCHESPALTE}","{SUCHE}","{SEITE}","{SHOW}","{SELF}","{SEITENWAHL}","{PROSEITEWAHL}","{PROSEITE}","{SEITEZURUECK}",
"{SEITEWEITER}","{X_BIS_Y_VON_Z}","{NUM}","{SUCHERS}"),
array( $sgb_such_spalten,
$sgb_suche,
$sgb_seite,
$sgb_show,
$PHP_SELF."?".$sgb_var[uri],
$sgb_seiten_waehler,
$sgb_proseite_show,
$sgb_proseite,
$sgb_seite_back,
$sgb_seite_next,
$sgb_x_bis_y_von_z,
$sgb_num,
$sgb_suche_tpl ),
str_replace("{CONTENT}",$sgb_tbl_tpl,$sgb_tpl_main)
);
}
}
echo (" ");
@include($sgb_admin_dir."templates/gb_footer.html");
?>