File login php mengarahkan saya ke folder pengguna di xampp tetapi tidak di cpanel

Skrip login saya ketika menggunakan xampp sebagai server mengarahkan saya ke folder pengguna setelah login berhasil, tetapi ketika saya mengunggah ke cpanel, skrip tersebut hanya memuat ulang dan tidak mengarahkan ulang. Tetapi ketika saya mengetikkan folder pengguna setelah nama domain, itu menunjukkan bahwa pengguna sudah login. Seperti www.goo.com/users, file indeks pengguna akan dimasukkan sebagai login berhasil. Apa yang dapat saya lakukan untuk pengalihan yang tepat.

<?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 sumber
comment
Kemungkinan duplikat pengalihan header tidak berfungsi di server tetapi berfungsi di host lokal   -  person Daniyal Nasir    schedule 16.01.2018
comment
Terima kasih saya menemukan jawabannya. Saya menggunakan echo ‹script›location='your_url.com'‹/script›;   -  person Evance Osoo    schedule 16.01.2018
comment
Baiklah, berhati-hatilah, pengalihan PHP lebih baik jika Anda bisa karena dengan JavaScript Anda menyebabkan klien memuat halaman sebelum pengalihan, sedangkan dengan PHP ia mengirimkan header yang tepat.   -  person Daniyal Nasir    schedule 16.01.2018


Jawaban (1)


Header harus disetel sebelum output apa pun dikirim. Anda mengirimkan banyak HTML ke pengguna sebelum melakukan panggilan header() itu. Mungkin ini berfungsi di satu lingkungan tetapi tidak di lingkungan lain karena output_buffering disetel di localhost php.ini Anda tetapi tidak di server.

Anda harus mengerjakan ulang kode Anda untuk memastikan header() dikirim sebelum hal apa pun, tetapi jika Anda ingin membuatnya berfungsi, tambahkan ob_start() ke awal kode Anda, itu akan menerapkan buffering.

Lihat juga

person Daniyal Nasir    schedule 16.01.2018