Когда я пытаюсь отправить форму на моем сайте, я получаю следующее сообщение об ошибке:Почему моя проверка PHP-формы не работает?
Фатальная ошибка: Не удается получить доступ к пустой недвижимости в функции/form_validation.php на линии 15
Код для проверки формы является:
class Validation {
var $success;
var $post_data;
var $errors;
var $delimiter;
function Validation($HTTP_POST_DATA) {
$this->success = true;
$this->errors = false;
$this->$post_data = $HTTP_POST_DATA;
$this->delimiter = "|";
while(list ($key, $val) = each ($this->$post_data)) {
$this->{$key} = $val;
}
reset($this->$post_data);
while(list ($key, $val) = each ($this->$post_data)) {
if(method_exists($this, $key)) {
$cmd = "\$this->".$key."();";
eval($cmd);
}
}
}
код со страницы формы является:
include_once($APP_ROOT . "functions/index.php");
include_once($APP_ROOT . "functions/form_validation.php");
$CONTINUE = TRUE;
$valid = new Validation($_POST);
if($CONTINUE = $valid->success) {
Этот код используется для хорошо работать, прежде чем мы повышен до PHP5. Любая идея, что мне нужно изменить, чтобы заставить ее работать снова?
Благодаря
Поскольку ваши строки не пронумерованы здесь, и мы не знаем, если есть больше кода вокруг этого, вы можете указать, какие из этих линий бросать ошибка? – Renan
Вы используете PHP 4 ?. Если нет, прочитайте документацию http://php.net/manual/en/language.oop5.php. Вам больше не нужно использовать 'var'. Вы можете использовать 'public function __construct() {}' как ваш конструктор. –
Кроме того, в качестве примечания стороны, нет необходимости использовать eval. Вместо: '$ cmd =" \ $ this -> ". $ Key."(); "; eval ($ cmd); ' Просто выполните:' $ this -> $ key() ' – Mark