PHP URL重定向使用标头

时间:2015-02-07 06:07:58

标签: php html mysql dreamweaver url-redirection

我正在尝试使用一个 update_form.php 页面来处理网站的3个独立但相同的区域。例如:

我有3个数据页: data1.php, data2.php, data3.php 。所有链接到update_form.php。提交update_form.php并将新数据存储在数据库中后,我将使用哪些代码重定向回相应的数据页。

如果我正在更新 data1.php ,在我提交更新表单后,我想返回该页面。需要使用 PHP和MYSQL来执行此操作。感谢任何帮助。

以下是我与Dreamweaver合作的代码。你能帮我编辑做我上面提到的。目前,无论我输入何种表单,我都只能重定向到 data1.php

$updateGoTo = "data1.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
    $updateGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $updateGoTo));
  }

2 个答案:

答案 0 :(得分:0)

一种方法是使用Ajax。您只需将数据发布到update_form.php并相应地更新页面。你不必处理重定向。

例如,使用jQuery,它将类似于:

$.post("update_form.php", { field1: "value1", field2: "value2" })
  .done(function(data) {
    // update your page here
  });

如果您不想走这条路线,您可以做的就是将页面的网址与其他表格参数一起传递。您可以将其添加为表单中的隐藏输入。

<form action="update_form.php" method="POST">
  <input type="hidden" value="[URL]" name="redirect_url">
  <input type="text" value="OTHER VALUE">
  ...
</form>

然后在您的服务器上,您可以在$ _POST [&#39; redirect_url&#39;]中检索网址并执行以下操作:

header('Location: ' . $_POST['redirect_url']);

只需确保清理redirect_url,否则这可能是一个安全漏洞:)

答案 1 :(得分:-1)

使用php / mysql只需使用header();,如下所示

示例采取data1.php具有以下代码

 <?php session_start();  // session value to check the return msg from update_form.php
  if(!empty($_SESSION['msg']){ 
      echo  '<div style="">'.$_SESSION['msg'].'</div>;     
       unset($_SESSION['msg']); // destroy msg after being visible to user 
     }  ?>
<html>
<form action="update_form.php">
  <input type="text" name="FullName" pattern="" />
  <input type="submit" value="update" />
 </html>

然后在update_form.php中,您将拥有以下代码。

<?php  session_start();
  //Run your DB connection, eg i use mysqli

if(!empty($_POST)){

   $name = mysqli_real_escape_string($link,$_POST['FullName'];
   //run your update query successful
    $msg = "Data updated successfully..";
      }
 else{ 
    $msg = "Updation of data encounter error plz try again..";
         }
 $_SESSION['msg'] = $msg; // variable to return msg to user in other page 
 header("location: data1.php"); //this functin require page reload, if you know jquery is the best opt for this