Php 我的重定向用户返回到previoud url无效

Php 我的重定向用户返回到previoud url无效,php,redirect,Php,Redirect,我在projet的本地机器上工作,我想在用户登录后将其重定向回以前的机器。我根据互联网上的研究尝试了自己,但没有成功。如果有人能帮忙;非常感谢……这是我的密码。 sell.php if (!isset($_SESSION["user_id"])) { header("Location: login.inc.php?location=". urlencode($_SERVER["REQUEST_URI"])); exit(); } include_once("./includes/p

我在projet的本地机器上工作,我想在用户登录后将其重定向回以前的机器。我根据互联网上的研究尝试了自己,但没有成功。如果有人能帮忙;非常感谢……这是我的密码。 sell.php

if (!isset($_SESSION["user_id"])) {
  header("Location: login.inc.php?location=". urlencode($_SERVER["REQUEST_URI"]));
  exit();
 } 

include_once("./includes/partheader.html");
<form action='' method='post'>

<p>
<label for='email'>Email : </label>
<input type='text' name='email' value='<?php if(isset($_POST['email'])){ echo $_POST['email'];} ?>' /><?php if(isset($errEmail) ){echo $errEmail;} ?>
</p>

 <p>
<label>Mot de passe : </label> 
 <input type='password' name='userpwd' value='' /><?php if(isset($pwdErr)){ echo $pwdErr;} ?>
 </p>

<p>
<input type="hidden" name="location" value="<?php if (isset($_GET["location"])) {
 echo htmlspecialchars($_GET["location"]);
} ?>">
</p>

 <p>
 <input type='submit' name='login' value='Connexion' />
 </p>
</form>
if(array_key_exists('login', $_POST)){
 $redirect = NULL;  
if($_POST['location'] != '') {
    $redirect = $_POST['location'];
}

    if (empty($_POST["email"])) {
    $errEmail = "Enter your email";
  } else {
    $email = trim($_POST["email"]);
    // check if e-mail address is well-formed
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
      $errEmail = "Invalid email "; 
    }
  }  


  if (empty($_POST['userpwd'])) {
    $pwdErr = "Entrer votre mot de passe";
 }
   else{
    $userpwd = sha1($_POST['userpwd']).$_POST['userpwd'];
   }

    if(empty($errEmail) && empty($pwdErr) ){
   include_once(BASE_URI."pdoconnect.inc.php");
  if(isset($pdo) ){
      try{
    $sql = 'SELECT userid, gender,nameuser FROM users WHERE users.email = :email AND users.userpwd = :userpwd';  
    $stmt = $pdo->prepare($sql);
    $stmt->bindValue(':email', $email);
    $stmt->bindValue(':userpwd', $userpwd);
    $stmt->execute();
    $rowscount = $stmt->rowCount();

    if(isset($rowscount) && $rowscount < 1 ){
    $err = 'Mot de passe ou nom d\' utilisateur incorrect';
  } 
    else{

    foreach($result = $stmt->fetchAll() as $row){
    $_SESSION['user_id'] = $row['userid'];
    $_SESSION['gender'] = $row['gender'];
    $_SESSION['nameuser'] = $row['nameuser'];
    }  //end foreach

    if (isset($redirect)) {
     header("Location:". $redirect);
    }

   //end of redirect header
 }

}catch (PDOException $e) {
    $errors[] = "Eror in script".$e->getMessage();
  }

    }
}//end of check error

}//end of post
<?php
session_start();

if (!empty($_SESSION["user_id"])) {
    $_SESSION['cur_url'] = $_SERVER["REQUEST_URI"];

    header("Location: login.inc.php");
    exit();
}

include_once("./includes/partheader.html");
<?php session_start(); ?>

<form action='' method='post' accept-charset='utf-8'>
    <p>
        <label for='email'>Email : </label>
        <input type='text' name='email' value='<?php if(isset($_POST['email'])){ echo $_POST['email'];} ?>' /><?php if(isset($errEmail) ){echo $errEmail;} ?>
    </p>

    <p>
        <label>Mot de passe : </label> 
        <input type='password' name='userpwd' value='' /><?php if(isset($pwdErr)){ echo $pwdErr;} ?>
    </p>
    <p>
        <input type='submit' name='login' value='Connexion' />
    </p>
</form>
<?php
session_start();

