109 lines
3.7 KiB
Markdown
109 lines
3.7 KiB
Markdown
# Настройка форм обратной связи
|
||
|
||
## Копирование PHP файлов на сервер
|
||
|
||
```bash
|
||
# Скопировать обработчики форм в корень веб-сервера
|
||
sudo cp static/send_plan.php /var/www/html/
|
||
sudo cp static/send_ask.php /var/www/html/
|
||
|
||
# Установить права
|
||
sudo chown www-data:www-data /var/www/html/send_*.php
|
||
sudo chmod 644 /var/www/html/send_*.php
|
||
```
|
||
|
||
## Настройка email
|
||
|
||
Отредактируйте файлы и замените email получателя:
|
||
|
||
```bash
|
||
# В файле send_plan.php
|
||
sudo nano /var/www/html/send_plan.php
|
||
# Найти строку: $to = "info@sleeptrip.ru";
|
||
# Заменить на ваш email
|
||
|
||
# В файле send_ask.php
|
||
sudo nano /var/www/html/send_ask.php
|
||
# Найти строку: $to = "info@sleeptrip.ru";
|
||
# Заменить на ваш email
|
||
```
|
||
|
||
## Настройка SMTP (через msmtp)
|
||
|
||
```bash
|
||
# Установить msmtp
|
||
sudo apt update && sudo apt install msmtp msmtp-mta
|
||
|
||
# Создать конфигурацию
|
||
sudo tee /etc/msmtprc > /dev/null <<'EOF'
|
||
defaults
|
||
auth on
|
||
tls on
|
||
tls_trust_file /etc/ssl/certs/ca-certificates.crt
|
||
logfile /var/log/msmtp.log
|
||
|
||
# Gmail настройки (замените на ваши)
|
||
account gmail
|
||
host smtp.gmail.com
|
||
port 587
|
||
from your-email@gmail.com
|
||
user your-email@gmail.com
|
||
password your-app-password
|
||
|
||
# Установить Gmail как аккаунт по умолчанию
|
||
account default : gmail
|
||
EOF
|
||
|
||
# Установить права
|
||
sudo chmod 644 /etc/msmtprc
|
||
sudo chown root:mail /etc/msmtprc
|
||
|
||
# Создать лог файл
|
||
sudo touch /var/log/msmtp.log
|
||
sudo chown www-data:adm /var/log/msmtp.log
|
||
sudo chmod 664 /var/log/msmtp.log
|
||
|
||
# Настроить PHP для использования msmtp
|
||
echo "sendmail_path = /usr/bin/msmtp -t" | sudo tee -a /etc/php/*/apache2/php.ini
|
||
echo "sendmail_path = /usr/bin/msmtp -t" | sudo tee -a /etc/php/*/cli/php.ini
|
||
|
||
# Перезапустить Apache
|
||
sudo systemctl restart apache2
|
||
```
|
||
|
||
## Тестирование форм
|
||
|
||
1. Откройте страницы `/plan/` и `/ask/`
|
||
2. Заполните и отправьте формы
|
||
3. Проверьте логи: `sudo tail -f /var/log/msmtp.log`
|
||
4. Проверьте почту
|
||
|
||
## Альтернатива: использование существующего qform.io
|
||
|
||
Если предпочитаете оставить текущие формы qform.io, можно:
|
||
|
||
1. Оставить существующие формы как есть
|
||
2. PHP обработчики использовать как резервный вариант
|
||
3. Настроить webhook'и в qform.io для интеграции с внутренними системами
|
||
|
||
## Безопасность
|
||
|
||
- PHP файлы включают базовую валидацию
|
||
- Email headers защищены от инъекций
|
||
- Логируется IP и timestamp
|
||
- Рекомендуется добавить CAPTCHA для защиты от спама
|
||
|
||
## Интеграция с внутренними системами
|
||
|
||
Для интеграции с базой данных или CRM добавьте в PHP файлы:
|
||
|
||
```php
|
||
// Пример записи в базу данных
|
||
try {
|
||
$pdo = new PDO('mysql:host=localhost;dbname=travel', $db_user, $db_pass);
|
||
$stmt = $pdo->prepare("INSERT INTO requests (name, email, type, destination, created_at) VALUES (?, ?, ?, ?, NOW())");
|
||
$stmt->execute([$name, $email, $trip_type, $destination]);
|
||
} catch (PDOException $e) {
|
||
error_log("Database error: " . $e->getMessage());
|
||
}
|
||
``` |