2016-09-26 161 views
0

如何登录并保持当前页面?采用这种结构无论我正在访问该页面,当我登录,我总是降落在主页上:这里是从配置,登录和main.php文件中的代码:登录重定向PHP

MGconfig文件

<?php 

$user = 'root'; 
$pwd = ''; 
$server = 'localhost'; 
$bdschema = 'MG'; 

// mysql(i) form improved 
$connection = mysqli_connect($server,$user, $pwd, $bdschema); 

if (mysqli_connect_error()) { 
    echo "Error to DB ..." .mysqli_error($connection); 
    exit; 
}; 

mysqli_set_charset($connection, "utf8"); 
//print_r($connection); 


?> 

的login.php(login文件)

<?php 

session_start(); 

$error=""; 
$successMessage=""; 

if ($_POST){ 
    if(!isset($_POST["salada"]) || $_POST["salada"]===""){ 
    $error = "PHP: An email is required <br>"; 
} 


//If some field is missing, there's an error 

if(!isset($_POST["arroz"]) || $_POST["arroz"]===""){ 
    $error .= "PHP: A password is required"; 
} 

if ($error !=""){ 
    $error = '<div class="error-login">'.$error.'</div>'; 

    //try to do login 

}else { 

    //connect to DB 
    require("MGconfig.php"); 

    //read parameters (fields) 

    $email = mysqli_real_escape_string($connection, $_POST["salada"]); 
    $pwd = md5(mysqli_real_escape_string($connection, $_POST["arroz"])); 

    //var_dump($email.$pwd); 

    $result = mysqli_query($connection, "select name, id from users where email = '".$email."' and password = '".$pwd."'"); 

    // alerta erro 
    if (mysqli_num_rows($result) !==1){ 
     $error='<div class="error-login">PHP: Invalid email or password</div>'; 
     header("Location:index.php?error=".$error); 

    }else { 

      $nome = mysqli_fetch_row($result); 

      $_SESSION["name"] = $nome[0]; 
      $_SESSION["id"]=$nome[1]; 

      header ("Location: main.php"); 
      } 
      } 


     } 

     ?> 

MAIN.PHP FILE

 <?php 
     session_start(); 
     ?> 

     <?php 

     include "menu.php"; 


     if(isset($_GET["area"])){ 
     $destino = $_GET["area"]; 
     } else { 
     $destino = "index"; 
     } 

     switch($destino){ 

     case "formsubmit":{ 
      include("formsubmit.php"); 
      } break; 
     case "index": { 
      include("inicio.php"); 
     } break;  

     case "videos": { 
      include("videos.php"); 
     } break; 

     case "FAQs": { 
      include("FAQs.php"); 
     } break; 

     case "quemsomos": { 
      include("quemsomos.php"); 
     } break; 

      case "form": { 
      include("form.php"); 
     } break;        

     default: { 
      include("inicio.php"); 
     } break; 

     } 



     ?> 
     </div> 

     <div> 

    <?php 

    include "footer.php"; 

     ?> 
    </div> 
+1

最简单的方法TS添加查询参数链接,将您带到登录页面,例如'Login',然后将该查询参数用于您的位置标题。 – Scott

+0

感谢您的答案,但它不工作 - 它说“对象没有找到...”在PHP中的一种新的 – icenine

+0

当你改变你的登录链接 - 改变'header(“Location:main.php”);''标题(“位置:main.php面积=?” $ _GET [“重定向”);' – Scott

回答

1

斯科特和MounirOnGithub:这个工作(login文件)

 header ("Location: main.php?area=".$_POST["area"]); 
0

我看到你有一个include('form.php');在你的main.php文件中。

试图将财产行为添加到您的形式是这样的:

<form action="your redirect"> 
    <!-- your code here --> 
</form> 
+0

我的当前

是登录文件本身,所以程序读取这个文件,这是我的地方有标题位置(main.php)...和主要是你在哪里找到一个指定区域的开关...我没有得到它 – icenine

+0

也许这是因为你做了'Login'我看到它会重定向到inicio。 php'在你的'main.p hp',正如你在最近的评论中所说的 – MounirOnGithub

+0

我已经尝试过基于你们的建议的每种可能的组合......我仍然获得404页面...感谢anyaway,干杯 – icenine