if(array_key_exists('login', $_POST)){

    if (empty($_POST["email"])) {
        $errEmail = "Enter your email";
    } else {
        $email = trim($_POST["email"]);
        // check if e-mail address is well-formed
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
            $errEmail = "Invalid email "; 
        }
    }  

    if (empty($_POST['userpwd'])) {
        $pwdErr = "Entrer votre mot de passe";
    } else {
        $userpwd = sha1($_POST['userpwd']).$_POST['userpwd'];
    }

    if(empty($errEmail) && empty($pwdErr) ){
        include_once(BASE_URI."pdoconnect.inc.php");
        if(isset($pdo) ){
            try{
                $sql = 'SELECT userid, gender,nameuser FROM users WHERE users.email = :email AND users.userpwd = :userpwd';  
                $stmt = $pdo->prepare($sql);
                $stmt->bindValue(':email', $email);
                $stmt->bindValue(':userpwd', $userpwd);
                $stmt->execute();
                $rowscount = $stmt->rowCount();

                if(isset($rowscount) && $rowscount < 1 ){
                    $err = 'Mot de passe ou nom d\' utilisateur incorrect';
                } else {

                    foreach($result = $stmt->fetchAll() as $row){
                        $_SESSION['user_id'] = $row['userid'];
                        $_SESSION['gender'] = $row['gender'];
                        $_SESSION['nameuser'] = $row['nameuser'];
                    }  //end foreach

                    if (!empty($_SESSION['cur_url'])) {
                        header("Location:". $_SESSION['cur_url']);
                    }

                    //end of redirect header
                }

            } catch (PDOException $e) {
                $errors[] = "Eror in script".$e->getMessage();
            }

        }
    }//end of check error
}//end of post
login.inc.php

if (!isset($_SESSION["user_id"])) {
  header("Location: login.inc.php?location=". urlencode($_SERVER["REQUEST_URI"]));
  exit();
 } 

include_once("./includes/partheader.html");
<form action='' method='post'>

<p>
<label for='email'>Email : </label>
<input type='text' name='email' value='<?php if(isset($_POST['email'])){ echo $_POST['email'];} ?>' /><?php if(isset($errEmail) ){echo $errEmail;} ?>
</p>

 <p>
<label>Mot de passe : </label> 
 <input type='password' name='userpwd' value='' /><?php if(isset($pwdErr)){ echo $pwdErr;} ?>
 </p>

<p>
<input type="hidden" name="location" value="<?php if (isset($_GET["location"])) {
 echo htmlspecialchars($_GET["location"]);
} ?>">
</p>

 <p>
 <input type='submit' name='login' value='Connexion' />
 </p>
</form>
if(array_key_exists('login', $_POST)){
 $redirect = NULL;  
if($_POST['location'] != '') {
    $redirect = $_POST['location'];
}

    if (empty($_POST["email"])) {
    $errEmail = "Enter your email";
  } else {
    $email = trim($_POST["email"]);
    // check if e-mail address is well-formed
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
      $errEmail = "Invalid email "; 
    }
  }  


  if (empty($_POST['userpwd'])) {
    $pwdErr = "Entrer votre mot de passe";
 }
   else{
    $userpwd = sha1($_POST['userpwd']).$_POST['userpwd'];
   }

    if(empty($errEmail) && empty($pwdErr) ){
   include_once(BASE_URI."pdoconnect.inc.php");
  if(isset($pdo) ){
      try{
    $sql = 'SELECT userid, gender,nameuser FROM users WHERE users.email = :email AND users.userpwd = :userpwd';  
    $stmt = $pdo->prepare($sql);
    $stmt->bindValue(':email', $email);
    $stmt->bindValue(':userpwd', $userpwd);
    $stmt->execute();
    $rowscount = $stmt->rowCount();

    if(isset($rowscount) && $rowscount < 1 ){
    $err = 'Mot de passe ou nom d\' utilisateur incorrect';
  } 
    else{

    foreach($result = $stmt->fetchAll() as $row){
    $_SESSION['user_id'] = $row['userid'];
    $_SESSION['gender'] = $row['gender'];
    $_SESSION['nameuser'] = $row['nameuser'];
    }  //end foreach

    if (isset($redirect)) {
     header("Location:". $redirect);
    }

   //end of redirect header
 }

}catch (PDOException $e) {
    $errors[] = "Eror in script".$e->getMessage();
  }

    }
}//end of check error

}//end of post
<?php
session_start();

if (!empty($_SESSION["user_id"])) {
    $_SESSION['cur_url'] = $_SERVER["REQUEST_URI"];

    header("Location: login.inc.php");
    exit();
}

