PHP标头例外

时间:2017-04-18 14:02:04

标签: php

我有一个单独的 navigator.php 包含在我公开的每个页面的顶部。它有一个登录表单。如果用户有一个帐户,他们可以登录并发送到他们所在的当前页面。

我将当前网址添加到隐藏的输入中作为其值。并将其发布到giris.php(登录)。然后使用标题重定向用户。

但是当谈到 register.php 时(没有设置任何会话);我试图登录那里,它仍然把我送回 register.php 。但是SESSION正在设置。我需要一个例外,并希望通过 register.php 将用户发送到 index.php

navigator.php

    <div id="top">
    <ul class="topnav" id="myTopnav">
    <li><a href="index.php">Anasayfa</a></li>
    <li><a href="contact.php">İletişim</a></li>
    <li><a href="#about">Hakkımızda</a></li>
    <?php           
    if (isset($_SESSION["giris"]))
    {    
    echo '<li><a href="#">Panel</a></li>
    <li><a href="cikis.php">Çıkış Yap</a></li>';
    }
    else
    {           
    $url= $_SERVER["REQUEST_URI"];
    echo '<li><a href="register.php">Kayıt Ol</a></li>
    <li id="log">
    <form method="post" action="giris.php"><div id="login">
    <input type="hidden" name="location" value="'.$url.'">
    <input type="text" name="username" placeholder="Kullanıcı Adı" class="loginField" required>
    <input type="password" name="password" placeholder="Şifre" class="loginField" required>
    <input type="submit" name="login" value="Giriş" id="logBut">
    </form>
    </li>';
    }
    ?>
    <li class="icon">
    <a href="javascript:void(0);" onclick="myFunction()">&#9776;</a></li> 
    </ul>
    </div>
    <div id="banner">
    <div id="title">
    <h1>Topluluk Bloğu</h1>
    <br/>
    <h5>Community Blog</h5>
    <br/>
    <?php if(isset($_SESSION["giris"])){echo '<p id="username">Hoşgeldin '.$_SESSION["kullanici"].'</p>'; }?>
    </div>
    </div>

giris.php

<?php
session_start();
ob_start();
    include 'func/constr.php';  
    if(isset($_POST["login"]))
    {
    $kullanici = $_POST['username'];
    $password = $_POST['password'];
    $URL = $_POST["location"];
    $query = mysqli_query($connect,"SELECT * FROM kullanicilar where kullanici_adi='$kullanici' and sifre='$password'");
    $count = mysqli_num_rows($query);
    if ($count == 1)
    {
    $_SESSION["giris"] = true;
    $_SESSION["kullanici"] = $kullanici;
    $_SESSION["sifre"] = $password;
    header("Location:$URL");
    }
    else
    {
    $invalid = "Kullanıcı adı ya da şifre yanlış";
    $_SESSION["invalid"] = $invalid;
    header("Location:index.php");
    }
    }
    ob_end_flush();
    ?>

1 个答案:

答案 0 :(得分:0)

试试这个,但没有经过测试,如果你的其他代码没问题,那么重定向问题

header("Location:$URL");

header('Location: ' . $URL);