- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Помогите создать наблюдателя
Есть форма имя, пароль. Наблюдатель должен отследить правильные и не правильные вводы и записать результат в файл
Вот код который я составил
interface Observer{
public function notify( Observable $objSource, $objArguments );
}
interface Observable{
public function addObserver(Observer $objObserver, $strEventType );
public function fireEvent( $strEventType );
}
class FormValidator extends DB implements Observable{
const EVENT_FORM_VALID = 1;
const EVENT_FORM_INVALID = 0;
protected $strName;
protected $arrObserver= array() ;
public function setEmailAddress($strNam) {
$this->strNam = $strNam;
}
public function getEmailAddress() {
return $this->strNam;
}
public function validate() {
if(isset($_POST['name']) && $_POST['name']!='' && isset($_POST['pass']) && $_POST['pass']!=''){
$strEmailAddress=mysql_escape_string(stripslashes(trim(strip_tags($_POST['name']))));;
$pass=mysql_escape_string(stripslashes(trim(strip_tags($_POST['pass']))));;
$this->strNam = $strEmailAddress;
$conn=self::getInstance()->bd();
$result="SELECT name FROM user where name='$strEmailAddress' and pass='$pass'";
$snm=$conn->query($result);
$myrow=$snm->fetch(PDO::FETCH_ASSOC);
if( $myrow{name}==$this->strNam ){
$this->fireEvent( FormValidator::EVENT_FORM_VALID );
} else{
$this->fireEvent( FormValidator::EVENT_FORM_INVALID );
}
}else{echo'Введите логин и пароль';}
}
public function addObserver( Observer $objObserver, $strEventType ) {
$this->arrObserver[] = $objObserver;
}
public function fireEvent( $strEventType ) {
foreach($this->arrObserver as $obj){
$obj->notify($this);
}
}
}
$objValidator = new FormValidator();
$objValidator->validate();
---------- Добавлено 13.05.2012 в 13:32 ----------
Приведите хотя бы понятный пример, что бы я мог разобраться
Ну так надо реализовать класс наблюдателя для начала :)
Потом инстанцировать его и добавить в FormValidator. И еще в fireEvent вы передаете $strEventType, который никак не используете. И наблюдатель не узнает, какой у парня был конец :)
---------- Добавлено 13.05.2012 в 23:42 ----------
и раз уж используете PDO, зачем такой говнокод городить?
---------- Добавлено 13.05.2012 в 23:48 ----------
и пр.
это эквивалентно empty($_POST['name']).
---------- Добавлено 13.05.2012 в 23:51 ----------
И вы не прислушались к совету /ru/forum/comment/10391324
и нагородили ненужное наследование.