include_once("./includes/partheader.html");
<?php session_start(); ?>

<form action='' method='post' accept-charset='utf-8'>
    <p>
        <label for='email'>Email : </label>
        <input type='text' name='email' value='<?php if(isset($_POST['email'])){ echo $_POST['email'];} ?>' /><?php if(isset($errEmail) ){echo $errEmail;} ?>
    </p>

    <p>
        <label>Mot de passe : </label> 
        <input type='password' name='userpwd' value='' /><?php if(isset($pwdErr)){ echo $pwdErr;} ?>
    </p>
    <p>
        <input type='submit' name='login' value='Connexion' />
    </p>
</form>
<?php
session_start();

if(array_key_exists('login', $_POST)){

    if (empty($_POST["email"])) {
        $errEmail = "Enter your email";
    } else {
        $email = trim($_POST["email"]);
        // check if e-mail address is well-formed
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
            $errEmail = "Invalid email "; 
        }
    }  

    if (empty($_POST['userpwd'])) {
        $pwdErr = "Entrer votre mot de passe";
    } else {
        $userpwd = sha1($_POST['userpwd']).$_POST['userpwd'];
    }

    if(empty($errEmail) && empty($pwdErr) ){
        include_once(BASE_URI."pdoconnect.inc.php");
        if(isset($pdo) ){
            try{
                $sql = 'SELECT userid, gender,nameuser FROM users WHERE users.email = :email AND users.userpwd = :userpwd';  
                $stmt = $pdo->prepare($sql);
                $stmt->bindValue(':email', $email);
                $stmt->bindValue(':userpwd', $userpwd);
                $stmt->execute();
                $rowscount = $stmt->rowCount();

                if(isset($rowscount) && $rowscount < 1 ){
                    $err = 'Mot de passe ou nom d\' utilisateur incorrect';
                } else {

                    foreach($result = $stmt->fetchAll() as $row){
                        $_SESSION['user_id'] = $row['userid'];
                        $_SESSION['gender'] = $row['gender'];
                        $_SESSION['nameuser'] = $row['nameuser'];
                    }  //end foreach

                    if (!empty($_SESSION['cur_url'])) {
                        header("Location:". $_SESSION['cur_url']);
                    }

                    //end of redirect header
                }

            } catch (PDOException $e) {
                $errors[] = "Eror in script".$e->getMessage();
            }

        }
    }//end of check error
}//end of post


电邮:

路况:


我认为这样的脚本很容易出错和出现问题。如果有人弄乱了请求头怎么办?相反,您应该将url保存在会话变量中,并在需要时使用它:

Sell.php

if (!isset($_SESSION["user_id"])) {
  header("Location: login.inc.php?location=". urlencode($_SERVER["REQUEST_URI"]));
  exit();
 } 

include_once("./includes/partheader.html");
<form action='' method='post'>

<p>
<label for='email'>Email : </label>
<input type='text' name='email' value='<?php if(isset($_POST['email'])){ echo $_POST['email'];} ?>' /><?php if(isset($errEmail) ){echo $errEmail;} ?>
</p>

 <p>
<label>Mot de passe : </label> 
 <input type='password' name='userpwd' value='' /><?php if(isset($pwdErr)){ echo $pwdErr;} ?>
 </p>

<p>
<input type="hidden" name="location" value="<?php if (isset($_GET["location"])) {
 echo htmlspecialchars($_GET["location"]);
} ?>">
</p>

 <p>
 <input type='submit' name='login' value='Connexion' />
 </p>
