Ошибка 500 Apache Server на странице Django с контактной формой - PullRequest
0 голосов
/ 24 октября 2019

Я создаю свою первую страницу в Django 2.2. Я реализовал это на сервере apache, но у меня проблема с отображением страницы с контактной формой. Я получаю 500 ошибок в ответ. Я использую функцию send_mail для отправки сообщений.

Я проверил логи сервера. К сожалению, они не говорят мне много. Я добавил тег {% csrf_token%} под тегом формы в HTML-коде. Я думаю, что проблема из-за неправильного представления страницы, но я не знаю, что делать, чтобы исправить это.

def contact(request):
    message = request.POST.get('message', False)
    sender = request.POST.get('email', False)
    subject = "New message from example.com from: " + sender

    send_mail(subject, message, 'contact@example2.com', ['contact@example3.com'], fail_silently=False)

    return render(request=request, template_name="main/contact.html")

Ниже я вставляю журнал сервера apache:

[Thu Oct 24 10:47:28.394512 2019] [:error] [pid 17558] [client x.x.x.x] ModSecurity: Warning. Pattern match "^5\\\\d{2}$" at RESPONSE_STATUS. [file "/usr/share/modsecurity-crs/activated_rules/modsecurity_crs_50_outbound.conf"] [line "53"] [id "970901"] [rev "2"] [msg "The application is not available"] [data "Matched Data: 500 found within RESPONSE_STATUS: 500"] [severity "ERROR"] [ver "OWASP_CRS/2.2.9"] [maturity "9"] [accuracy "9"] [tag "WASCTC/WASC-13"] [tag "OWASP_TOP_10/A6"] [tag "PCI/6.5.6"] [hostname "example.com"] [uri "/contact/"] [unique_id "XbFlIH8AAQEAAESWGb4AAAAA"]
[Thu Oct 24 10:47:28.397631 2019] [:error] [pid 17558] [client x.x.x.x] ModSecurity: Warning. Operator GE matched 4 at TX:outbound_anomaly_score. [file "/usr/share/modsecurity-crs/activated_rules/modsecurity_crs_60_correlation.conf"] [line "40"] [id "981205"] [msg "Outbound Anomaly Score Exceeded (score 4): The application is not available"] [hostname "example.com"] [uri "/contact/"] [unique_id "XbFlIH8AAQEAAESWGb4AAAAA"]

1 Ответ

0 голосов
/ 24 октября 2019

Некоторые изменения, которые вам необходимо внести: вам нужно убедиться, что запрос равен POST, прежде чем использовать почтовые данные, а также лучше использовать django формы вместо того, чтобы принимать входные данные из запроса POST

def contact(request):
     if request.method == 'POST'
        message = request.POST.get('message', False)
        sender = request.POST.get('email', False)
        subject = "New message from example.com from: " + sender

        send_mail(subject, message, 'contact@example2.com', ['contact@example3.com'], fail_silently=False)


      return render(request=request, template_name="main/contact.html")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...