Gästebuchumbau: Nicht alle Felder werden gespeichert, fehler im Code?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gästebuchumbau: Nicht alle Felder werden gespeichert, fehler im Code?

    Hallo,

    ich habe mein Gästebuch ein wenig umgebaut, d.h. ein paar Felder (reine Textfelder) hinzugefügt. Die DB habe ich dementsprechend angepasst. Nach dem Speichern bekomme ich keine Fehlermeldung und auch die generierte Mail wird erfolgreich gesendet. Doch in der Datenbank werden nicht alle Daten aus den Feldern gespeichert, sondern nur die Daten aus den Feldern, die vor meinem Umbau auch schon vorhanden waren (nämlich gbook_title, gbook_autor und gbook_text)...Hinzugefügt von mir: gbook_text1 - gbook_text5

    Untenstehend der Code. Evtl. ein wenig undurchsichtig, da andere Fuktionen dabei sind (email, userid), aber ich wollte nur mal wissen, ob dort ein definitiver Fehler zu finden ist...

    PHP-Code:
    <?php
    if ($config['gbook_eod']==1) {
     
    $error=0;
     if (isset(
    $_REQUEST['action'])) $ACTION=$_REQUEST['action'];
     else 
    $ACTION='view';

     if (
    $ACTION==$_POST['save'] || $ACTION==$_POST['preview']) {
      
    $floodcontrol=time() - ($config['gbook_floodctrl']*60);
      
    $infocount=$DB->fetch_array($DB->query("SELECT COUNT(*) 
    FROM "
    .$db_tab['gbook']." WHERE gbook_userid='".$USER['id']."' && 
    gbook_time>'"
    .$floodcontrol."' LIMIT 1"));

     if (
    $infocount[0]>0$error=3;
      elseif (!
    checkusername($_POST['gbook_autor'],1)) $error=4;
      elseif ((
    $_POST['gbook_notify']==|| $_POST['gbook_email']!='') && !
    emailcheck($_POST['gbook_email'],1)) $error=5;
      else {
       if (
    $ACTION==$_POST['save']) {


        if (
    $DB->query("INSERT INTO ".$db_tab['gbook']." (gbook_time,
     gbook_autor, gbook_title, gbook_email, gbook_check, gbook_text1, 
    gbook_text2, gbook_text3, gbook_text4, gbook_text5, gbook_text, 
    gbook_userid, gbook_notify) VALUES ('"
    .time()."','".$_POST
    ['gbook_autor']."','".addslashes($_POST['gbook_title'])."','".$_POST
    ['gbook_email']."','".$_POST['gbook_check']."','".$_POST
    ['gbook_text1']."','".$_POST['gbook_text2']."','".$_POST
    ['gbook_text3']."','".$_POST['gbook_text4']."','".$_POST
    ['gbook_text5']."','".$_POST['gbook_text']."','".$USER['id']."','".$_POST
    ['gbook_notify']."')")) {

             
    $gbid=$DB->insert_id();
             
    $autor=$_POST['gbook_autor'];
    //jetzt kommt die generierte Mail
         
    $mail_title=$config['site_name'].' - '.$lang['new_gbentry'].': '.$_POST
    ['gbook_title'];
         eval (
    "\$mail_text= \"".getTemplate
    ("guestbook/signgb_mail_notify")."\";");

             
    notifymail('gbook',$mail_title,$mail_text);
    //jetzt kommt die generierte IM
         
    $im_title=$lang['new_gbentry'].': '.$_POST['gbook_title'];
         eval (
    "\$im_text= \"".getTemplate("guestbook/signgb_im_notify")."\";");
             
    notifyim('gbook',$im_title,$im_text);
             
    header("location: include.php?event=7&bimondoSID=".session_id());
     exit();
             }
            
    $error=6;
            }
            
    //jetzt kommt die Preview
       
    elseif ($ACTION==$_POST['preview']) {

        
    $counter=$DB->fetch_array($DB->query("SELECT COUNT(*) 
    FROM "
    .$db_tab['gbook'].""));
            
    $gbook_number=$counter[0]+1;
    //hier wird festgelegt, ob die Email angeziegt wird
        
    if ($_POST['gbook_check']==&& $_POST['gbook_email']!='') {
         
    $userinfo['user_email']=$gbook_email;
             eval (
    "\$gbook_email= \"".getTemplate("member_email_iconlink")."\";");
         }
        else 
    $gbook_email=' ';




        
    $gbook_title=htmlentities($_POST['gbook_title']);
     
    $gbook_text=htmlentities($_POST['gbook_text']);
    $gbook_text1=htmlentities($_POST['gbook_text1']);
    $gbook_text2=htmlentities($_POST['gbook_text2']);
    $gbook_text3=htmlentities($_POST['gbook_text3']);
    $gbook_text4=htmlentities($_POST['gbook_text4']);
    $gbook_text5=htmlentities($_POST['gbook_text5']);
        
    $gbook_time=formattime();

        eval (
    "\$site_body.= \"".getTemplate("guestbook/signgb_preview")."\";");
        }
       }
      }
     if (
    $error>0) eval ("\$sign_message= \"".getTemplate
    ("guestbook/signgb_error".$error."")."\";");

     else eval (
    "\$sign_message= \"".getTemplate("guestbook/signgb_message")."\";");

     if (
    $_POST['gbook_autor']!=''$gbook_autor=$_POST['gbook_autor'];
     else 
    $gbook_autor=$USER['nick'];

     if (
    $_POST['gbook_email']!=''$gbook_email=$_POST['gbook_email'];
     else 
    $gbook_email=$USER['email'];

     if (
    $_POST['gbook_check']==1$check1="checked";
     elseif (
    $ACTION=='view'$check1="checked";

     if (
    $config['gbook_commenteod']==1) {
      if (
    $_POST['gbook_notify']==1$check2="checked";
      eval (
    "\$sign_comment= \"".getTemplate("guestbook/signgb_comment")."\";");
      }


    if (
    trim($_POST['gbook_title'])!=''$gbook_title=htmlentities($_POST
    ['gbook_title']);
    if (
    trim($_POST['gbook_text1'])!=''$gbook_text1=htmlentities($_POST
    ['gbook_text1']);
    if (
    trim($_POST['gbook_text2'])!=''$gbook_text2=htmlentities($_POST
    ['gbook_text2']);
    if (
    trim($_POST['gbook_text3'])!=''$gbook_text3=htmlentities($_POST
    ['gbook_text3']);
    if (
    trim($_POST['gbook_text4'])!=''$gbook_text4=htmlentities($_POST
    ['gbook_text4']);
    if (
    trim($_POST['gbook_text5'])!=''$gbook_text5=htmlentities($_POST
    ['gbook_text5']);
    if (
    trim($_POST['gbook_text'])!=''$gbook_text=htmlentities($_POST
    ['gbook_text']);

     unset(
    $sign_format);
     if (
    $config['gbook_ubb']==1) eval ("\$sign_format= \"".getTemplate
    ("format_text")."\";");
     if (
    $config['gbook_smilies']==1)  {
      
    $smilies=new smilies();
      
    $sign_format.=$smilies->getSmilies("1");
      }
     if (
    $sign_format) eval ("\$sign_format= \"".getTemplate
    ("format_table")."\";");

     eval (
    "\$site_body.= \"".getTemplate("guestbook/signgb")."\";");
     }
    else {
    $event=23; include ("admin/config/event.php");}
    ?>
    Gruß

    bistar
    Zuletzt geändert von bistar; 24.03.2005, 10:55.

  • #2
    Heißen die Felder denn auch richtig? Was sagt mysql_error()?

    Übrigens: NIE NIE NIE $_POST u.ä. irgendwas direkt in die DB einfügen....!!! IMMER escapen..!
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      Hallo,

      ich bekomme ja keine Fehlermeldung! Nach dem Speichern erhalte ich die Bestätigung, dass die Daten erfolgreich eingetragen wurden und ebenso die Email mit "Ein neuer Eintrag in die Liste".
      Wenn ich dann auf die Übersicht des Gäsebuches gehe (viewgb.php), dann erscheinen die Einträge vom Autor, Titel und gbook_text aber halt nicht die anderen...sie bleiben leer und die DB-Tabelle ebenso.

      $_POST war ja schon im Ursprungsscript definiert, deswegen habe ich halt "meine Zusätze" ebenfalls so gelegt...

      hier ein Screen der Übersicht:

      klick

      wobei meine Zusätze:
      Telefon=gbook_text1
      Kennzeichen=gbook_text2
      Auftrag=gbook_text3
      Terminam=gbook_text4
      informiert=gbook_text5

      bistar
      Zuletzt geändert von bistar; 24.03.2005, 11:12.

      Kommentar


      • #4
        http://www.php.net/mysql_error

        Kommentar


        • #5
          *verwirrt*


          ...es bleibt dabei...keine Fehlermeldung

          Kommentar


          • #6
            Hallo,

            nach (fast) tagelanger Suche im php-Code, habe ich endlich das Maleur gefunden...

            Der Fehler lag im Template:

            Code:
            <input type="text" size="30" [B]name="gbook_text_a" [/B]value="$gbook_text_a".....
            ...ich hatte vergessen name="" der Variablen anzupassen, deswegen wurden die Inhalte aus den betreffenden Textfeldern nicht gespeichert, und deswegen auch keine Fehlermeldung.

            Danke an diejenigen, die mir geholfen haben...


            bistar

            Kommentar

            Lädt...
            X