2011-11-20 75 views
4

我正在爲一個使用PHP編寫的學校項目工作幾周,而且我被卡住了。GET表單方法不會附加參數

我使用我的結構的網頁的index.php?頁= ....這裏頁可能是家庭,遊戲,公司簡介,聯繫等

現在我在index.php?page=game,我想用傳送一個帶有GET方法的表單,如game_name,created_by和stage_paused。問題出在這裏,因爲當我按提交按鈕時,我失去了我的"page=game"參數,類似於index.php?game_name=...&created_by=....,並且我不再擁有我的page = game,並且默認情況下我的腳本檢查頁面參數,如果不是,則會渲染主頁頁。

我檢查了W3標準,他們說GET方法應該用表單上的action =""指定的表單參數APPEND我的表單參數,但在我的情況下我失去了我的頁面參數。

我不明白爲什麼當我提交表單時它不記得我當前的參數。

非常感謝您的幫助和對我英語不好的抱歉。

謝謝!

+0

可能重複[提交與全面的行動路徑GET方法的HTML表單(http://stackoverflow.com/questions/2617592/提交-html-form-with-get-method-with-full-action-path) - 你沒有正確檢查w3標準。它不會附加獲取參數,它會刪除所有,但將它們從表單輸入中取出並僅從action屬性獲取基本URI(不包含query-info部分)。 – hakre

+0

http://www.w3.org/TR/html4/interact/forms.html#submit-format - 另一個可能的重複:[提交表單替換頁面所需的常量GET信息](http:// stackoverflow。 com/q/1558069/367456) – hakre

回答

3

一個簡單的隱藏輸入元素應該做的伎倆:

<input type="hidden" name="page" value="<?php echo $_GET['page']; ?>"> 

這樣,通過URL提供的頁面參數也被認爲是表單的一部分,因此追加到表單操作URL。

2

您需要添加一個隱藏字段頁:

<input type="hidden" name="page" value="game" /> 

你也可以改變窗體的方法來POST和頁面添加到操作:

<form action="index.php?page=game" method="POST"> 
4

添加頁面參數或者:

  1. <form>動作網址,或
  2. <form>作爲隱藏<input>元素,像這樣:

<input type="hidden" name="page" value="<?= $_GET['page'] ?>" />

+2

回聲一個'$ _GET'變量就像引入了嚴重的XSS漏洞。 – jchavannes