<p>Its not at all difficult. Here's the example form from the docs:</p>

<p><a href="https://craftcms.com/docs/templating/user-registration-form" rel="nofollow">https://craftcms.com/docs/templating/user-registration-form</a></p>

<pre><code>&lt;form method="post" accept-charset="UTF-8"&gt;
    {{ getCsrfInput() }}
    &lt;input type="hidden" name="action" value="users/saveUser"&gt;
    &lt;input type="hidden" name="redirect" value=""&gt;

    {% 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 %}

    &lt;h3&gt;&lt;label for="username"&gt;Username&lt;/label&gt;&lt;/h3&gt;
    &lt;input id="username" type="text" name="username"
        {%- if account is defined %} value="{{ account.username }}"{% endif -%}&gt;

    {% if account is defined %}
        {{ errorList(account.getErrors('username')) }}
    {% endif %}

    &lt;h3&gt;&lt;label for="email"&gt;Email&lt;/label&gt;&lt;/h3&gt;
    &lt;input id="email" type="text" name="email"
        {%- if account is defined %} value="{{ account.email }}"{% endif %}&gt;

    {% if account is defined %}
        {{ errorList(account.getErrors('email')) }}
    {% endif %}

    &lt;h3&gt;&lt;label for="password"&gt;Password&lt;/label&gt;&lt;/h3&gt;
    &lt;input id="password" type="password" name="password"&gt;

    {% if account is defined %}
        {{ errorList(account.getErrors('password')) }}
    {% endif %}

    &lt;input type="submit" value="Register"&gt;
&lt;/form&gt;
</code></pre>

<p>And you can find a login form here: <a href="https://craftcms.com/docs/templating/user-profile-form" rel="nofollow">https://craftcms.com/docs/templating/user-profile-form</a></p>

<p>And a profile editing template here: 
<a href="https://craftcms.com/docs/templating/user-profile-form" rel="nofollow">https://craftcms.com/docs/templating/user-profile-form</a></p>

<p>Also remember that you can use all kinds of custom fields on your users</p>

CC BY-SA 3.0
2016-07-05T03:49:47.383Z
2016-07-05T03:49:47.383Z
Amit Erandole
<p>Apologies if this has been asked before, I couldn't find any documentation specifically about it. </p>

<p>I come from a largely WordPress background but am looking into using Craft Pro for a new client that'll need user registration (real estate website), but I don't want said users to be able to get to the actual CMS backend, rather a simple sort of 'my account' page where it saves their listed properties etc. </p>

<p>Are these sorts of things difficult to pull off in Craft? It seems like this aspect of site dev is quite strictly locked down from what I can extrapolate. </p>

<users><registration>
Custom login/profile sections?
# Custom login/profile sections?

(Asked by: username_0 on 2016-07-05)

Apologies if this has been asked before, I couldn't find any documentation specifically about it.

I come from a largely WordPress background but am looking into using Craft Pro for a new client that'll need user registration (real estate website), but I don't want said users to be able to get to the actual CMS backend, rather a simple sort of 'my account' page where it saves their listed properties etc.

Are these sorts of things difficult to pull off in Craft? It seems like this aspect of site dev is quite strictly locked down from what I can extrapolate.

**Tags:** users, registration


---

## 1 answers

### Answer by username_1 on 2016-07-05. Score: 3 | Accepted answer

Its not at all difficult. Here's the example form from the docs:
https://craftcms.com/docs/templating/user-registration-form

    {{ getCsrfInput() }}
    
    

    {% macro errorList(errors) %}
        {% if errors %}
            
                {% for error in errors %}
                    {{ error }}
                {% endfor %}
            
        {% endif %}
    {% endmacro %}

    {% from _self import errorList %}

    Username
    

    {% if account is defined %}
        {{ errorList(account.getErrors('username')) }}
    {% endif %}

    Email
    

    {% if account is defined %}
        {{ errorList(account.getErrors('email')) }}
    {% endif %}

    Password
    

    {% if account is defined %}
        {{ errorList(account.getErrors('password')) }}
    {% endif %}

    


And you can find a login form here: https://craftcms.com/docs/templating/user-profile-form
And a profile editing template here: 
https://craftcms.com/docs/templating/user-profile-form
Also remember that you can use all kinds of custom fields on your users


---

