# Uniform Contact form plugin

**URL:** <https://forum.getkirby.com/t/uniform-contact-form-plugin/20214>\
**Category:** Questions\
**Tags:** v3\
**Created:** [December 1, 2020, 4:07am UTC](https://forum.getkirby.com/t/uniform-contact-form-plugin/20214 "2020-12-01T04:07:27Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![coolcoolhomebody](https://avatars.discourse-cdn.com/v4/letter/c/8e8cbc/32.png) [@coolcoolhomebody](https://forum.getkirby.com/u/coolcoolhomebody)\
**Post date:** [December 1, 2020, 4:07am UTC](https://forum.getkirby.com/t/uniform-contact-form-plugin/20214/1 "2020-12-01T04:07:27Z")

</div>

Hello.

I want to use the Uniform Contact plugin.

This plugin works fine for site/template/contact.php and site/controllers/contact.php, but not for other templates and controllers at all.

Should I do something wrong or am I supposed to fix it?

site/templates/projects.php

  

```
    <input<?php e($form->hasError('name'), ' class="erroneous"')?> type="text" name="name" id="name" value="<?php $form->echoValue('name') ?>" required placeholder="Name or Company 이름 혹은 회사명">

    <input name="email" type="email" value="<?php echo $form->old('email') ?>" required placeholder="E-mail 이메일">

    <input type="tel" name="phone" id="phone" value="<?php $form->echoValue('phone') ?>" placeholder="Phone Number 휴대폰 번호">

    <input type="text" name="inquiring_product" id="inquiring_product" value="<?php $form->echoValue('inquiring_product') ?>" placeholder="Inquiring Product 문의 제품">

    <input type="text" name="product_use" id="product_use" value="<?php $form->echoValue('product_use') ?>" placeholder="Product Use 제품 용도">

    <input type="text" name="quantity" id="quantity" value="<?php $form->echoValue('quantity') ?>" placeholder="Quantity 수량">

    <input type="text" name="qna" id="qna" value="<?php $form->echoValue('qna') ?>" placeholder="Q&A 기타 문의 사항">

    <?php echo csrf_field() ?>
    <?php echo honeypot_field() ?>
    <input type="submit" value="Send">
</form>

```

/site/controllers/project.php

```
<?php

return function ($page) {

$gallery = $page->images()->sortBy('sort', 'filename');

return [
    'gallery' => $gallery
];

};

use Uniform\Form;

return function ($kirby)
{
$form = new Form([
    'name' => [
        'rules' => ['required'],
        'message' => 'Name is required',
    ],
    'email' => [
        'rules' => ['required', 'email'],
        'message' => 'Email is required',
    ],
    'phone' => [
        'rules' => ['required'],
        'message' => 'Phone is required',
    ],
    'inquiring_product' => [
        'message' => 'Inquiring product is required',
    ],
    'product_use' => [
        'message' => 'Product use is required',
    ],
    'quantity' => [
        'message' => 'Quantity is required',
    ],
    'qna' => [
        'message' => 'Q&A is required',
    ],

]);

if ($kirby->request()->is('POST')) {
    $form->emailAction([
        'to' => 'sonahyong@gmail.com',
        'from' => 'sonahyong@gmail.com',
    ]);
}

return compact('form');
};

```

 ![스크린샷 2020-12-01 오후 1.06.51](https://europe1.discourse-cdn.com/flex017/uploads/getkirby/original/2X/1/11e81df11760fe0725b9c1aa4072a036231d74e1.png)

---

<div class="post-metadata">

**Author:** ![texnixe](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/texnixe/32/5754_2.png) [@texnixe](https://forum.getkirby.com/u/texnixe)\
**Post date:** [December 1, 2020, 7:51am UTC](https://forum.getkirby.com/t/uniform-contact-form-plugin/20214/2 "2020-12-01T07:51:03Z")

</div>

You form handling code is not within the controller return function, instead, you create a second return statement, which will be completely ignored, so you have to put your form definition within that first function statement and integrate what you return from that function

```auto
<?php
use Uniform\Form;

return function ($page) {

    $gallery = $page->images()->sortBy('sort', 'filename');

    $form = new Form([
        'name' => [
            'rules' => ['required'],
            'message' => 'Name is required',
        ],
        'email' => [
            'rules' => ['required', 'email'],
            'message' => 'Email is required',
        ],
        'phone' => [
            'rules' => ['required'],
            'message' => 'Phone is required',
        ],
        'inquiring_product' => [
            'message' => 'Inquiring product is required',
        ],
        'product_use' => [
            'message' => 'Product use is required',
        ],
        'quantity' => [
            'message' => 'Quantity is required',
        ],
        'qna' => [
            'message' => 'Q&A is required',
        ],

    ]);

    if ($kirby->request()->is('POST')) {
        $form->emailAction([
            'to' => 'sonahyong@gmail.com',
            'from' => 'sonahyong@gmail.com',
        ]);
    }

    return [
        'gallery' => $gallery,
        'form' => $form,
    ];

};

```

On a side note: A placeholder is no replacement for input labels. To make your form accessible for users of assistive technology, consider using labels.

---

<div class="post-metadata">

**Author:** ![coolcoolhomebody](https://avatars.discourse-cdn.com/v4/letter/c/8e8cbc/32.png) [@coolcoolhomebody](https://forum.getkirby.com/u/coolcoolhomebody)\
**Post date:** [December 1, 2020, 12:01pm UTC](https://forum.getkirby.com/t/uniform-contact-form-plugin/20214/3 "2020-12-01T12:01:50Z")

</div>

I modified the code as you said, but an error message appears. 😢

 ![스크린샷 2020-12-01 오후 8.59.59](https://europe1.discourse-cdn.com/flex017/uploads/getkirby/original/2X/2/2bfed4b59b8689ace68c0b9cf78b7dc5a219a85d.png)

```
<?php
use Uniform\Form;

return function ($page) {

$gallery = $page->images()->sortBy('sort', 'filename');

$form = new Form([
    'name' => [
        'rules' => ['required'],
        'message' => 'Name is required',
    ],
    'email' => [
        'rules' => ['required', 'email'],
        'message' => 'Email is required',
    ],
    'phone' => [
        'rules' => ['required'],
        'message' => 'Phone is required',
    ],
    'inquiring_product' => [
        'message' => 'Inquiring product is required',
    ],
    'product_use' => [
        'message' => 'Product use is required',
    ],
    'quantity' => [
        'message' => 'Quantity is required',
    ],
    'qna' => [
        'message' => 'Q&A is required',
    ],

]);

if ($kirby->request()->is('POST')) {
    $form->emailAction([
        'to' => 'sonahyong@gmail.com',
        'from' => 'sonahyong@gmail.com',
    ]);
}

return [
    'gallery' => $gallery,
    'form' => $form,
];

};
```

---

<div class="post-metadata">

**Author:** ![texnixe](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/texnixe/32/5754_2.png) [@texnixe](https://forum.getkirby.com/u/texnixe)\
**Post date:** [December 1, 2020, 12:56pm UTC](https://forum.getkirby.com/t/uniform-contact-form-plugin/20214/4 "2020-12-01T12:56:11Z")

</div>

> [@coolcoolhomebody](#):
>
> `return function ($page) {`

You need to pass $kirby as an argument to the function

```auto
return function($page, $kirby)

```

---

<div class="post-metadata">

**Author:** ![coolcoolhomebody](https://avatars.discourse-cdn.com/v4/letter/c/8e8cbc/32.png) [@coolcoolhomebody](https://forum.getkirby.com/u/coolcoolhomebody)\
**Post date:** [December 1, 2020, 2:15pm UTC](https://forum.getkirby.com/t/uniform-contact-form-plugin/20214/5 "2020-12-01T14:15:33Z")

</div>

Thank you very much!! 😍 😍 😍 😍 🥰 🥰 🥰
