Файл входа в php перенаправляет меня в папку пользователей в xampp, но не в cpanel

Мой сценарий входа в систему, когда я использую xampp в качестве сервера, перенаправляет меня в папку пользователей после успешного входа в систему, но когда я загружаю в cpanel, он просто перезагружается, а не перенаправляется. Но когда я ввожу папку пользователей после имени домена, он показывает, что пользователи уже вошли в систему. Как и www.goo.com/users, он будет использовать индексный файл пользователей как успешный вход. Что я могу сделать для правильного перенаправления.

<?php
    require_once('../includes/config.php');
    $_SESSION['timestamp']=time();
?>
<div class="row"><br><br><br>
  <div class="container">
    <div class="col-lg-6">
      <p style="color: green">Login Procedures</p>
      <i class="fa fa-cc-paypal fa-2x" aria-hidden="true">
      <div style="font-size: 15px;">- Login Details will be sent to your email aproximately 20 minutes after payment. </div>
            </i>
            <img src="images/mpesa.png" alt="mpesa" id="mpesa" class="img-responsive" width="50" height="10">
            <div style="font-size: 15px;">
            - Login using the payment confirmation code and mobile phone number without the country code after payment.
            </div>
            <?php
    if(isset($_POST['submit'])) {
        $username = $_POST['username'];
        $password = $_POST['password'];

        $result = $dbh->prepare("SELECT * FROM tb_users WHERE username= :username AND password= :password");
        $result->bindParam(':username', $username);
        $result->bindParam(':password', $password);
        $result->execute();
        $rows = $result->fetch(PDO::FETCH_NUM);
        if($rows > 0) {

            $result=$dbh->prepare("SELECT * FROM tb_users WHERE username=:username");
            $result->bindParam(':username', $username);
            $result->execute();
            while($row = $result->fetch(PDO::FETCH_ASSOC)){
                $res_id = $row['username'];
                $curr_status = $row['user_status'];
            }

                if($curr_status=='deactive') {
                    $message = "Sorry <b>$username</b>, You've Exhausted Your Subscription. <p>Make a new Subscription to login or write to admin for Bonus Days.</p>";
                }else{
                    $_SESSION['username'] = $res_id;
                    header("location:users/index.php");
                }

        }
        else{
            $message = 'Wrong Credentials!';
        }
    }
?>
                <div id="signin" class="tab-pane fade in active"><br>
                    <form class="form-signin" id="login-form" method="post">
                        <div class="form-group">
                            <div class="input-group col-md-7">
                                <span class="input-group-addon"><i class="fa fa-envelope-o fa-fw"></i></span>
                                <input type="text" name="username" class="form-control" placeholder="Email / Phone" required>
                            </div>
                        </div>
                        <div class="form-group">
                            <div class="input-group col-md-7">
                                <span class="input-group-addon"><i class="fa fa-key fa-fw"></i></span>
                                <input class="form-control" name="password" type="password" placeholder="Password" id="myInput">
                            </div>
                        </div>
                        <div>
                <?php
                    if(!empty($message)) {
                        echo "<p style='color: red; padding: 2px;'>".$message."</p>";
                    }
                ?>
            </div>
                        <div class="form-group">
                            <input type="submit" name="submit" value="Access" class="btn btn-success"/>
                        </div>
                    </form>
                </div>
    </div>

person Evance Osoo    schedule 16.01.2018    source источник
comment
Возможный дубликат перенаправления заголовка не работает на сервере, но работает на локальный хост   -  person Daniyal Nasir    schedule 16.01.2018
comment
Спасибо, я нашел ответ. Я использовал echo ‹script›location='your_url.com'‹/script›;   -  person Evance Osoo    schedule 16.01.2018
comment
Хорошо, но будьте осторожны, перенаправления PHP лучше, если вы можете, как с JavaScript, вы заставляете клиента загружать страницу перед перенаправлением, тогда как с PHP он отправляет правильный заголовок.   -  person Daniyal Nasir    schedule 16.01.2018


Ответы (1)


Заголовки должны быть установлены перед отправкой любого вывода. Вы отправляете пользователю много HTML-кода перед выполнением этого вызова header(). Возможно, он работает в одной среде, но не в другой, потому что output_buffering установлен на вашем локальном хосте php.ini, но не на сервере.

Вы должны переработать свой код, чтобы убедиться, что header() отправляется перед любыми вещами, но если вы хотите просто заставить его работать, добавьте ob_start() в начало вашего кода, это обеспечит принудительную буферизацию.

См. также .

person Daniyal Nasir    schedule 16.01.2018