The Divi theme's Contact form uses a math-based captcha to help cut down on spam. However, in some cases you may find that when you (or your users) enter the form, they receive a message that the captcha code is incorrect. Assuming the code is in fact entered correctly, there are a variety of reasons why this error may occur. One of these is load balancer problems.
Load balancing is a technique used by many web hosts to handle the amount of traffic the sites that they host (such as yours) receive. If there is too much traffic for one server to handle, the web host may set up additional servers and store a copy of your site on each server. Then as people visit your site they will be shown the copy on one of the servers. Normally this works well, but occasionally it can cause problems.
In particular it causes problems when your website tries to use sessions to remember details of the user's current visit. One example is in the Divi contact form. If you visit a page with a contact form, one of the servers will give you the page with the contact form. It will also generate and store (in a session) the correct answer to the captcha code. However, when you submit the form it may go to a different server which doesn't know the answer. As a result it has no choice but to reject the captcha and contact form.
The solution is to give the server a shared place to store the details of the user details. This can be done by setting the session_save_path within your PHP.ini file. Normally the session_save_path will be set to something like this:
session.save_path = /tmp
To fix this, you need to update this to point to a new folder (e.g. called "sessions") within your website's main directory. Note that for security reasons this folder must not be within the "web root" – i.e. the folder that contains your main website. You may need to check with your web host to figure out exactly what the path to your folder is, but it should end up being something like this:
session.save_path = /home/username/sessions
Now your servers will share access to the session information and features which rely on sessions, such as the Divi contact form, should start working correctly.
is there anything that can help me not receiving spam from the form, even though I have divi captcha on my form?
Hey Kern,
You should get better results with reCaptcha (the "I am not a Robot" checkbox you'll no doubt have seen). I use this plugin to add it to the Divi contact form:
https://trumani.com/product/divi-forms-google-recaptcha-plugin/
Another option:
https://bestwebsoft.com/recaptcha-and-divi-compatibility/