Отображение html — файла после функции PHP

#php #html

Вопрос:

После регистрации пользователя я отправляю ссылку для подтверждения по электронной почте на адрес электронной почты, используемый для проверки. Когда пользователь нажимает на ссылку, у меня есть php api, который проверяет код и обновляет базу данных. До этого он работает нормально. Как только это будет сделано успешно, я хочу отобразить сообщение о том, что электронная почта проверена, и предоставить ссылку для входа в систему. Я застрял здесь.

Мой эхо-дисплей, как и с html-тегом. Я новичок в PHP и не могу продолжить. Пожалуйста, помогите.

 <?php
    header("Access-Control-Allow-Origin: *");
    header("Content-Type: application/json; charset=UTF-8");
    header("Access-Control-Allow-Methods: POST");
    header("Access-Control-Max-Age: 3600");
    header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");

    include_once '../config/database.php';
    include_once '../class/users.php';
    require_once('../config/constants.php');
    
    $database = new Database();
    $db = $database->getConnection();

    $item = new User($db);

    $item->hash = isset($_GET['ticket']) ? $_GET['ticket'] : die();
    
    $encryptedMessage = isset($_GET['code']) ? $_GET['code'] : die();
    $decryptedMessage = openssl_decrypt($encryptedMessage, ENCRYPT_ALGO, SALT);

    $item->email = $decryptedMessage; 
    
    $item->verifyEmail();

    if($item->user_id != null){
        $item->updateEmailVerified($item->user_id);
        echo "<p style='color:red;'>" . "Hello Word" . "</p>"; // --- Displays as it is ---
    }
      
?>

 

введите описание изображения здесь

Комментарии:

1. Вы явно задаете заголовок, чтобы браузер ожидал данных JSON: header("Content-Type: application/json; charset=UTF-8"); почему?

2. У вас есть Content-Type: application/json; , поэтому эта страница не может быть HTML.

3. Кроме того, если предполагается, что это ссылка, по которой вы нажали в электронном письме, почему вы установили все эти заголовки, связанные с CORS («Контроль доступа»), вверху? Они просто без всякой причины открывают дыру в системе безопасности, если вы на самом деле не хотите, чтобы доступ к странице осуществлялся по запросу CORS. Я чую, что здесь происходит какое-то программирование на основе догадок. Если вы не понимаете, что делает строка кода, либо а) идите и проведите некоторое исследование, чтобы понять ее назначение, либо б) не используйте ее.

Ответ №1:

Здесь для вашего типа контента установлено значение «приложение/json» .:

 header("Content-Type: application/json; charset=UTF-8");
 

Попробуйте изменить его на:

 header("Content-Type: text/html; charset=UTF-8");
 

Комментарии:

1. Большое спасибо