Wieder mal Gästebuch..

Gesperrt
Deltapapa
Beiträge: 62
Registriert: Fr 17. Jun 2005, 23:32
Wohnort: Mildtstedt
Kontaktdaten:

Wieder mal Gästebuch..

Beitrag von Deltapapa »

Hallo Zusammen,
habe immer noch folgende Probleme mit Snoopys Gästebuch:
Wenn ich im Backend die Ausgabe aufrufe, kriege ich folgenden Fehler:

Code: Alles auswählen

[22-Jul-2005 07:35:20] MySQL error 1064: You have an error in your SQL syntax near 'WHERE id='' LIMIT 1' at line 1
UPDATE con_guestbook SET active= WHERE id='' LIMIT 1
Das passiert aber nur, wenn ich im Backend die Ausgabe aufrufe!
Das zweite Problem: Einträge mit Smily werden nicht in der Datenbank gespeichert:

Code: Alles auswählen

[22-Jul-2005 17:09:46] MySQL error 1064: You have an error in your SQL syntax near 'border=\'0\'>','1',1)' at line 1
INSERT INTO con_guestbook (name,email,location,url,date,comments,active,client) VALUES ('Test','','24.177.212.112/24-177-212-112.dhcp.almg.nm.charter.com','',NOW(),'Hallo
<br><img src=\'upload/bilder/design/gaestebuch/laugh.gif\-<br>' border=\'0\'>','1',1)
Ich habe alles versucht, mehrmal installiert, das Forum (der rießen tread mit 18 Seiten) von vorne bis hinten durchgelesen, aber bis jetzt hatte nie jemand ne Idee zu Fehler 1 bzw zu Fehler 2!
Den Trick mit der Script Zeile im Layout - Code wegzulassen, damit es mit den Smilys geht, funzt bei mir nicht.
Kann mir einer helfen?
Ich glaube auch, fehler 1 tritt bei vielen leuten auf, ist vielleicht nur ein schönheitsfehler, weiß nicht. Vieleicht hat es ja auch was mit 4.4.5 zu tun, habe ich zumindest aus dem forum rausgelesen!
Vielen Dank im vorraus ihr vielen fleißigen und tapferen Helfer!
PS: hat noch jemand kurz ein Buchtipp für mich?
Mein Favorit:
http://www.terrashop.de/82726534A/artikel.php und
http://www.terrashop.de/82726918A/artikel.php !
Was haltet Ihr davon....
Dirk aus New Mexico
C 4.4.5 r1
Das Internet wurde von www.bademeister.com erfunden
Oldperl
Beiträge: 4316
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Hat sich bedankt: 6 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Re: Wieder mal Gästebuch..

Beitrag von Oldperl »

Deltapapa hat geschrieben:Hallo Zusammen,
habe immer noch folgende Probleme mit Snoopys Gästebuch:
Wenn ich im Backend die Ausgabe aufrufe, kriege ich folgenden Fehler:

Code: Alles auswählen

[22-Jul-2005 07:35:20] MySQL error 1064: You have an error in your SQL syntax near 'WHERE id='' LIMIT 1' at line 1
UPDATE con_guestbook SET active= WHERE id='' LIMIT 1
Hmmm, sollte mich schwer täuschen, aber lt. dieser Meldung fehlt da die Angabe für und auch

Code: Alles auswählen

active=
sollte so wohl nicht da stehen.
So sucht er nach einer nicht näher bestimmten id, versucht dort das Feld active auf ? zu setzen und das noch auf einen Datensatz begrenzt.

Gruß aus Franken

Ortwin
ConLite 3.0.0-dev, alternatives und stabiles Update von Contenido 4.8.x unter PHP 8.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Deltapapa
Beiträge: 62
Registriert: Fr 17. Jun 2005, 23:32
Wohnort: Mildtstedt
Kontaktdaten:

Immer noch Gästebuch

Beitrag von Deltapapa »

