#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. Большое спасибо