2016-04-08 23 views
1

同じページにリダイレクトできません。 "localhostページが機能していない、localhostがあなたに何度もリダイレクトされました、ERR_TOO_MANY_REDIRECTS"というメッセージが表示されます。同じページにリダイレクトする問題

私のnavbarからは、登録とログインのためのドロップダウンがあります。登録がうまくいっているので、数分間ログインして何らかの理由で突然停止しました。私は1時間以上でコードに触れていなかった。

<?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

コードスニペットは、PHPではなく、HTML、JS、およびCSS専用です。 – 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