@Andre548

Почему регистрирует дублем пользователя?

Добрый вечер! При регистрации, делает дубль пользователя. Мои глаза уже не видят, не пойму в чем может быть ошибка
class RegisterComponent extends Component
{
    public $sendCode = false;
    public $name;
    public $phone;
    public $code;

    public function send()
    {
        $this->sendCode = true;
        $rand = mt_rand(1000, 9999);
        session()->put('rand', ['code' => $rand]);

        $body = file_get_contents("https://sms.ru/sms/send?api_id=&to=$this->phone&msg=".urlencode(iconv("windows-1251","utf-8",$rand))."&json=1");
    }

    public function register()
    {
        if (session()->has('rand'))
        {
            if (session()->get('rand')['code'] == $this->code)
            {
                $user = User::create([
                    'name' => $this->name,
                    'phone' => $this->phone,
                ]);
                Auth::login($user);

                return redirect()->route('account.index');
            } else {
                session()->flash('code_error', 'Неверный код подтверждения');
            }
        }
    }

    public function render()
    {
        return view('livewire.register-component');
    }
}


<form wire:submit.prevent="register">
                    <label>
                        <span>Имя</span>
                        <input type="text" wire:model="name" class="popUp_inp" placeholder="Введите ваше имя">
                    </label>
                    <label>
                        <span>Номер телефона</span>
                        <input type="text" wire:model="phone" class="popUp_inp" placeholder="Введите ваш телефон">
                    </label>
                    @if(\Illuminate\Support\Facades\Session::has('code_error'))
                        <div
                            class="text-red-600">{{\Illuminate\Support\Facades\Session::get('code_error')}}</div>
                    @endif
                    @if($sendCode)
                    <label>
                        <span>Введите код</span>
                        <input type="text" wire:model="code" class="popUp_inp" placeholder="Введите код">
                    </label>
                    @endif
                    @if($sendCode)
                        <input type="submit" class="popUp_btn btn" wire:click="register" value="Зарегестрироваться">
                    @else
                        <input type="button" class="popUp_btn btn" wire:click="send" value="Выслать код">
                    @endif
                </form>
  • Вопрос задан
  • 58 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Kostik_1993
Web Developer
Почему регистрирует дублем пользователя?

Потому что в коде нет никаких проверок?) наверное вам нужно проверять пользователя с таким телефоном, если есть логиниться под ним, если нет создавать нового
Ответ написан
F1uD
@F1uD
Скорее всего по тому что на форму повешен ивент "wire:submit.prevent="register"" и на кнопке регистрации есть ивент на клик "wire:click="register"". Попробуйте убрать событие с кнопки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы