2010-02-02 3 views
1

Это ошибка я получаю:PHP PEAR Validate пакет - Фатальная ошибка: Class 'Validate' не найден

Fatal error: Class 'Validate' not found in C:\xampp\htdocs\final_project\validate.php on line 5 

А вот мой PHP код:

<?php 
require_once 'Validate.php'; 
foreach($_POST as $name => $value) 
{ 
$valid = Validate::string($value); 
} 
?> 

Я не понимаю что мне не хватает. Я установил --alldeps для пакета validate, а PEAR include path также верен. Validate_CA не дает мне никаких ошибок, но он не проверяет правильность.

+0

Попробуйте груши установить Validate-0.8.3 и отправьте нам грушу включить путь – streetparade

ответ

2

PHP анализирует include_path в порядке очередности. Это означает, что когда относительный путь передается в require(), include(), fopen(), file(), readfile() или file_get_contents(), PHP начнет искать в первом каталоге. Если файл найден, он включает его. Если нет, он будет продолжен до следующего и повторит процесс.

Рассмотрим следующий включать путь:

include_path = ".:/php/includes:/php/pear" 

и следующий скрипт:

<?php 
require('MyFile.php'); 

PHP будет искать MyFile.php в следующем порядке:

  • ./MyFile.php (текущий каталог)
  • /php/includes/MyFile.php
  • /php/pear/MyFile.php

Причина, почему вы не можете загрузить Validate.php это у вас уже есть файл с именем validate.php (помните, пути не чувствительны к регистру на Windows, но в UNIX) в текущем каталог. Поэтому PHP включает в себя ваш файл вместо файла, соответствующего PEAR::Validate, так как ваш найден до PEAR в порядке приоритета include_path.

Просто переименуйте свой файл на что-то еще, кроме validate.php, чтобы исправить вашу проблему. Если он все еще не работает, попробуйте повторить возвращаемое значение get_include_path(), чтобы убедиться, что оно действительно установлено правильно.

Смежные вопросы