kode
never knows best
Тред "Накажи меня" или "Найди 10 недочётов"
Возрождаем тред. Только вот большая просьба, давайте без холиваров (типа throw vs trigger_error)
Пожалуй начну:
Возрождаем тред. Только вот большая просьба, давайте без холиваров (типа throw vs trigger_error)
Пожалуй начну:
PHP:
//Smarty, ZF, gettext, самописная DBAL с конструктором запросов
//Данные экранируются на уровне специфичного для драйвера конструктора запросов (pg_escape_string)
//Те PgSQL_SQL extends BaseSQL{ public function safe($string){ return pg_escape_string(DB::driver()->getLink(), $string); }
public function buyAction(){
//Throws exception if there is no such mobile, it means what ZF will show error page (404)
$this->view->phone = $phone = $this->getPhone($this->_getParam("1"));
if(!isset($_POST['buy_phone'])){
return;
}
$errors = array();
$insert = array();
//Checking fullname
if(empty($_POST['buy_fullname'])){
$errors[] = _("Enter your Fullname");
}else{
$insert['fullname'] = $_POST['buy_fullname'];
}
//Checking Contact Phone
if(empty($_POST['buy_phone'])){
$errors[] = _("Enter your contact phone");
}else{
$insert['phone'] = $_POST['buy_phone'];
}
//Optional check
if(!empty($_POST['buy_email'])){
$email_validator = new Zend_Validate_EmailAddress();
if(!$email_validator->isValid($_POST['buy_email'])){
$errors[] = _("Enter valid EMail");
}else{
$insert['email'] = $_POST['buy_email'];
}
}
//Also optional
if(!empty($_POST['buy_comment'])){
$insert['comment'] = $_POST['buy_comment'];
}
if(!empty($errors)){
$this->view->errors = $errors;
return;
}
$insert['mobile'] = $phone->id;
$insert['date'] = DB::SQL_FUNCTION('now()');
$db = Zend_Registry::get('db');
$db->insert('orders',$insert);
//Let's indicate what we succesfuly add their request to database
$this->view->success = 1;
}