Hallo Oldperl,
habe das mit der ID und active nun auch gesehen, ich glaube das ist auch das Problem, das ich keine Beiträge mit Smily speichern kann :-(
Ich komme zwar von der Access Programmierung, also SQL ist mir nicht ganz unbekannt, jedoch kann ich den Fehler in meinem Code nicht finden. Ich habe nun mal den Code von meiner Eingabe (Output-Code) gepostet. Vielleicht findet Ihr ja was:

Code: Alles auswählen

<br><p><B>Achtung: Bitte noch keine Smileys benutzen!!!!!!!</B></p>
<?php 
/*********************************************** 
* CONTENIDO MODUL -  OUTPUT 
* 
* Modulname   :     Guestbook Eingabe v1.1 
* Copyright   :     P.beauvain 
* Created     :     14-02-2004 
* Modified    :     Mar. 1st 2004 by Lars D. Forseth <lars@forseth.de> 
************************************************/ 


$activ = "CMS_VALUE[5]"; 
if ($activ == "") { $activ = "0"; 
} 
$sperre ="CMS_VALUE[6]"; 
$links  = explode('?',$PHP_SELF); 
$link   = $links[0]; 
$link   = $link."?idcat=".$idcat; // back-link 
$meineseite = $auth->url(); 

$a = $_POST["a"]; //wurde ergänzt. Ohne sind die Eingabefelder im backend nicht zu sehen 
if ($a == "") { $a = "add"; } 


/* in diesem Ordner liegen meine smileys für das Gästebuch 
(sollte nicht mit "/" beginnen, MUSS aber mit "/" enden!) 
*/ 
$dir = "upload/bilder/design/gaestebuch/"; 
/* end definition v. "$dir" */ 


echo " 
<p><B>Bitte mindestens Name und Kommentar angeben</B> 
<div>Um Ihrem Beitrag ein <b>Emoticon</b> hinzuzufügen, einfach auf ein Smiley klicken ! Sie können auch den</div> 
<div>Code eingeben, der erste Smiley wäre dann z.B.: :-)</div></p> 
"; 


