2015-02-07 88 views
0

我試圖使用一個update_form.php頁面來處理3個單獨但相同的站點區域。例如:使用標題PHP URL重定向

我有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)); 
    } 

回答

0

一種方式做這將是使用Ajax。您只需將您的數據發佈到update_form.php並相應地更新頁面。你將不必處理重定向。

例如,用jQuery這將是與此類似:

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

如果你不想去的路線,你可以做的是通過網頁的URL與其他形式沿PARAMS。您可以將其添加爲表單中的隱藏輸入。

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

那麼你的服務器上,您可以檢索在$ _ POST [「REDIRECT_URL」]的URL,做:

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

只要確保消毒REDIRECT_URL或者這可能是一個安全孔:)

+0

感謝您的信息。每個數據頁面已經傳遞了一個隱藏的id值來更新該特定的數據庫記錄。如果我通過另一個隱藏的價值會有所作爲嗎?除了已經傳遞的ID之外,這是否會在URL欄中引用? – CAM308 2015-02-07 06:41:38

+0

唯一的區別將是$ _GET或$ _POST參數中可用的附加值。如果你已經傳遞了一個隱藏的ID,你應該已經使用$ _POST ['id']或類似的東西在服務器上檢索它了。順便說一句,確保在你的表單中添加method =「POST」。這樣,參數將在請求正文中發送,而不是通過URL發送。這是推薦的方法。 – Adrien 2015-02-07 10:47:44

-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 
+0

你能解釋一下你的投票嗎? – 2015-02-07 07:16:56