2016-04-08 302 views
1

我在重定向到同一页面时遇到问题。我不断收到消息:“本地主机页面不工作,本地主机重定向您太​​多次了,ERR_TOO_MANY_REDIRECTS”。问题重定向到同一页面

在我的导航栏中有注册和登录的下拉菜单。注册工作正常,登录过了几分钟,然后由于某种原因突然停止工作。我在一个多小时内没有触及代码。

<?php 
 
session_start(); 
 

 
if(isset($_SESSION['usr_id'])) { 
 
    header("Location: index.php"); 
 
} 
 

 
include_once 'dbconnect.php'; 
 

 
//set validation error flag as false 
 
$error = false; 
 

 
//check if form is submitted 
 
if (isset($_POST['signup'])) { 
 
    $name = mysqli_real_escape_string($con, $_POST['name']); 
 
    $email = mysqli_real_escape_string($con, $_POST['email']); 
 
    $password = mysqli_real_escape_string($con, $_POST['password']); 
 
    $cpassword = mysqli_real_escape_string($con, $_POST['cpassword']); 
 
    
 
    //name can contain only alpha characters and space 
 
    if (!preg_match("/^[a-zA-Z ]+$/",$name)) { 
 
     $error = true; 
 
     $name_error = "Name must contain only alphabets and space"; 
 
    } 
 
    if(!filter_var($email,FILTER_VALIDATE_EMAIL)) { 
 
     $error = true; 
 
     $email_error = "Please Enter Valid Email ID"; 
 
    } 
 
    if(strlen($password) < 6) { 
 
     $error = true; 
 
     $password_error = "Password must be minimum of 6 characters"; 
 
    } 
 
    if($password != $cpassword) { 
 
     $error = true; 
 
     $cpassword_error = "Password and Confirm Password doesn't match"; 
 
    } 
 
    if (!$error) { 
 
     if(mysqli_query($con, "INSERT INTO users(name,email,password) VALUES('" . $name . "', '" . $email . "', '" . md5($password) . "')")) { 
 
      $successmsg = "Successfully Registered! <a href='login.php'>Click here to Login</a>"; 
 
     } else { 
 
      $errormsg = "Error"; 
 
     } 
 
    } 
 
} 
 

 
if (isset($_POST['login'])) { 
 

 
    $email = mysqli_real_escape_string($con, $_POST['email']); 
 
    $password = mysqli_real_escape_string($con, $_POST['password']); 
 
    $result = mysqli_query($con, "SELECT * FROM users WHERE email = '" . $email. "' and password = '" . md5($password) . "'"); 
 

 
    if ($row = mysqli_fetch_array($result)) { 
 
     $_SESSION['usr_id'] = $row['id']; 
 
     $_SESSION['usr_name'] = $row['name']; 
 
     header("Location: index.php"); 
 
     die; 
 
    } else { 
 
     $errormsg = "Incorrect Email or Password!!!"; 
 
    } 
 
} 
 

 
?>
    <div class="wraplogin"> 
 
         <form role="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="loginform" id="edd_login_form" class="edd_form"> 
 
          <fieldset> 
 
           <legend>Log into Your Account</legend> 
 
           <p> 
 
            <label>Username</label> 
 
            <input type="text" name="email" required class="form-control" id="edd_user_login" class="required edd-input" /> 
 
           </p> 
 
           <p> 
 
            <label>Password</label> 
 
            <input type="password" name="password" placeholder="Your Password" required class="form-control" id="edd_user_pass" class="password required edd-input" /> 
 
           </p> 
 
           <p> 
 
            <input id="edd_login_submit" type="submit" class="edd_submit" name="login" value="Log In" /> 
 
           </p> 
 
           <li class="divider"></li> 
 
           <p class="edd-lost-password"> 
 
            <a href="#" title="Lost Password">Lost Password? </a> 
 
           </p> 
 
          </fieldset> 
 
         </form> 
 
         <span class="text-danger"><?php if (isset($errormsg)) { echo $errormsg; } ?></span> 
 
        </div>

任何人都知道是什么问题?

+0

代码片段仅用于HTML,JS和CSS,而不是PHP。 – Huey

+0

如果你的PHP文件被命名为'index.php',当'isset($ _SESSION ['usr_id'])'时,它会自动重定向。 – Huey

回答

0

就在一开始你做了重新定位:

<?php 
session_start(); 

if(isset($_SESSION['usr_id'])) { 
    header("Location: index.php"); 
} 

但登录后($_SESSION['usr_id']设置)如果此页面是的index.php,它会重定向到自身,并再次检查和重定向本身再次进入循环

+0

这似乎已经成功了。认为它与会话存储有关。 – user3193631