Jump to content

Своя форма обратной связи, минуя базу


Recommended Posts

Решил изменить форму обратной связи и добавить свои поля.

В шаблоне добавил нужные инпуты. В FeedBackView.php получился такой код:

if($this->request->method('post') && $this->request->post('feedback'))
{
$feedback->goal = $this->request->post('goal');
$feedback->params = $this->request->post('params');
$feedback->telo = $this->request->post('telo');
$feedback->mtime = $this->request->post('mtime');
$feedback->place = $this->request->post('place');
$feedback->email = $this->request->post('email');
$feedback->phone = $this->request->post('phone');

$this->design->assign('goal', $feedback->goal);
$this->design->assign('params', $feedback->params);
$this->design->assign('telo', $feedback->telo);
$this->design->assign('time', $feedback->mtime);
$this->design->assign('place', $feedback->place);
$this->design->assign('email', $feedback->email);
$this->design->assign('phone', $feedback->phone);

if(empty($feedback->email))
$this->design->assign('error', 'empty_email');
elseif(empty($feedback->phone))
$this->design->assign('error', 'empty_phone');
else
{
$this->design->assign('message_sent', true);

$feedback->ip = $_SERVER['REMOTE_ADDR'];
$feedback_id = $this->feedbacks->add_feedback($feedback);

// Отправляем email
$this->notify->email_feedback_admin($feedback_id);

}

if(!empty($password))
{
$this->users->update_user($this->user->id, array('password'=>$password));
}

}


Сообщение об успешной отправке появляется, но на почту ничего не приходит.

Смотрю лог - а оказывается скрипт пытается все пихнуть в БД и крэшится. Скажите, как это отменить, чтобы форма просто на мыло отправлялась?
Link to post
Share on other sites

Хм. Это придется функцию переписывать... В общем я добавил нужные поля в таблицу базы, ошибок в логе нет, но письмо не приходит. В чем может быть трабл?

Link to post
Share on other sites

$feedback_id = $this->feedbacks->add_feedback($feedback); - добавление сообщение в базу. Добавляется?
$this->notify->email_feedback_admin($feedback_id); - выборка самого сообщения, для отправки почтой. Выбирается? Смотри, что тебе отдает функа: email_feedback_admin - отсюда и выводы.

Link to post
Share on other sites

2 DARKVovich: я добавлял поле в адрес доставки в корзине, думаю, что и в форме обратной связи та же схема.

Просто делаешь новое поле аналогично соседнему полю, только название поменяй. А затем в базе данных тоже нужно по аналогии с тем-же полем создать.

Это проще и быстрее, чем вышеописанные мучения

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...