ilch Forum » Ilch Clan 1.1 » Module und Modifikationen » GBook Text speichern (modifiziert)

Geschlossen
  1. #1
    User Pic
    seth Mitglied
    Registriert seit
    12.03.2005
    Beiträge
    2.018
    Beitragswertungen
    1 Beitragspunkte
    Hallo zwinker

    Ich habe mein G-Book auf reCaptcha umgestellt.
    Nun ist mir aufgefallen, dass wenn man das Captcha falsch eingibt und zurückmöchte, der Text nicht mehr da ist.
    Ich weiß nicht, ob ich den Fehler eingebaut habe, oder ob es das standard-Verhalten des Skriptes ist. Der Code schaut jedenfalls denach aus, als würde eine Maßnahme dagegen existieren, nur scheint es nicht zu funktionieren.

    Wie bekomme ich hin, dass der Text nicht verschwindet?

    Hier der Code:
    <?php 
    #   Copyright by: Manuel Staechele
    #   Support: www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    
    #reCaptcha
    require_once('recaptchalib.php');
    # Recaptcha Einstellungen
    $publickey = "*ZENSIERT*";
    $privatekey = "*ZENSIERT*";
    
    $title = $allgAr['title'].' :: G&auml;stebuch';
    $hmenu = 'G&auml;stebuch';
    $design = new design ( $title , $hmenu );
    $design->header();
    
    # time sperre in sekunden
    $timeSperre = $allgAr['Gsperre'];
    
    echo "<script>
    var RecaptchaOptions = {
       theme : 'white',
       lang: 'de'   
    };
    </script>";
    
    
    /*
    
      gbook
    	
    	id , name , mail , page , ip , time , txt
    
    */
    
    switch($menu->get(1)) {
    case 1 :
    
    	$tpl = new tpl ( 'gbook.htm' );
    	$ar = array (
        'uname' => $_SESSION['authname'],
        'SMILIES' => getsmilies(),
    		'ANTISPAM' => recaptcha_get_html($publickey), #ReCaptcha
        'TXTL' => $allgAr['Gtxtl']
      );
    	$tpl->set_ar_out($ar,3);
      
      if (!isset($_SESSION['klicktime_gbook'])) { $_SESSION['klicktime_gbook'] = 0; }
      
    break;
    case 2 :
    
      $dppk_time = time();
      
      if (($_SESSION['klicktime_gbook'] + $timeSperre) < $dppk_time
      AND isset($_POST['name'])
      AND isset($_POST['txt'])
      AND trim($_POST['name']) != ""
      AND trim($_POST['txt']) != ""
      AND strlen ($_POST['txt']) <= $allgAr['Gtxtl'] ) {
      
        $resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]);
    
    if (!$resp->is_valid){
      echo "Das reCAPTCHA wurde nicht korrekt eingegeben. Bitte versuchen Sie es erneut.";
           } else {
        
    
        $txt = escape($_POST['txt'], 'textarea');
    	  $name = escape($_POST['name'], 'string');
    	  $mail = escape($_POST['mail'], 'string');
    	  $page = escape($_POST['page'], 'string');
    	
      	db_query("INSERT INTO prefix_gbook VALUES (
          null,
    	    '".$name."',
          '".$mail."',
          '".$page."',
          '".time()."',
          '".getip()."',
          '".$txt."' 
    		)
        ");
    					
        
        $_SESSION['klicktime_gbook'] = $dppk_time;
        wd('index.php?gbook',$lang['insertsuccessful']);
        }
    	} else {
    	  echo '- '.$lang['donotpostsofast'];
    	  echo '<br />- '.sprintf($lang['gbooktexttolong'], $allgAr['Gtxtl']);
    	  echo '<br />- '.$lang['plsfilloutallfields'];
    	}	
      break;
    case 'show' :
      if ($allgAr['gbook_koms_for_inserts'] == 1) {
        $id = escape($menu->get(2), 'integer');
        
        if (isset($_POST['name']) AND isset($_POST['text'])) {
    
    	# ReCaptcha Check
            $resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]);
            if (!$resp->is_valid) {
                echo "Das reCAPTCHA wurde nicht korrekt eingegeben. Bitte versuchen Sie es erneut.";
            } else {       
                 $name = escape($_POST['name'], 'string');
                $text = escape($_POST['text'], 'string');
                db_query("INSERT INTO prefix_koms (name,text,uid,cat) VALUES ('".$name."', '".$text."', ".$id.", 'GBOOK')");
            }
        }
        if ($menu->getA(3) == 'd' AND is_numeric($menu->getE(3)) AND has_right(-7, 'gbook')) {
          $did = escape($menu->getE(3), 'integer');
          db_query("DELETE FROM prefix_koms WHERE uid = ".$id." AND cat = 'GBOOK' AND id = ".$did);
        }
        
        
    
        $r  = db_fetch_assoc(db_query("SELECT time, name, mail, page, txt as text, id FROM prefix_gbook WHERE id = ".$id));
        $r['datum'] = date('d.m.Y', $r['time']);
        if (has_right(-3)) {    #eigen
        if ($r['page'] != '') {
          $r['page'] = get_homepage($r['page']);
          $r['page'] = ' &nbsp; <a href="'.$r['page'].'" target="_blank"><img src="include/images/icons/page.gif" border="0" alt="Homepage '.$lang['from'].' '.$r['name'].'"></a>'; 
    		}
    		if ($r['mail'] != '') { 
    	    $r['mail'] = ' &nbsp; <a href="mailto:'.escape_email_to_show($r['mail']).'"><img src="include/images/icons/mail.gif" border="0" alt="E-Mail '.$lang['from'].' '.$r['name'].'"></a>'; 
    		}
        } else { #eigen
            $r['page'] = ''; #eigen
            $r['mail'] = ''; #eigen
        }#
        $tpl = new tpl ( 'gbook.htm' );
    		$r['ANTISPAM'] = recaptcha_get_html($publickey); # ReCaptcha
        $r['uname'] = $_SESSION['authname'];
        $r['text'] = bbcode($r['text']);
        $tpl->set_ar_out($r, 4);
        $i = 1;
        $erg = db_query("SELECT id, name, text FROM prefix_koms WHERE uid = ".$id." AND cat = 'GBOOK' ORDER BY id DESC");
        $anz = db_num_rows($erg)+1;
        while ($r1 = db_fetch_assoc($erg)) {
          $r1['zahl'] = $anz - $i;
          $r1['text'] = bbcode($r1['text']);
          if (has_right(-7, 'gbook')) { $r1['text'] .= '<a href="index.php?gbook-show-'.$id.'-d'.$r1['id'].'"><img src="include/images/icons/del.gif" alt="'.$lang['delete'].'" border="0" title="'.$lang['delete'].'" /></a>'; }
          $tpl->set_ar_out($r1, 5);
          $i++;
        }
        $tpl->out(6);
      }
      break;
    default :
    
      $limit = $allgAr['gbook_posts_per_site'];  // Limit 
      $page = ( $menu->getA(1) == 'p' ? escape($menu->getE(1), 'integer') : 1 );
      $MPL = db_make_sites ($page , "" , $limit , "?gbook" , 'gbook' );
      $anfang = ($page - 1) * $limit;
      
    	$tpl = new tpl ( 'gbook.htm' );
    	
      $ei1 = @db_query("SELECT COUNT(ID) FROM prefix_gbook"); 
      $ein    = @db_result($ei1,0);
    	
    	$ar = array ('EINTRAGE' => $ein );
    	$tpl->set_ar_out($ar,0);
    	
    	$erg = db_query("SELECT * FROM prefix_gbook ORDER BY time DESC LIMIT ".$anfang.",".$limit) or die (db_error());
    	while ($row = db_fetch_object($erg)) {
    	  
        $page = '';
        $mail = '';
        if (has_right(-3)) { #eigen
       
    		if ($row->page) {
          $row->page = get_homepage($row->page);
          $page = ' &nbsp; <a href="'.$row->page.'" target="_blank"><img src="include/images/icons/page.gif" border="0" alt="Homepage '.$lang['from'].' '.$row->name.'"></a>'; 
    		}
    		if ($row->mail) { 
    	    $mail = ' &nbsp; <a href="mailto:'.escape_email_to_show($row->mail).'"><img src="include/images/icons/mail.gif" border="0" alt="E-Mail '.$lang['from'].' '.$row->name.'"></a>'; 
    		}
        }#
        $koms = '';
        if ($allgAr['gbook_koms_for_inserts'] == 1) {
          $koms = db_result(db_query("SELECT COUNT(*) FROM prefix_koms WHERE uid = ".$row->id." AND cat = 'GBOOK'"),0,0);
          $koms = '<a href="index.php?gbook-show-'.$row->id.'">'.$koms.' '.$lang['comments'].'</a>';
        }
        
        $mytext = $row->txt; #eigen  
    		$ar = array ( 'NAME' => $row->name,
    		                'DATE' => date("d.m.Y",$row->time),
                        'koms' => $koms,
    										'MAIL' => $mail,
    										'ID'   => $row->id,
    										'PAGE' => $page,
    										'TEXT' => BBCode($mytext) # vorher $row-txt
    		  );
    			$tpl->set_ar_out($ar,1);
    	}
    	$tpl->set_out('SITELINK', $MPL, 2 );
    break;
    }
    
    //-----------------------------------------------------------|
    
    $design->footer();
    
    ?>

    Veränderte Zeilen sind markiert.

    Vielen Dank!

    mfg


    Zuletzt modifiziert von seth am 25.05.2009 - 15:09:47
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Module und Modifikationen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten