Всем привет!Я работаю с joomla.Делаю добавление капчи в отзывы.Капчу сделал,но проверка введенного кода не работает.Данные не передаются.Как правильно передавать данные тут,и вообще как лучше сделать проверку?
форма:
PHP код:
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' ); ?>
<h4><?php echo $VM_LANG->_('PHPSHOP_WRITE_REVIEW') ?></h4>
<br /><?php echo $VM_LANG->_('PHPSHOP_REVIEW_RATE') ?>
<form method="post" action="<?php echo URL ?>index.php" name="reviewForm" id="reviewform">
<table cellpadding="5" summary="<?php echo $VM_LANG->_('PHPSHOP_REVIEW_RATE') ?>">
...
//лишнее вырезал
...
<?php
if( $auth['user_id'] == 0 ) {
$captok = '<strong>Введите контрольное число: </strong>
<table width="400"><tr><td width="5" align="left" valign="middle" style="height:50px">
<img src="captcha/pz.php" alt="'.JText::_('Captcha Image').'" id="phocacaptcha" /></td>
<td width="50" align="left" valign="middle"><input type="text" id="pgbcaptcha" name="pz_capt" size="4" maxlength="4" class="pgbinput" /></td>
<td align="center" width="50" valign="middle"><a href="javascript:reloadCaptcha();" title="'. JText::_('Reload Image').'" >'
. JHTML::_( 'image.site', 'components/com_phocaguestbook/assets/images/icon-reload.gif', '', '','',JText::_('Reload Image')).'</a></td></tr></table>';
}
else
{
$captok = '';
}
?>
<textarea title="<?php echo $review_comment ?>" class="inputbox" id="comment" onblur="refresh_counter();" onfocus="refresh_counter();" onkeypress="refresh_counter();" name="comment" rows="10" cols="55"></textarea>
<br/><?php echo $captok; ?>
<input class="button" type="submit" onclick="return( check_reviewform());" name="submit_review" title="<?php echo $VM_LANG->_('PHPSHOP_REVIEW_SUBMIT') ?>" value="<?php echo $VM_LANG->_('PHPSHOP_REVIEW_SUBMIT') ?>" />
<div align="right"><?php echo $VM_LANG->_('PHPSHOP_REVIEW_COUNT') ?>
<input type="text" value="0" size="4" class="inputbox" name="counter" maxlength="4" readonly="readonly" />
</div>
<input type="hidden" name="product_id" value="<?php echo $product_id ?>" />
<input type="hidden" name="option" value="<?php echo $option ?>" />
<input type="hidden" name="page" value="<?php echo $page ?>" />
<input type="hidden" name="category_id" value="<?php echo @intval($_REQUEST['category_id']) ?>" />
<input type="hidden" name="Itemid" value="<?php echo @$_REQUEST['Itemid'] ?>" />
<input type="hidden" name="func" value="addReview" />
<input type="hidden" name="pz_capt" value="<?php echo $pz_capt ?>" />
</form>
<?php
?>
проверка данных и запись в бд:
PHP код:
function process_review( &$d ) {
global $db, $auth, $perm, $VM_LANG, $vmLogger, $mosConfig_offset;
$d["comment"] = trim($d["comment"]);
if( strlen( $d["comment"] ) < VM_REVIEWS_MINIMUM_COMMENT_LENGTH ) {
$vmLogger->err( sprintf( $VM_LANG->_('PHPSHOP_REVIEW_ERR_COMMENT1',false), VM_REVIEWS_MINIMUM_COMMENT_LENGTH ));
return true;
}
if( strlen ( $d["comment"] ) > VM_REVIEWS_MAXIMUM_COMMENT_LENGTH ) {
$vmLogger->err( sprintf( $VM_LANG->_('PHPSHOP_REVIEW_ERR_COMMENT2',false), VM_REVIEWS_MAXIMUM_COMMENT_LENGTH ));
return true;
}
if( !isset( $d["user_rating"] ) || intval( $d["user_rating"] ) < 0 || intval( $d["user_rating"] ) > 5) {
$vmLogger->err($VM_LANG->_('PHPSHOP_REVIEW_ERR_RATE',false));
return true;
}
if( !$perm->check('admin,storeadmin')) {
$userid = $auth['user_id'];
} elseif(!$perm->check('demo'))
{
$userid = 0;
} else
{
$userid = vmRequest::getInt('userid', $auth['user_id']);
}
$comment= nl2br(htmlspecialchars(vmGet($d, 'comment' )));
$published = VM_REVIEWS_AUTOPUBLISH ? 'Y' : 'N';
$time = time() + $mosConfig_offset*60*60;
$fields = array('product_id' => $d['product_id'],
'userid' => $userid,
'comment' => $comment,
'user_rating' => vmRequest::getInt('user_rating'),
'published' => $published,
'time' => $time
);
$db->buildQuery('INSERT', '#__{vm}_product_reviews', $fields );
$db->query();
$this->process_vote( $d );
$vmLogger->info($VM_LANG->_('PHPSHOP_REVIEW_THANKYOU',false));
return true;
}