MyXoops Forum

Aw:: Wie kann das Captcha aus dem Frameworks von Xoops 2.3 in alte Module eingebaut werden? [Die Installation und Administration von XOOPS 2.3] - myXOOPS German Support

migoe

"myXOOPs"-Könner
Gepostet am:12.05.2009
migoe
migoe Offline (Show more)
"myXOOPs"-Könner
Posts: 527
Since: 02.11.2002
#7

Aw:: Wie kann das Captcha aus dem Frameworks von Xoops 2.3 in alte Module eingebaut werden?

Lieber Alfred,

jetzt klappt das wunderbar. Vielen Dank für die Hilfe, ich bin mir sicher, auch andere werden davon profitieren und ich werde auch andere Bereiche meiner Seite auf diese Art und weise schützen können.

migoe
Wenn Du denkst Du denkst, dann denkst Du nur, Du denkst
--- www.liedermacher-forum.de ---...

alfred

Administrator
Gepostet am:12.05.2009
alfred
alfred Offline (Show more)
Administrator
Posts: 7610
Since: 06.12.2004
#6

Aw:: Wie kann das Captcha aus dem Frameworks von Xoops 2.3 in alte Module eingebaut werden?

aja, hatte ich doch richtig vermutet
Die Abfrage muss natürlich vor dem Eintragen sein und sollte das ganze dann auch abbrechen

<?php
include '../../mainfile.php';
include_once 
'class/perm.php';
$extcalPerm ExtcalPerm::getHandler();

if(
count($extcalPerm->getAuthorizedCat($xoopsUser'extcal_cat_submit')) > 0) {
    include 
XOOPS_ROOT_PATH.'/header.php';
    
$xoopsTpl->assign('xoops_pagetitle'_MD_EXTCAL_SUBMIT_EVENT);
    include 
XOOPS_ROOT_PATH.'/class/xoopsformloader.php';
    if(!isset(
$_POST['form_submit'])) {
        
$eventHandler xoops_getmodulehandler('event''extcal');
        
$form $eventHandler->getSubmitFormDisplay($xoopsUser'submit.php');
        
$form->display();
    } else {
        if (!
$GLOBALS['xoopsSecurity']->check()) {
            
redirect_header('index.php'3_NOPERM."<br />".implode('<br />'$GLOBALS['xoopsSecurity']->getErrors()));
            exit;
        }
        
xoops_load("captcha");
        
$xoopsCaptcha XoopsCaptcha::getInstance();
        if (! 
$xoopsCaptcha->verify() ) {
          echo 
$xoopsCaptcha->getMessage();
          
$eventHandler xoops_getmodulehandler('event''extcal');
          
$form $eventHandler->getSubmitFormDisplay($xoopsUser'submit.php');
          
$form->display();
          include(
XOOPS_ROOT_PATH."/footer.php");
          exit();
        }
        
$notification_handler =& xoops_gethandler('notification');
        
$catHandler xoops_getmodulehandler('cat''extcal');
        
$eventHandler xoops_getmodulehandler('event''extcal');
        
$autoApproveCat $extcalPerm->getAuthorizedCat($xoopsUser'extcal_cat_autoapprove');
        if(
array_search($_POST['cat_id'], $autoApproveCat) === false) {
            
$approved 0;
            
$notifyEvent 'new_event_pending';
        } else {
            
$approved 1;
            
$notifyEvent 'new_event';
        }
        if(!
preg_match('`[0-9]{4}-[01][0-9]-[0123][0-9]`'$_POST['event_start']['date'])) {
            
redirect_header('submit.php'3_MD_EXTCAL_WRONG_DATE_FORMAT."<br />".implode('<br />'$GLOBALS['xoopsSecurity']->getErrors()));
            exit;
        }
    list(
$year,$month,$day) = explode("-",$_POST['event_start']['date']);
        
$start mktime(0,0,0,$month,$day,$year) + $_POST['event_start']['time'];
        if(
$_POST['event_end_ok'] == 1) {
            if(
preg_match('`[0-9]{4}-[01][0-9]-[0123][0-9]`'$_POST['event_end']['date'])) {
                list(
$year,$month,$day) = explode("-",$_POST['event_end']['date']);
                
$end mktime(0,0,0,$month,$day,$year) + $_POST['event_end']['time'];
            } else {
                
$end $start;
            }
        } else {
            
$end $start;
        }
        
$submitter = ($xoopsUser) ? $xoopsUser->getVar('uid') : 0;
        
$dohtml = ($xoopsModuleConfig['dohtml_type'] == 2) ? 0;
        
$info = array(
            
'event_title'=>$_POST['event_title'],
            
'cat_id'=>$_POST['cat_id'],
            
'event_desc'=>$_POST['event_desc'],
            
'event_contact'=>$_POST['event_contact'],
            
'event_url'=>$_POST['event_url'],
            
'event_email'=>$_POST['event_email'],
            
'event_address'=>$_POST['event_address'],
            
'event_approved'=>$approved,
            
'event_start'=>$start,
            
'event_end'=>$end,
            
'event_submitter'=>$submitter,
            
'event_submitdate'=>time(),
            
'dohtml'=>$dohtml
        
);

        
$eventHandler->createEvent($info);
        
$notification_handler->triggerEvent('global'0$notifyEvent, array('EVENT_TITLE'=>$_POST['event_title']));
        if(
$approved == 1) {
            
$cat $catHandler->getCat($_POST['cat_id'], $xoopsUser'all');
            
$notification_handler->triggerEvent('cat'$_POST['cat_id'], 'new_event_cat', array('EVENT_TITLE'=>$_POST['event_title'], 'CAT_NAME'=>$cat->getVar('cat_name')));
        }
        
redirect_header("../../index.php"3_MD_EXTCAL_EVENT_ADDEDfalse);
    }
    include(
XOOPS_ROOT_PATH."/footer.php");
} else {
    
redirect_header("index.php"3_NOPERMfalse);
}


?>

Advertisement

Gepostet am:0
Advertisement (Show more)
Posts: 0
Since: 0


Hier könnten Sie Ihre Anzeige aufgeben!
Bitte kontaktieren Sie uns, um mehr darüber zu erfahren.

migoe

"myXOOPs"-Könner
Gepostet am:12.05.2009
migoe
migoe Offline (Show more)
"myXOOPs"-Könner
Posts: 527
Since: 02.11.2002
#5

Aw:: Wie kann das Captcha aus dem Frameworks von Xoops 2.3 in alte Module eingebaut werden?

Hallo Alfred,

nichts leichter als das

include '../../mainfile.php';
include_once 
'class/perm.php';
$extcalPerm ExtcalPerm::getHandler();

if(
count($extcalPerm->getAuthorizedCat($xoopsUser'extcal_cat_submit')) > 0) {
  include 
XOOPS_ROOT_PATH.'/header.php';
  
$xoopsTpl->assign('xoops_pagetitle'_MD_EXTCAL_SUBMIT_EVENT);
  include 
XOOPS_ROOT_PATH.'/class/xoopsformloader.php';
 if(!isset(
$_POST['form_submit'])) {
   
$eventHandler xoops_getmodulehandler('event''extcal');
    
$form $eventHandler->getSubmitFormDisplay($xoopsUser'submit.php');
    
$form->display();
 } else {
    if (!
$GLOBALS['xoopsSecurity']->check()) {
      
redirect_header('index.php'3_NOPERM."<br />".implode('<br />'$GLOBALS['xoopsSecurity']->getErrors()));
      exit;
   }
   
$notification_handler =& xoops_gethandler('notification');
    
$catHandler xoops_getmodulehandler('cat''extcal');
    
$eventHandler xoops_getmodulehandler('event''extcal');
    
$autoApproveCat $extcalPerm->getAuthorizedCat($xoopsUser'extcal_cat_autoapprove');
    if(
array_search($_POST['cat_id'], $autoApproveCat) === false) {
     
$approved 0;
      
$notifyEvent 'new_event_pending';
   } else {
      
$approved 1;
      
$notifyEvent 'new_event';
   }
   if(!
preg_match('`[0-9]{4}-[01][0-9]-[0123][0-9]`'$_POST['event_start']['date'])) {
      
redirect_header('submit.php'3_MD_EXTCAL_WRONG_DATE_FORMAT."<br />".implode('<br />'$GLOBALS['xoopsSecurity']->getErrors()));
      exit;
   }
    list(
$year,$month,$day) = explode("-",$_POST['event_start']['date']);
    
$start mktime(0,0,0,$month,$day,$year) + $_POST['event_start']['time'];
   if(
$_POST['event_end_ok'] == 1) {
     if(
preg_match('`[0-9]{4}-[01][0-9]-[0123][0-9]`'$_POST['event_end']['date'])) {
       list(
$year,$month,$day) = explode("-",$_POST['event_end']['date']);
       
$end mktime(0,0,0,$month,$day,$year) + $_POST['event_end']['time'];
     } else {
        
$end $start;
      }
   } else {
      
$end $start;
    }
   
$submitter = ($xoopsUser) ? $xoopsUser->getVar('uid') : 0;
    
$dohtml = ($xoopsModuleConfig['dohtml_type'] == 2) ? 0;
   
$info = array(
      
'event_title'=>$_POST['event_title'],
     
'cat_id'=>$_POST['cat_id'],
     
'event_desc'=>$_POST['event_desc'],
     
'event_contact'=>$_POST['event_contact'],
     
'event_url'=>$_POST['event_url'],
     
'event_email'=>$_POST['event_email'],
     
'event_address'=>$_POST['event_address'],
     
'event_approved'=>$approved,
      
'event_start'=>$start,
      
'event_end'=>$end,
      
'event_submitter'=>$submitter,
      
'event_submitdate'=>time(),
     
'dohtml'=>$dohtml
   
);

    
$eventHandler->createEvent($info);
    
$notification_handler->triggerEvent('global'0$notifyEvent, array('EVENT_TITLE'=>$_POST['event_title']));
    if(
$approved == 1) {
      
$cat $catHandler->getCat($_POST['cat_id'], $xoopsUser'all');
      
$notification_handler->triggerEvent('cat'$_POST['cat_id'], 'new_event_cat', array('EVENT_TITLE'=>$_POST['event_title'], 'CAT_NAME'=>$cat->getVar('cat_name')));
   }
   
xoops_load("captcha");
$xoopsCaptcha XoopsCaptcha::getInstance();
if (! 
$xoopsCaptcha->verify() ) {
    
$captcha_error $xoopsCaptcha->getMessage();
    
// Hier wenns falsch ist , Fehlermeldung siehe oben
}
    
redirect_header("../../index.php"3_MD_EXTCAL_EVENT_ADDEDfalse);
 }
 include(
XOOPS_ROOT_PATH."/footer.php");
} else {
 
redirect_header("index.php"3_NOPERMfalse);
}


