如何在PHP頁面之間傳遞數據?



Answers

您可以嘗試使用$_REQUEST而不是$_GET$_POST - 它適用於兩者。 另外,如果你在第2頁的表單中放入了<input type='hidden' ,那麼你的變量應該是正確的。

Question

簡而言之,“page1.php”中有一個由HTML表單組成的計算器,然後PHP代碼匯總輸入並顯示總價格。 在價格下面,它還顯示一個鏈接到“page2.php”,其中包含一個HTML表單,他們可以在其中輸入他們的聯繫信息。 在提交表格時,他們在定價計算器中的“page1.php”上做出的選擇以及“page2.php”上的聯繫信息通過電子郵件發送給我,並且被重定向到主頁。

在提交給我的電子郵件中,我收到了“page2.php”的聯繫信息,但是我沒有收到“page1.php”中的任何內容,所以變量沒有正確傳遞。 除了每頁上的PHP之外,我還在“page2.php”的HTML表單中使用隱藏值來回顯“page1.php”中HTML表單中輸入的數據。 我知道我的一個問題是,當我的表單是“post”時,我有幾個$_GET字段。

但是,當我改變它,使一切都$_POST ,計算器不再工作。 我試圖把這個完全與其他人建議的不同的代碼片段。 “page1.php”上的表格有13個字段,分別命名為“one” - “13”。 $ total顯示1-13的值。

<?php
  $submit = $_GET['submit'];
  if($submit == "true")
  {
    $total = ($_POST['one'] + $_POST['two'] + $_POST['three'] + $_POST['four']  + 
    $_POST['five'] + $_POST['six'] + $_POST['seven'] + $_POST['eight']+ $_POST['nine'] + 
    $_POST['ten']+ $_POST['eleven'] + $_POST['twelve']+ $_POST['thirteen']); 
    echo  " Your Price is \$ " .number_format ($total, 2, '.', ','). "<BR>";
    echo ('">Get Your Project Started</a>');
  }
?>

第二種形式使用隱藏值來呼應page1.php中的信息,並且還有三個名為“name”,“email”和“details”的字段。

<?php
  $to = "jessica@designs.com";
  $message = "Pages:\t$_POST[one]\n";
  $message .= "Pages:\t$_POST[two]\n";
  $message .= "Pages:\t$_POST[three]\n";
  $message .= "Ecommerce:\t$_POST[four]\n";
  $message .= "No Ecommerce:\t$_POST[five]\n";
  $message .= "CMS:\t$_POST[six]\n";
  $message .= "No CMS:\t$_POST[seven]\n";
  $message .= "Audio or Video:\t$_POST[eight]\n";
  $message .= "Flash Intro:\t$_POST[nine]\n";
  $message .= "Image Gallery:\t$_POST[ten]\n";
  $message .= "Graphic Design or Logo:\t$_POST[eleven]\n";
  $message .= "Copy:\t$_POST[twelve]\n";
  $message .= "Images:\t$_POST[thirteen]\n";
  $message .= "Price Total:\t$_POST[total]\n";
  $message .= "Name:\t$_POST[name]\n";
  $message .= "Email:\t$_POST[email]\n";
  $message .= "\n";
  $message .= "\n";
  $message .= "Details:\t$_POST[details]\n";
  mail($to, $subject, $message, $headers) ;
  }
?>

那麼把“page1.php”和“page2.php”放在什麼位置是正確的PHP呢? 對不起,代碼是如此混亂,如果任何人都可以指向正確的方向,這將是偉大的。




這取決於你的HTML formmethod屬性如何將變量傳遞給你的PHP腳本。

在這種情況下,聽起來好像page1.php沒有任何副作用,只是傳遞值,所以page1.php上的page1.php應該使用method=get ,而讀取這些字段的page2.php的代碼可以找到它們在$_GET

page2.php上的Submit按鈕(大概)在服務器端確實有副作用,所以它應該使用method=post ,你可以從服務器端的$_POST讀回。

另外,填寫第一頁後,看看page2.php的HTML源代碼,看看值是否正確傳遞。






Links