</form>
if(array_key_exists('login', $_POST)){
 $redirect = NULL;  
if($_POST['location'] != '') {
    $redirect = $_POST['location'];
}

    if (empty($_POST["email"])) {
    $errEmail = "Enter your email";
  } else {
    $email = trim($_POST["email"]);
    // check if e-mail address is well-formed
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
      $errEmail = "Invalid email "; 
    }
  }  


  if (empty($_POST['userpwd'])) {
    $pwdErr = "Entrer votre mot de passe";
 }
   else{
    $userpwd = sha1($_POST['userpwd']).$_POST['userpwd'];
   }

    if(empty($errEmail) && empty($pwdErr) ){
   include_once(BASE_URI."pdoconnect.inc.php");
  if(isset($pdo) ){
      try{
    $sql = 'SELECT userid, gender,nameuser FROM users WHERE users.email = :email AND users.userpwd = :userpwd';  
    $stmt = $pdo->prepare($sql);
    $stmt->bindValue(':email', $email);
    $stmt->bindValue(':userpwd', $userpwd);
    $stmt->execute();
    $rowscount = $stmt->rowCount();

    if(isset($rowscount) && $rowscount < 1 ){
    $err = 'Mot de passe ou nom d\' utilisateur incorrect';
  } 
    else{

    foreach($result = $stmt->fetchAll() as $row){
    $_SESSION['user_id'] = $row['userid'];
    $_SESSION['gender'] = $row['gender'];
    $_SESSION['nameuser'] = $row['nameuser'];
    }  //end foreach

    if (isset($redirect)) {
     header("Location:". $redirect);
    }

   //end of redirect header
 }

}catch (PDOException $e) {
    $errors[] = "Eror in script".$e->getMessage();
  }

    }
}//end of check error

}//end of post
<?php
session_start();

if (!empty($_SESSION["user_id"])) {
    $_SESSION['cur_url'] = $_SERVER["REQUEST_URI"];

    header("Location: login.inc.php");
    exit();
}

include_once("./includes/partheader.html");
<?php session_start(); ?>

<form action='' method='post' accept-charset='utf-8'>
    <p>
        <label for='email'>Email : </label>
        <input type='text' name='email' value='<?php if(isset($_POST['email'])){ echo $_POST['email'];} ?>' /><?php if(isset($errEmail) ){echo $errEmail;} ?>
    </p>

    <p>
        <label>Mot de passe : </label> 
        <input type='password' name='userpwd' value='' /><?php if(isset($pwdErr)){ echo $pwdErr;} ?>
    </p>
    <p>
        <input type='submit' name='login' value='Connexion' />
    </p>
</form>
<?php
session_start();

if(array_key_exists('login', $_POST)){

    if (empty($_POST["email"])) {
        $errEmail = "Enter your email";
    } else {
        $email = trim($_POST["email"]);
        // check if e-mail address is well-formed
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
            $errEmail = "Invalid email "; 
        }
    }  

    if (empty($_POST['userpwd'])) {
        $pwdErr = "Entrer votre mot de passe";
    } else {
        $userpwd = sha1($_POST['userpwd']).$_POST['userpwd'];
    }

    if(empty($errEmail) && empty($pwdErr) ){
        include_once(BASE_URI."pdoconnect.inc.php");
        if(isset($pdo) ){
            try{
                $sql = 'SELECT userid, gender,nameuser FROM users WHERE users.email = :email AND users.userpwd = :userpwd';  
                $stmt = $pdo->prepare($sql);
                $stmt->bindValue(':email', $email);
                $stmt->bindValue(':userpwd', $userpwd);
                $stmt->execute();
                $rowscount = $stmt->rowCount();

                if(isset($rowscount) && $rowscount < 1 ){
                    $err = 'Mot de passe ou nom d\' utilisateur incorrect';
                } else {

                    foreach($result = $stmt->fetchAll() as $row){
                        $_SESSION['user_id'] = $row['userid'];
                        $_SESSION['gender'] = $row['gender'];
                        $_SESSION['nameuser'] = $row['nameuser'];
                    }  //end foreach

                    if (!empty($_SESSION['cur_url'])) {
                        header("Location:". $_SESSION['cur_url']);
                    }

                    //end of redirect header
                }

            } catch (PDOException $e) {
                $errors[] = "Eror in script".$e->getMessage();
            }

        }
    }//end of check error
}//end of post


电邮:

路况:

login\u form.inc.php

if (!isset($_SESSION["user_id"])) {
  header("Location: login.inc.php?location=". urlencode($_SERVER["REQUEST_URI"]));
  exit();
 } 

include_once("./includes/partheader.html");
<form action='' method='post'>

<p>
<label for='email'>Email : </label>
<input type='text' name='email' value='<?php if(isset($_POST['email'])){ echo $_POST['email'];} ?>' /><?php if(isset($errEmail) ){echo $errEmail;} ?>
</p>

 <p>
<label>Mot de passe : </label> 
 <input type='password' name='userpwd' value='' /><?php if(isset($pwdErr)){ echo $pwdErr;} ?>
 </p>

<p>
<input type="hidden" name="location" value="<?php if (isset($_GET["location"])) {
 echo htmlspecialchars($_GET["location"]);
} ?>">
</p>

 <p>
 <input type='submit' name='login' value='Connexion' />
 </p>