?>


Ich hab's wohl noch nicht ganz geblickt

migoe
Wenn Du denkst Du denkst, dann denkst Du nur, Du denkst
--- www.liedermacher-forum.de ---...

alfred

Administrator
Gepostet am:11.05.2009
alfred
alfred Offline (Show more)
Administrator
Posts: 7610
Since: 06.12.2004
#4

Aw:: Wie kann das Captcha aus dem Frameworks von Xoops 2.3 in alte Module eingebaut werden?

xoops_load("captcha"); 
$xoopsCaptcha XoopsCaptcha::getInstance(); 
if (! 
$xoopsCaptcha->verify() )
{
     
$captcha_error $xoopsCaptcha->getMessage();
     
// Hier wenns falsch ist , Fehlermeldung siehe oben }


Naja was hast du denn hier noch reingeschrieben, wenn es genauso steht, dann ist mir das klar, weil der Code danach wird ja anstandslos ausgeführt.

poste mal die submit.php oder hänge die hier (als zip) ins Forum mal rein. Dann schau ich mal drüber.

migoe

"myXOOPs"-Könner
Gepostet am:11.05.2009
migoe
migoe Offline (Show more)
"myXOOPs"-Könner
Posts: 527
Since: 02.11.2002
#3

Aw:: Wie kann das Captcha aus dem Frameworks von Xoops 2.3 in alte Module eingebaut werden?

Hallo Alfred,

danke für Deine Anweisungen. Leider funktioniert das Captcha nicht so, wie es soll. Wenn im Feld für den Code nichts eingegeben wird, dann komm die Meldung "Bitte Bestätigungscode eingeben", wenn man dann aber irgendwas eingibt, nimmt der jeden Beitrag an, auch die SPAMs. So sollte das aber nicht sein, oder?! Es sollte doch eigentlich nur die angezeigte Zahlen-Buchstaben-Kombination akzeptiert werden!

Was fehlt da noch? Der Debug-Modus gibt keine Meldung!

Ich habe die erste Zeile

$form->addElement(new XoopsFormCaptcha(), true);


in die Datei /excal/class/event.php unter

function getSubmitFormDisplay($user$action$fct ''$eventId false)


und den Rest in die /excal/submit.php eingetragen. Der Captcha wird wie geschrieben angezeigt, nimmt aber leider alle Eingaben anstandslos an...

migoe
Wenn Du denkst Du denkst, dann denkst Du nur, Du denkst
--- www.liedermacher-forum.de ---...

alfred

Administrator
Gepostet am:26.04.2009
alfred
alfred Offline (Show more)
Administrator
Posts: 7610
Since: 06.12.2004
#2

Aw:: Wie kann das Captcha aus dem Frameworks von Xoops 2.3 in alte Module eingebaut werden?

Einbau:
$form->addElement(new XoopsFormCaptcha(), true);


Abfrage:
xoops_load("captcha");
$xoopsCaptcha XoopsCaptcha::getInstance();
if (! 
$xoopsCaptcha->verify() ) {
    
$captcha_error $xoopsCaptcha->getMessage();
    
// Hier wenns falsch ist , Fehlermeldung siehe oben
}

migoe

"myXOOPs"-Könner
Gepostet am:26.04.2009
migoe
migoe Offline (Show more)
"myXOOPs"-Könner
Posts: 527
Since: 02.11.2002
#1

Wie kann das Captcha aus dem Frameworks von Xoops 2.3 in alte Module eingebaut werden?

Leider steige ich nicht durch, was bei den Modulen geändert werden muß, um auf das xoopseigene Captcha zugreifen zu können. Ich habe auf meiner Seite mit dem Modul ExtCal 1 Probleme mit Spam. Leider kapier ich nicht, wie das Captcha eingebaut werden soll.

Wer hat schon Erfahrung damit und möchte seine Erfahrungen mit mir teilen?

migoe, der sich damit schwer tut
Wenn Du denkst Du denkst, dann denkst Du nur, Du denkst
--- www.liedermacher-forum.de ---...
Diesen Thread durchsuchen:  1 Anonyme Benutzer