if ($a == "add") { 

echo " 
        <br>"; 
echo " 
        <form name='gb' id='gb' action=".$link." method='post'>"; 
echo " 
        <input type=\"hidden\" name=\"a\" value=\"send\">"; 
echo " 
        <table border=0 cellpadding=2 cellspacing=0> 
          <tr class=text> 
           <td align=right><B> Name:  </b></td> 
           <td><input class=\"feld\" size=\"40\" type=text name=name value='$name'></td> 
           <td rowspan=8 valign=top> 
            <table border=0 align=right cellspacing=0 cellpadding=0> 
             <tr class=text> 
              <td class=text><strong>Bedeutung</strong></td> 
              <td class=text><div align=center><strong>Icon </strong></div></td> 
              <td class=text><strong> Code</strong></td> 
             </tr> 
             <tr class=text> 
              <td>lacht</td> 
              <td align=center valign=middle><img src=".$dir."smile.gif onClick=insert(':-)');></td> 
              <td>:-)</td> 
             </tr> 
             <tr class=text> 
              <td>Zunge streckend</td> 
              <td align=center valign=middle><img src=".$dir."tongue.gif onClick=insert(':-P');></td> 
              <td>:-P</td> 
             </tr> 
             <tr class=text> 
              <td>zuzwinkernd</td> 
              <td align=center valign=middle><img src=".$dir."wink.gif onClick=insert(';-)');></td> 
              <td>;-)</td> 
             </tr> 
             <tr class=text> 
              <td>laut lachend</td> 
              <td align=center valign=middle><img src=".$dir."laugh.gif onClick=insert(':lol:');></td> 
              <td>:lol:</td> 
             </tr> 
             <tr class=text> 
              <td>unsicher</td> 
              <td align=center valign=middle><img src=".$dir."unsure.gif onClick=insert(':unsure:');></td> 
              <td>:unsure:</td> 
             </tr> 
             <tr class=text> 
              <td>cool</td> 
              <td align=center valign=middle><img src=".$dir."cool.gif onClick=insert('8-)');></td> 
              <td>8-)</td> 
             </tr> 
             <tr class=text> 
              <td>nicht versteht</td> 
              <td align=center valign=middle><img src=".$dir."huh.gif onClick=insert(':huh:');></td> 
              <td>:huh:</td> 
             </tr> 
             <tr class=text> 
              <td>w&uuml;tend</td> 
              <td align=center valign=middle><img src=".$dir."mad.gif onClick=insert(':angry:');></td> 
              <td>:angry:</td> 
             </tr> 
             <tr class=text> 
              <td>erstaunt</td> 
              <td align=center valign=middle><img src=".$dir."blink.gif onClick=insert(':blink:');></td> 
              <td>:blink:</td> 
             </tr> 
             <tr class=text> 
              <td>traurig</td> 
              <td align=center valign=middle><img src=".$dir."sad.gif onClick=insert(':-(');></td> 
              <td>:-(</td> 
             </tr> 
             <tr class=text> 
              <td>breit grinsend</td> 
              <td align=center valign=middle><img src=".$dir."biggrin.gif onClick=insert(':-))');></td> 
              <td>:-))</td> 
             </tr> 
             <tr class=text> 
              <td>erschrocken</td> 
              <td align=center valign=middle><img src=".$dir."surprised.gif onClick=insert(':-O');></td> 
              <td>:-0</td> 
             </tr> 
             <tr class=text> 
              <td>augenrollen</td> 
              <td align=center valign=middle><img src=".$dir."rolleyes.gif onClick=insert(':rolleyes:');></td> 
              <td>:rolleyes:</td> 
             </tr> 
            </table> 
           </td> 
          </tr> 
          <tr class=text> 
           <td align=right width=12%> E-Mail:  </td> 
           <td><input class=\"feld\" size=\"40\" type=text name=email value='$email'></td> 
          </tr> 
          <tr class=text> 
           <td align=right width=12%> Homepage:  </td> 
           <td><input type=\"text\" class=\"feld\" size=\"40\" name=\"urlguest\" value=\"$urlguest\"></td> 
          </tr> 
          <tr valign=top class=text> 
           <td align=right width=10%><b> Kommentar:  </b></td> 
           <td> 
               <textarea class=\"feld\" name=\"comments\" cols=40 rows=11 wrap=physical>$comments</text"."area> <!--cursor springt jetzt in die erste Zeile--> 
           </td> 
          </tr> 
          <tr class=text> 
           <td align=right width=10%>&nbsp;</td>  
           <td > 
            <!-- <a href=$link onClick=gb.submit();>Eintragen</a> --> 
            <input class=\"feld\" type=\"submit\" value=\"Eintragen\"></td> 
          </tr> 
        </table> 
        </form> 
        "; 
} // end "if($a == "add")" 