</form>
if(array_key_exists('login', $_POST)){
 $redirect = NULL;  
if($_POST['location'] != '') {
    $redirect = $_POST['location'];
}

    if (empty($_POST["email"])) {
    $errEmail = "Enter your email";
  } else {
    $email = trim($_POST["email"]);
    // check if e-mail address is well-formed
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
      $errEmail = "Invalid email "; 
    }
  }  


  if (empty($_POST['userpwd'])) {
    $pwdErr = "Entrer votre mot de passe";
 }
   else{
    $userpwd = sha1($_POST['userpwd']).$_POST['userpwd'];
   }

    if(empty($errEmail) && empty($pwdErr) ){
   include_once(BASE_URI."pdoconnect.inc.php");
  if(isset($pdo) ){
      try{
    $sql = 'SELECT userid, gender,nameuser FROM users WHERE users.email = :email AND users.userpwd = :userpwd';  
    $stmt = $pdo->prepare($sql);
    $stmt->bindValue(':email', $email);
    $stmt->bindValue(':userpwd', $userpwd);
    $stmt->execute();
    $rowscount = $stmt->rowCount();

    if(isset($rowscount) && $rowscount < 1 ){
    $err = 'Mot de passe ou nom d\' utilisateur incorrect';
  } 
    else{

    foreach($result = $stmt->fetchAll() as $row){
    $_SESSION['user_id'] = $row['userid'];
    $_SESSION['gender'] = $row['gender'];
    $_SESSION['nameuser'] = $row['nameuser'];
    }  //end foreach

    if (isset($redirect)) {
     header("Location:". $redirect);
    }

   //end of redirect header
 }

}catch (PDOException $e) {
    $errors[] = "Eror in script".$e->getMessage();
  }

    }
}//end of check error

}//end of post
<?php
session_start();

if (!empty($_SESSION["user_id"])) {
    $_SESSION['cur_url'] = $_SERVER["REQUEST_URI"];

    header("Location: login.inc.php");
    exit();
}

include_once("./includes/partheader.html");
<?php session_start(); ?>

<form action='' method='post' accept-charset='utf-8'>
    <p>
        <label for='email'>Email : </label>
        <input type='text' name='email' value='<?php if(isset($_POST['email'])){ echo $_POST['email'];} ?>' /><?php if(isset($errEmail) ){echo $errEmail;} ?>
    </p>

    <p>
        <label>Mot de passe : </label> 
        <input type='password' name='userpwd' value='' /><?php if(isset($pwdErr)){ echo $pwdErr;} ?>
    </p>
    <p>
        <input type='submit' name='login' value='Connexion' />
    </p>
</form>
<?php
session_start();

if(array_key_exists('login', $_POST)){

    if (empty($_POST["email"])) {
        $errEmail = "Enter your email";
    } else {
        $email = trim($_POST["email"]);
        // check if e-mail address is well-formed
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
            $errEmail = "Invalid email "; 
        }
    }  

    if (empty($_POST['userpwd'])) {
        $pwdErr = "Entrer votre mot de passe";
    } else {
        $userpwd = sha1($_POST['userpwd']).$_POST['userpwd'];
    }

    if(empty($errEmail) && empty($pwdErr) ){
        include_once(BASE_URI."pdoconnect.inc.php");
        if(isset($pdo) ){
            try{
                $sql = 'SELECT userid, gender,nameuser FROM users WHERE users.email = :email AND users.userpwd = :userpwd';  
                $stmt = $pdo->prepare($sql);
                $stmt->bindValue(':email', $email);
                $stmt->bindValue(':userpwd', $userpwd);
                $stmt->execute();
                $rowscount = $stmt->rowCount();

                if(isset($rowscount) && $rowscount < 1 ){
                    $err = 'Mot de passe ou nom d\' utilisateur incorrect';
                } else {

                    foreach($result = $stmt->fetchAll() as $row){
                        $_SESSION['user_id'] = $row['userid'];
                        $_SESSION['gender'] = $row['gender'];
                        $_SESSION['nameuser'] = $row['nameuser'];
                    }  //end foreach

                    if (!empty($_SESSION['cur_url'])) {
                        header("Location:". $_SESSION['cur_url']);
                    }

                    //end of redirect header
                }

            } catch (PDOException $e) {
                $errors[] = "Eror in script".$e->getMessage();
            }

        }
    }//end of check error
}//end of post

@icecub…我已经试过你的技巧了…但还是不起作用