的Controller.php這樣的代碼,我試圖通過在Controller.php這樣我在做什麼錯的Joomla 1.5
下面使用會話ID驗證的驗證碼是我試圖保存會話驗證碼(通過修改控制的代碼。 PHP) - 但它不工作 - 我在做什麼錯在此代碼PL建議在提交
它顯示服務器錯誤,我已經提到的原代碼(驗證碼前)和修改後的代碼(驗證碼後)
原始代碼(在Controller.php的Captcha會話之前)
function register_save()
{
global $mainframe;
// Check for request forgeries
JRequest::checkToken() or jexit('Invalid Token');
// Get required system objects
$user = clone(JFactory::getUser());
$pathway =& $mainframe->getPathway();
$config =& JFactory::getConfig();
$authorize =& JFactory::getACL();
$document =& JFactory::getDocument();
// If user registration is not allowed, show 403 not authorized.
$usersConfig = &JComponentHelper::getParams('com_users');
if ($usersConfig->get('allowUserRegistration') == '0') {
JError::raiseError(403, JText::_('Access Forbidden'));
return;
}
// Initialize new usertype setting
$newUsertype = $usersConfig->get('new_usertype');
if (!$newUsertype) {
$newUsertype = 'Registered';
}
// Bind the post array to the user object
if (!$user->bind(JRequest::get('post'), 'usertype')) {
JError::raiseError(500, $user->getError());
}
// Set some initial user values
$user->set('id', 0);
$user->set('usertype', $newUsertype);
$user->set('gid', $authorize->get_group_id('', $newUsertype, 'ARO'));
$date =& JFactory::getDate();
$user->set('registerDate', $date->toMySQL());
// If user activation is turned on, we need to set the activation information
$useractivation = $usersConfig->get('useractivation');
if ($useractivation == '1')
{
jimport('joomla.user.helper');
$user->set('activation', JUtility::getHash(JUserHelper::genRandomPassword()));
$user->set('block', '1');
}
// If there was an error with registration, set the message and display form
if (!$user->save())
{
JError::raiseWarning('', JText::_($user->getError()));
$this->register();
return false;
}
// Send registration confirmation mail
$password = JRequest::getString('password', '', 'post', JREQUEST_ALLOWRAW);
$password = preg_replace('/[\x00-\x1F\x7F]/', '', $password); //Disallow control chars in the email
UserController::_sendMail($user, $password);
// Everything went fine, set relevant message depending upon user activation state and display message
if ($useractivation == 1) {
$message = JText::_('REG_COMPLETE_ACTIVATE');
} else {
$message = JText::_('REG_COMPLETE');
}
$this->setRedirect('https://www.2checkout.com/checkout/spurchase?sid=1689498&product_id=2&quantity=1', $message);
}
最後修改過的代碼(按照修改現在在Controller.php這樣建議的)
function register_save()
{
global $mainframe;
// Check for request forgeries
JRequest::checkToken() or jexit('Invalid Token');
session_start();
$post = JRequest::get('post');
if(($_SESSION['security_code'] == $post['security_code']) && (!empty($_SESSION['security_code'])))
{
$newUsertype = $usersConfig->get('new_usertype');
if (!$newUsertype)
{
$newUsertype = 'Registered';
}
unset($_SESSION['security_code']);
}
if($_SESSION['security_code'] != $post['security_code'] || $post['security_code']=="")
{
JError::raiseWarning('', JText::_($user->getError()));
$this->register();
return false;
}
// Get required system objects
$user = clone(JFactory::getUser());
$pathway =& $mainframe->getPathway();
$config =& JFactory::getConfig();
$authorize =& JFactory::getACL();
$document =& JFactory::getDocument();
// If user registration is not allowed, show 403 not authorized.
$usersConfig = &JComponentHelper::getParams('com_users');
if ($usersConfig->get('allowUserRegistration') == '0') {
JError::raiseError(403, JText::_('Access Forbidden'));
return;
}
// Initialize new usertype setting
$newUsertype = $usersConfig->get('new_usertype');
if (!$newUsertype) {
$newUsertype = 'Registered';
}
// Set some initial user values
$user->set('id', 0);
$user->set('usertype', $newUsertype);
$user->set('gid', $authorize->get_group_id('', $newUsertype, 'ARO'));
$date =& JFactory::getDate();
$user->set('registerDate', $date->toMySQL());
// If user activation is turned on, we need to set the activation information
$useractivation = $usersConfig->get('useractivation');
if ($useractivation == '1')
{
jimport('joomla.user.helper');
$user->set('activation', JUtility::getHash(JUserHelper::genRandomPassword()));
$user->set('block', '1');
}
// If there was an error with registration, set the message and display form
if (!$user->save())
{
JError::raiseWarning('', JText::_($user->getError()));
$this->register();
return false;
}
// Send registration confirmation mail
$password = JRequest::getString('password', '', 'post', JREQUEST_ALLOWRAW);
$password = preg_replace('/[\x00-\x1F\x7F]/', '', $password); //Disallow control chars in the email
UserController::_sendMail($user, $password);
// Everything went fine, set relevant message depending upon user activation state and display message
if ($useractivation == 1) {
$message = JText::_('REG_COMPLETE_ACTIVATE');
} else {
$message = JText::_('REG_COMPLETE');
}
$this->setRedirect('https://www.2checkout.com/checkout/spurchase?sid=1689498&product_id=2&quantity=1', $message);
}
你會得到什麼錯誤? – JvdBerg