Jump to content

raamay

New Members
  • Posts

    3
  • Joined

  • Last visited

Everything posted by raamay

  1. i have tried to use echo $form->num_errors; $form->setError("name", "Enter name"); echo $form->error("name"); inside the class_exists() and i get the "0" and "Enter name" as the output which means the class is working before it is used inside the model class. i tried the else statement also but it doesn't get executed. class_exists() returns true.
  2. hello, i have a Form Class as below: <?php defined( '_JEXEC' ) or die( 'Restricted access' ); require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' ); require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' ); require_once ( JPATH_BASE .DS.'configuration.php' ); $mainframe =& JFactory::getApplication('site'); $mainframe->initialise(); class Form { var $values = array(); var $errors = array(); var $num_errors; function Form(){ if(isset($_SESSION['value_array']) && isset($_SESSION['error_array'])){ $this->values = $_SESSION['value_array']; $this->errors = $_SESSION['error_array']; $this->num_errors = count($this->errors); unset($_SESSION['value_array']); unset($_SESSION['error_array']); } else{ $this->num_errors = 0; } } function setValue($field, $value){ $this->values[$field] = $value; } function setError($field, $errmsg){ $this->errors[$field] = $errmsg; $this->num_errors = count($this->errors); } function value($field){ if(array_key_exists($field,$this->values)){ return stripslashes($this->values[$field]); }else{ return ""; } } function error($field){ if(array_key_exists($field,$this->errors)){ return "<font size=\"1\" color=\"#ff0000\">".$this->errors[$field]."</font>"; }else{ return ""; } function getErrorArray(){ return $this->errors; } } } Now i am trying to use it in a joomla model for server-side validation. I have included and instantiated the class as below: <?php defined( '_JEXEC' ) or die( 'Restricted access' ); JLoader::register('Form', dirname(__FILE__) . DS .'form.php'); include_once (JPATH_COMPONENT.DS.'models'.DS.'form.php'); if (class_exists('Form')) { $form = new Form(); } jimport('joomla.application.component.model'); Class JobsModelJobs extends JModel { . . . . function validate(){ global $form; $name = JRequest::getVar('name', 'POST'); $email = JRequest::getVar('email', 'POST'); $field = "name"; if(!$name || strlen($name = trim($name)) == 0){ $form->setError($field, "Please enter your name!"); } $_SESSION['value_array'] = JRequest::get( 'POST' ); $_SESSION['error_array'] = $form->getErrorArray(); } } After this, I have tried to invoke the function setError() and getErrorArray() of the Form class in validate() function of the model but i get the error "Fatal error: Call to a member function setError() on a non-object in". Can anybody tell me where i have gone wrong or what i am missing? The issue is relevant to this post http://forums.phpfreaks.com/topic/175054-php-object-error-problem/. The only diffrerence is that i am not using session class and relying on joomla.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.