2013-03-13 126 views
2

我無法獲取從我的php文件中的html表單發送的$ _POST ['name']值。我見過很多類似的問題,但沒有任何幫助。我有很多內容,所以我認爲這是一個範圍問題,但我無法弄清楚。

的index.php

print_r($_POST); //Returns nothing, tried other ways too 

//lot's of variables being defined 

include 'sql_data_handlers.php'; 
//instantiating some things 

sql_data_handlers.php

//some functions retrieving data from sql db and finally: 
include($DOCUMENT_ROOT . "page.html"); 

page.html中

//html stuff 
<?php 
//Some conditions 
include($DOCUMENT_ROOT . "comment_form.html"); 
?> 

comment_form.html

<form action="index.php" name="comment_form" id="comment_form" method="post"> 
    <input type="text" name="name" value="Anonymous" required><br> 
    //lot's of inputs 
    <input type="submit"> 
</form> 

我曾經有action="send_comment.php"但我意識到它可以變成一個函數,所以我CTRL + C和適於send_comments.php到功能上sql_data_handlers.php。問題是,現在我無法獲得index.php上的$_POST值用於sql_data_handlers.php(包含在index.php)中的功能。

如果可能的話,我會用action="my_php_function_from_data_handlers.php($args)",但我想不是。順便說一句,我已經試過action=""。這可能看起來很亂,但這樣我只需要一個.html的網站佈局,頁面在sql上,而.php文件完成所有工作。

所有文件的完整源(相當大,仍然工作就可以了): http://pastebin.com/2nRuCpNx

+2

您是否嘗試將.html文件的擴展名更改爲.php? – 2013-03-13 09:11:09

+1

如果您發佈表單並使用Firebug/F12/Developer Tools檢查請求,您能看到POST數據嗎? – Kaivosukeltaja 2013-03-13 09:13:14

+0

凱伊是正確的,在html文件(comment_form.html)中你使用php代碼,這將無法正常工作。 – 2013-03-13 09:15:25

回答

4

確保你沒有任何重定向,因爲你使用的index.php來保存數據,你」可能重新加載頁面以顯示更新的評論。如果您正在重新加載,print_r()將不會打印$ _POST數據。

+0

就是這樣,.php腳本刷新頁面,一旦提交按鈕被點擊,所以$ _POST變量丟失 - - 陣列實際上正在生成,我只是忽略了它。謝謝。 – Alex 2013-03-13 14:55:49

+1

你節省了我的一天。我有一個重寫規則,它將所有的'http:// my_domain.com'發送到'http:// www.my_domain.com',並且在這個過程中丟失了_POST數據。也許我的評論可以幫助在.htaccess文件中使用重寫規則的人。 – DudeOnRock 2016-03-12 02:53:56

+0

@DudeOnRock很高興能幫到你:) – 2016-08-09 20:35:31

0

嘗試輸入name屬性的值更改爲東西從「名」不同。一些配置有問題,特別是wordpress。

例如:

<input type="text" name="user_name" value="Anonymous" required> 
+0

還有其他輸入與其他名稱,他們都沒有被髮送。 – Alex 2013-03-13 09:26:33

+0

@ user117893我明白了,但我仍然知道它會引起麻煩。嘗試沒有害處,對吧? – 2013-03-13 11:39:45

0

你不介意改變你的

的.html文件名.PHP

你的代碼運行在我的本地服務器,因爲有時差異在於你的網絡服務器是如何配置的。

在Web服務器上運行時,最好使用.PHP在文件中

+0

我已經做了,結果是一樣的 - 我無法獲得$ _POST值。 – Alex 2013-03-13 09:34:13

+0

你在網絡服務器上運行你的代碼嗎? – 2013-03-13 09:39:16

+0

是的。正如我所說,$ _POST請求之前發送給send_comments.php。 prolem是index.php由於某種原因沒有得到它們。 – Alex 2013-03-13 09:41:24