// wenn ein eintrag geschrieben werden soll 
if($a == "send") { 
  // Formatierung des Textes aus dem Kommentarfeld 
if($name!="" && $comments!="") { //Abfangen der "leeren" Einträge 

    /* filter given data */ 
    $error = "no"; 

    $mailkomm = stripslashes($comments); 

    $comments = trim($comments); 
    $comments = nl2br($comments); 
    $comments = str_replace("'","",$comments); 
    $comments = str_replace(";","",$comments); 
    $comments = str_replace("--","",$comments); 
    $comments = htmlentities($comments); 
    $comments = str_replace("<br />","",$comments); 
    $comments = str_replace("<br/>","",$comments); 
    $comments = str_replace("<br>","",$comments); 
    $comments = str_replace("\n","<br>",$comments); 


      // filter email 
      if ($error == "no") { 
      if ($email) { 
        if (strlen($email) > 50) {$error = "Emailadresse ist zu lang! (max. 50 Zeichen erlaubt)";} 
        else { 
        $valid = (eregi ("^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]+$",$email)); 
        if (!$valid == 1) {$error = "Emailadresse ist ung&uuml;ltig, bitte&nbsp;&uuml;berpr&uuml;fen!";} 
        else { 
          $parts = explode("@",$email); 
          $lasts = explode(".",$parts[1]); 
          $domain = $lasts[(count($lasts)-2)].".".$lasts[(count($lasts)-1)]; 
          $valid = (int) (checkdnsrr($domain,ANY)); 
          if ($valid == 0) {$error = "Emailadresse ist ung&uuml;ltig, bitte&nbsp;&uuml;berpr&uuml;fen!";} 
        } // end else 
        } // end else 
      } // end if email 
      } // end if no error 
      
      
      // filter name 
      if ($error == "no") { 
      if (strlen($name) > 30) {$error = "Name ist zu lang! (max. 30 Zeichen erlaubt)";} 
      else { 
      $name = nl2br($name); 
      $name = str_replace("'","",$name); 
      $name = str_replace(";","",$name); 
      $name = str_replace("--","",$name); 
      $name = htmlentities($name); 
      } 
      } // end if 
      
      
      // filter urlguest 
      if ($error == "no") { 
      if ($urlguest) { 
        if (strlen($urlguest) > 100) {$error = "URL ist zu lang! (max. 100 Zeichen erlaubt)";} 
        else { 
        $urlguest = str_replace("\n","",$urlguest); 
        $urlguest = str_replace("'","",$urlguest); 
        $urlguest = str_replace(";","",$urlguest); 
        $urlguest = str_replace("--","",$urlguest); 
        $urlguest = str_replace("\"","",$urlguest); 
        $urlguest = str_replace("'","",$urlguest); 
        $urlguest = str_replace("\'","",$urlguest); 
        $urlguest = str_replace(" ","",$urlguest); 
        $urlguest = strtolower($urlguest); 
        $sheme_given = (eregi("^([a-z]+://)",$urlguest)); 
        if ($sheme_given == 0) {$urlguest = "http://".$urlguest;} 
        $url1 = (parse_url($urlguest)); 
        $host = $url1["host"]; 
        $valid = (eregi("([a-z0-9_\\-\\.])+(\\.)+([a-z]{2,4})",$host)); 
        if (!$valid == 1) {$error = "Homepage ist ung&uuml;ltig, bitte&nbsp;&uuml;berpr&uuml;fen!";} 
        else { 
          $valid = (int) (checkdnsrr($host,ANY)); 
          if ($valid == 0) {$error = "Homepage ist ung&uuml;ltig, bitte&nbsp;&uuml;berpr&uuml;fen!";} 
        } // end else 

        } // end else 
      } // end if url 
      } // end if 
      
      
      
      
      if ($error == "no") { 
      
      if (strlen($comments) > 3000) {$error = "Kommentar ist zu lang! (max. 3000 Zeichen erlaubt)";} 
      else { // no errors in given data yet... 
      //-------------------- konvertiere Smileys --------------------------------- 

      $comments = eregi_replace(":-\)\)|:\)\)|:biggrin:", 
      "<img src=\'".$dir."biggrin.gif\' border=\'0\'>",$comments); 

      $comments = eregi_replace(":-\)|:\)|:smile:", 
      "<img src=\'".$dir."smile.gif\' border=\'0\'>",$comments); 

                $comments = eregi_replace(":-D|:-D|:lol:", 
      "<img src=\'".$dir."laugh.gif\' border=\'0\'>",$comments); 

                $comments = eregi_replace(":huh:", 
      "<img src=\'".$dir."huh.gif\' border=\'0\'>",$comments); 

                $comments = eregi_replace(":rolleyes:", 
      "<img src=\'".$dir."rolleyes.gif\' border=\'0\'>",$comments); 


      $comments = eregi_replace(":O\)|:o\)", 
      "<img src=\'".$dir."smile2.gif\' border=\'0\'>",$comments); 

      $comments = eregi_replace(";-\)|;\)|:wink:", 
      "<img src=\'".$dir."wink.gif\' border=\'0\'>",$comments); 

      $comments = eregi_replace(":-\(|:\(|:sad:", 
      "<img src=\'".$dir."sad.gif\' border=\'0\'>",$comments); 

      $comments = eregi_replace(":angry:", 
      "<img src=\'".$dir."mad.gif\' border=\'0\'>",$comments); 

      $comments = eregi_replace(":-D|:D|:happy:", 
      "<img src=\'".$dir."happy.gif\' border=\'0\'>",$comments); 

      $comments = eregi_replace(":heart:", 
      "<img src=\'".$dir."heart.gif\' border=\'0\'>",$comments); 

      $comments = eregi_replace(":-P|:P|:tongue:", 
      "<img src=\'".$dir."tongue.gif\' border=\'0\'>",$comments); 

      $comments = eregi_replace("8-\)|8\)|:cool:", 
      "<img src=\'".$dir."cool.gif\' border=\'0\'>",$comments); 

      $comments = eregi_replace(":-\(|:\(|:weep:", 
      "<img src=\'".$dir."weep.gif\' border=\'0\'>",$comments); 

      $comments = eregi_replace(":-o|:o|:astonished:", 
      "<img src=\'".$dir."surprised.gif\' border=\'0\'>",$comments); 

      $comments = eregi_replace(":blink:", 
      "<img src=\'".$dir."blink.gif\' border=\'0\'>",$comments); 

      $comments = eregi_replace(":wub:", 
      "<img src=\'".$dir."wub.gif\' border=\'0\'>",$comments); 

      $comments = eregi_replace(":unsure:", 
      "<img src=\'".$dir."unsure.gif\' border=\'0\'>",$comments); 


      // see if there are more smileys than allowed: 
      $imgs = explode("<img src=",$comments); 
      $imgs = count($imgs); 
      if ($imgs > 10) { 
        $error = "Zu viele Smileys! (max. 10 Stück pro Eintrag)"; 
        $comments = ""; 
      } // end if($imgs > 10) 
      
      } // end else no errors 
      
      
      
      
      } // end else ("no errors in given data yet") 


      /* end "filter given data" */ 
      
      
      
      /* if no error was found while filtering */ 
      
      if ($error == "no") { 

/* search for words longer than 50 chars and shorten them + <br> */ 
$c = 0; 
for ($i=0; $i < strlen($comments); $i++) { 
  $c++; 
  if (($comments[$i] == " ") or ($comments[$i] == "\n") or 
      ($comments[$i] == "\r")) {$c = 0;} 
  if ($c > 48) { 
    $comments = substr_replace($comments, "-<br>", $i, 0); 
    $i = $i+4; 
    $c = 0; 
  } // end if 
} // end for 


// ---------Abschnitt nach n Zeichen ------------------------------------- 

//$z = (int) ("CMS_VALUE[7]"); 
//for ($i=$z; $i < $z+20; $i++) { 
//  $comments1 = substr($comments , 0, $i); 
//  $cut = substr($comments, $i); 
//  if ((ord ($cut) == 32)||(ord ($cut) == 44)||(ord ($cut) == 45)) { 
//    $comments= substr($comments , 0, $i); 
//    $comments .= ' .....'; 
//  } // end if 
//} // end for 

// -------------- IP /Host speichern ---------------------------------- 
$ip = getenv('REMOTE_ADDR'); 
$host = gethostbyaddr($ip); 

// -------------- Cookie Setzen --------------------------------------- 

/* if no cookie lifetime given */ 
$lifetime = (int) ("CMS_VALUE[8]"); 
if($lifetime!="0" && $lifetime!=""){setcookie("AJUS-Forumeintrag","ja",time()+ ($lifetime*24*3600));} 
/* end if no cookie-lifetime given */ 


if($HTTP_COOKIE_VARS["AJUS-Forumeintrag"]=="ja" && $sperre ==1){ 
  echo "<br><p><font class=textbold><b>Sie haben sich bereits eingetragen !<br>"; 
  if ($lifetime == 1){echo "Sie können sich Morgen erneut eintragen.";} 
  else {echo "Sie können sich in CMS_VALUE[8] Tagen erneut eintragen.</b></p>";} 
} // end if 

else { 
    $urlguest =  str_replace("http://","",$urlguest); 
    $sql = "INSERT INTO ".$cfg["tab"]["guestbook"]." ". 
           "(name,email,location,url,date,comments,active,client) ". 
           "VALUES ('$name','$email','$ip/$host','$urlguest',NOW(),'$comments','$activ',$client)"; 
    $db->query($sql); 

if("CMS_VALUE[3]" == 1 && "CMS_VALUE[4]" != "") { 
  $mailbody = "Von: $name ( $email )\nHomepage: $urlguest\n\nKommentar:\n$mailkomm\n\n http://".getenv("HTTP_HOST")."$meineseite"; 
  mail("CMS_VALUE[4]", "neuer Gaestebuch-Eintrag", $mailbody, "From: Gaestebuch<CMS_VALUE[4]>\nX-Mailer: PHP/" . phpversion(). "\n"); 
}; 

echo "<br><p class=text><b>Danke, Ihr Beitrag wurde eingetragen.</b></p><br>"; 
} // end else 


} // end "if no error was found while filtering" 

/* errors were found in given data */ 
else { 

  $comments = str_replace("<br>","\n",$comments); 
  echo " 
  <br><br><br><font color=\"red\"><b><u>Fehler</u><br>".$error."</b></font><br><br> 
  <form action=\"$link\" method=\"post\"> 
    <input type=\"hidden\" name=\"name\" value=\"$name\"> 
    <input type=\"hidden\" name=\"email\" value=\"$email\"> 
    <input type=\"hidden\" name=\"urlguest\" value=\"$urlguest\"> 
    <input type=\"hidden\" name=\"comments\" value=\"$comments\"> 
    <input type=\"submit\" value=\"&laquo;&nbsp;zur&uuml;ck\"> 
  </form> 
  <br><br><br>";} 
// end "errors were found in given data" 



} // end "Abfangen von leeren Einträgen 

else { 

$comments = str_replace("<br>","\n",$comments); 
echo " 
   <br><p><font class=\"text\"><b>Bitte überprüfen Sie ihre Eingaben!</b></p><br><br> 
"; 
echo" 
   <form action=\"$link\" method=\"post\"> 
    <input type=\"hidden\" name=\"name\" value=\"$name\"> 
    <input type=\"hidden\" name=\"email\" value=\"$email\"> 
    <input type=\"hidden\" name=\"urlguest\" value=\"$urlguest\"> 
    <input type=\"hidden\" name=\"comments\" value=\"$comments\"> 
    <input type=\"submit\" class=\"feld\" value=\"&laquo;&nbsp;zur&uuml;ck\"> 
  </form> 
  "; 
} // end else 



} // end if($a == "send") 


?>
Damit kann ich jedoch nur ein Problem lösen, das andere tritt ja nur auf wenn ich mir im Backend die Ausgabe angucke!
Ich nehme mal an, das hängt mit dem aktivieren / Deaktivieren von den Beiträgen zusammen!

Vielen Dank, schönen Tag noch

HastaLaVista
Dirk
C 4.4.5 r1
Das Internet wurde von www.bademeister.com erfunden
Oldperl
Beiträge: 4316
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Hat sich bedankt: 6 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Beitrag von Oldperl »

Hallo Dirk,

sorry das ich mich jetzt erst wieder melde, aber die Arbeit :roll:

Hast du dein Problem inzwischen gelöst???
Wenn nicht schick mir das ganze Teil doch mal per mail rüber, dann bau ich es mal in meine Testumgebung ein, bitte mit detaillierter Fehlerbeschreibung.

Nur mit dem Output-Teil kann ich wenig anfangen, da ich da die Abhängigkeiten nit seh. Und sag mir bitte auch welche Contenidoversion du dabei benutzt

Gruß aus Franken

Ortwin
ConLite 3.0.0-dev, alternatives und stabiles Update von Contenido 4.8.x unter PHP 8.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Gesperrt