@stasbombit

Не работает php код?

Пишу небольшой код(соцсеть) и делая регистрацию столкнулся с проблемой
<?php

require_once __DIR__.'/boot.php';

// Проверим, не занято ли имя пользователя
$stmt = pdo()->prepare("SELECT * FROM `accounts` WHERE `login` = :username");
$stmt->execute(['username' => $_POST['login']]);
if ($stmt->rowCount() > 0) {
    flash('Это имя пользователя уже занято.');
    echo('Это имя пользователя уже занято.');
    header('Location: register.php'); // Возврат на форму регистрации
    die; // Остановка выполнения скрипта
}

$name = $_POST["name"];
$login = $_POST["login"];
$pass = $_POST["password"];
$phone = $_POST["phone"];
$email = $_POST["email"];
$bio = $_POST["bio"];

// Добавим пользователя в базу
$stmt = pdo()->prepare("INSERT INTO `accounts` (`login`, `password`, `name`, `bio`, `email`, `phone`, `rating`) VALUES (:login, :password, :name, :bio, :email, :phone, '1')");
$stmt->execute([
    'login' => $login,
    'password' => $pass,
    'phone' => $phone,
    'email' => $email,
    'bio' => $bio,
    'name' => $name,
]);

header('Location: login.php');

Но когда я выполнял код то был просто белый экран и всё
Делал с https://habr.com/ru/articles/665602/
изменил только index.php
  • Вопрос задан
  • 184 просмотра
Решения вопроса 2
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Логи смотри, ну или включи вывод ошибок.
echo('Это имя пользователя уже занято.');
header('Location: register.php'); // Возврат на форму регистрации
Здесь стопудоф будет лажа, так как хеадер так не отправляется. Почему - учим матчасть. Собсно в логах это будет отражено.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@artem-dainov
Php, java, js. Boot spring, jquery, git
Перед session_start, а так же перед header() - не должно ничего выводиться. Если вы будете что-то выводить, это сразу выводит ошибку. Подумайте над другим вариантом, как пользователю сообщить, что логин занят.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы