2013-05-08 45 views
3

你好,我希望這將是一個容易解決。通POST數據到兩個PHP文件

就乾脆把它,我要做到以下幾點:

1)有一個表單,用戶輸入數據(estimate.html),並提交給validate.php

2)從validate.php ,檢查POST數據,如果一切正常,用戶按下提交按鈕,然後將相同的確切POST數據發送到submission.php。

有沒有簡單的方法來從我的兩個PHP文件發送從原來的形式完全相同的POST數據? (希望沒有會話)

estimate.html -> validate.php -> submission.php 

我現在所擁有的:

我有,它可以具有可以傳遞到validate.php領域的未知量的形式。

我已經驗證了發送到validate.php POST數據的所有條目。如果所有數據都成功驗證,那麼不是將所有數據插入到隱藏字段中,而是將數據重新提交給submission.php,我可以重新發送發送了validate.php的POST嗎?

+0

什麼是您的validate.php有..另一種形式?..你可以隨時將數據輸出,比採取的數據,並再次發佈..或使用過程中的會議..還那麼你的提交做不同比驗證..如果你可以,你應該始終在一個文件中實現這兩個功能。 – Dinesh 2013-05-08 04:37:51

+0

您可以使用會話成功完成。您只需要將發佈數據保存到會話變量並重定向到submission.php – Licson 2013-05-08 04:39:00

+1

我認爲ajax是最好的選擇,對validate.php請求使用回調完成 – Shin 2013-05-08 04:39:56

回答

1

是的!僅使用會話或隱藏字段。我想..

您還可以使用數組中隱藏着減少元件的尺寸。

<input type="hidden" value="array('username'=>'user','password'=>'password');"> 

類似的東西。

0

你既可以當它在validate.php

$_SESSION['username'] = $_POST['username']; 
$_SESSION['password'] = $_POST['password']; 

這會然後作出提供該變量的任何後續的PHP頁面運行在該屆會議上通過客戶端,直到接收到移動數據公佈至會話超全局它是未設置的。

或者您可以使用隱藏的輸入形式包含提交按鈕

<input type="hidden" name="username" value="<?php echo $_POST['username']; ?>"> 
<input type="hidden" name="password" value="<?php echo $_POST['password']; ?>"> 
<input type="button" ... > 
etc 

這取決於你想這個數據是可用的範圍。

您也可以建立在確認頁到最後一頁,你只需重新提交相同的頁面與一個額外的確認變量後斷言,你可以檢查並着手如果它是。

0

我看到了確保張貼到submission.php數據兩種方式是一樣的張貼到validate.php

  1. 可以使用PHP從validate.php內張貼的數據submission.php

    $data = file_get_contents('php://input'); 
    
    $options = array('http' => 
        array(
         'method' => 'POST', 
         'content' => $data, 
        ) 
    ); 
    
    $context = stream_context_create($options); 
    $result = file_get_contents('submission.php', false, $context); 
    
  2. 您可以將已發佈數據的散列返回給客戶端,將附加到POST的submission.php。散列應包含發佈的數據和由validate.phpsubmission.php共享的secred密鑰。後者應該重新計算輸入數據的哈希以檢查數據是否有效。

相關問題