How to deal with client input your site?
Not an answer, but one thing that might help you diagnose the problem, is to output all the return errors (without having to define it on each field as the example templates do).

{% macro errorList(errors) %}
    {% if errors %}
        &lt;ul class="errors"&gt;
            {% for error in errors %}
                &lt;li&gt;{{ error }}&lt;/li&gt;
            {% endfor %}
        &lt;/ul&gt;
    {% endif %}
{% endmacro %}

{% from _self import errorList %}

{% if account is defined %}
    {{ errorList(account.getAllErrors()) }}
{% endif %}

{% if entry is defined %}
    {{ errorList(entry.getAllErrors()) }}
{% endif %}


A User Model named 'account' is returned by default from a failed users/saveUser post action, and an Entry Model named 'entry' is returned by default from a failed entries/saveEntry post action.

I have also found the Inpector plug-in extremely helpful. You can then add {{ account | inspect }} or {{ entry | inspect }} within the if statements above to get more info.