Подтвердите электронную почту и отправьте ее на контроллер Lumen

Я пытаюсь проверить электронную почту с помощью контроллера lumen. Если адрес электронной почты введен правильно, он должен отображаться как «действительный», но в текущем состоянии он всегда «недействителен», даже если введены правильные адреса электронной почты.

namespace App\Http\Controllers;

use Illuminate\Http\Request;

 class NewsletterController extends Controller
 {
  public function subscribe(Request $request)
 {
    $email = $request->query('email');
    echo $email;


    function valid_email($email) {

        return !!filter_var($email, FILTER_VALIDATE_EMAIL);


    }

    if ( valid_email($email) ) {

        return response()->json(["valid"]);



    } else {

        return response()->json(["invalid"]);

    }

}
}

AJAX-вызов через jQuery

 function msg() {
var email = document.getElementById("email").value;
console.info(email);
var email2 = $('input[type=email]').val();
console.info(email2);
event.preventDefault();

$.get("newsletter/subscribe?email + $('input[type=email]').val()", function(data, status){
    console.info("data: " + data + "\nStatus: " + status);
})
.done(function() {
    //console.info( "done" );
    alert("DONE");
})
.fail(function() {
    console.info( "error" );
    alert("Fail");
})
.always(function() {
    //console.info( "finished" );
    alert("hz");
});            

};

Форма

 <form class = "join-newsletter">
    <input id = "email" name = "email" type = "email" placeholder = "Enter your email address" class = "email-address">
    <input onclick = "msg()" type = "submit" value = "Subscribe" class = "submit-email button">
 </form>

Обновленный код: по-прежнему отображаются данные: недействительные.

Каково ваше определение маршрута?

Duy Nguyen Hoang 23.01.2019 06:19
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
539
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я полагаю, ваш запрос ajax можно изменить на.

$.get("/newsletter/subscribe?email = "+ $('#email').val()

Возможная проблема заключается в том, что вы неправильно отправляете значение email на свой контроллер.

Привет! теперь он все еще выдает данные: недействительные. На самом деле я основал этот код на вашей старой теме.

Kara 23.01.2019 09:55

/public/?email=# выходит.

Kara 23.01.2019 10:29

Это должен быть $.get("newsletter/subscribe?email = " + $('#email').val(), function(data, status){

Duy Nguyen Hoang 23.01.2019 10:31

Эй, когда я добавляю этот бит в свой код. это вообще не работает. просто выплевывает. .fail(function()

Kara 23.01.2019 10:37

Пожалуйста, проверьте ответ Ajax, а также обновите определение маршрута.

Duy Nguyen Hoang 23.01.2019 10:38
$app->get('newsletter/subscribe', 'NewsletterController@subscribe'); мой ответ route.php ajax кажется нормальным, хм. я что-то упускаю...
Kara 23.01.2019 10:42

Что выдает YOUR_URL/newsletter/[email protected]? (Измените YOUR_URL на правильное значение)

Duy Nguyen Hoang 23.01.2019 10:47

выходит как [email protected]["valid"]

Kara 23.01.2019 10:49

Эй, попробуйте $.get("/newsletter/subscribe?email = " + $('#email').val(), function(data, status){, сосредоточьтесь на / перед newsletter и проверьте консоль браузера, чтобы увидеть, что вы вызываете указанный выше URL-адрес, который вернул [email protected]["valid"].

Duy Nguyen Hoang 23.01.2019 10:51

добавление URL-адреса косой черты происходит неправильно - myurl/newsletter/[email protected] должен быть myurl/public/newsletter/[email protected]‌​m

Kara 23.01.2019 11:03

Удалите echo $email; в своем действии, пожалуйста

Duy Nguyen Hoang 23.01.2019 11:19

Другие вопросы по теме