You are the developer and very much clear with why you are doing and creating the things you are. But this is not the case with your users. Usually, developers make the mistake of overestimating the users when they request the users to submit data via forms and assume that the data will be received as expected or intended.
But we must never forget Murphy’s law : “if there’s any way they can do it wrong, they will”
The outcome: Things will go wrong when the users submit data that is quite distinct from what was assumed or intended at the time of designing the form/application. What happens is the data entered might be incompatible with the underlying data schema or if the expected data is not provided can, lead to page or program failure. Also, the deliberate violation of the site’s database through injection attacks is another serious issue that again leads to page failures and can of course have way worse consequences than just putting your site down for some time.
How to avoid the complications?
Firstly, you need to tell your users the exactly what type of data you want them to enter, there are various ways to do this but the most used and effective one is of course correct use of labels, and alerts. For instance, if you prompt the user to enter an address, they are unsure of whether it is home, office or something else and they might even mistakenly enter the Email Address, this could have been avoided very simply. So, you should take advantage of the number of data validation techniques that are available in the latest version of HTML to get rid of this issue.
Also, make sure that regardless of the techniques employed to validate data on the browser side, the validation takes place on the server side too. Whenever an user entry is being updated, ensure that you don’t just use the given values and throw them into the database.