0

Хочу, чтобы после того, как сменились данные перекидывало на главную страницу. Echo уберу потом, но и без него не перенаправляет.

<?php
session_start();
require_once __DIR__ . "/../../db.php";

if ( $_SESSION['authorized'] ) {    //Если пользователь авторизован, то

if ( $_POST['changename'] > NULL ) {
    $stmt = $dbh->prepare("UPDATE users SET name = :name WHERE login = :login");
    $name = $_POST['changename'];
    $stmt->bindParam(':login',$_SESSION['login']);
    $stmt->bindParam(':name', $name);
    $stmt->execute();
    echo "Вы успешно поменяли имя на " . $name;  ?><br> <?
}
if ( $_POST['changename'] = NULL ) { exit();}

if ( $_POST['changesurname'] > NULL ) {
    $stmt = $dbh->prepare("UPDATE users SET surname = :surname WHERE login = :login");
    $surname = $_POST['changesurname'];
    $stmt->bindParam(':surname', $surname);
    $stmt->bindParam(':login',$_SESSION['login']);
    $stmt->execute();
    echo "Вы успешно поменяли фамилию на " . $surname; ?><br> <?
}
if ( $_POST['changesurname'] = NULL ) { exit();}

if ( $_POST['changelogin'] > NULL ) {
    $stmt = $dbh->prepare("UPDATE users SET login = :login WHERE login = :loginS");
    $login = $_POST['changelogin'];
    $stmt->bindParam(':login', $login);
    $stmt->bindParam(':loginS',$_SESSION['login']);
    $stmt->execute();
    echo "Вы успешно поменяли логин на " . $login; ?><br> <?
}
if ( $_POST['changelogin'] = NULL ) { exit();}

if ( $_POST['changepassword'] > NULL ) {
    $stmt = $dbh->prepare("UPDATE users SET password = :password WHERE login = :login");
    $password = $_POST['changepassword'];
    $password = password_hash($_POST['changepassword'], PASSWORD_DEFAULT);
    $stmt->bindParam(':password', $password);
    $stmt->bindParam(':login',$_SESSION['login']);
    $stmt->execute();
    echo "Вы успешно поменяли пароль!"; ?><br> <?
}
if ( $_POST['changepassword'] = NULL ) { exit();}

if ( $_POST['changemail'] > NULL ) {
    $stmt = $dbh->prepare("UPDATE users SET email = :email WHERE login = :login");
    $email = $_POST['changemail'];
    $stmt->bindParam(':email', $email);
    $stmt->bindParam(':login',$_SESSION['login']);
    $stmt->execute();
    echo "Вы успешно поменяли почту на " . $email;
}
if ( $_POST['changemail'] = NULL ) { exit();} ?>
<a href='/../../personalAccount.php'>Назад</a> <?
} else {
echo "Вам нужно авторизоваться, чтобы пользоваться личным кабинетом!";
session_unset();
session_destroy();
}
header('Location:../index.php'); //error
?><meta charset="utf-8">

Warning: Cannot modify header information - headers already sent by (output started at W:\domains\PDO\processes\change\change.php:13) in W:\domains\PDO\processes\change\change.php on line 63

Строка 63: header('Location:../index.php');

Alexey
  • 140
  • можете разрешить буферизацию вывода директивой output_buffering включив эту настройку в файле php.ini – mymedia Mar 08 '19 at 07:45
  • @mymedia не надо давать дурацких советов и пытаться отвечать одной строкой в комментарии на вопрос, на который есть подробный и развернутый ответ. – Ипатьев Mar 08 '19 at 08:13

0 Answers0