2015-06-15 164 views
0

我試圖從客戶端發送數據到服務器。客戶端運行一個簡單的使用'request'庫的python腳本。服務器端由使用$ _POST的另一個簡單的php腳本組成。通過http post發送數據從客戶端到服務器

我需要網頁進行更新,具體取決於通過客戶端程序提供的數據。

下面是python腳本:

import requests 

url = "http://xxxxxxx.com/php_files/text_data.php" 

d = {'test': 'It works!'} 
r = requests.post(url, data = d) 
print r.status_code, r.reason 
print r.text 

這裏是PHP代碼: '!它的工作原理'

<!DOCTYPE = html> 
<html> 
    <head> 
     <h1> 
      <?php 

       $txt = $_POST['test']; 
       echo $txt; 
      ?> 
     </h1> 
    </head> 
</html> 

我需要的PHP頁面顯示在h1上,因爲這是正在傳遞的值。 但由於某種原因,它不顯示任何內容

r.text使用'It works!'打印所需的格式。在< h1>標記中,但同樣不會顯示在實際網站中。

我也試過var_dump($ txt)。它給了我一個NULL值。

任何幫助將不勝感激。

+0

中建議的方法之一如何在您訪問時將其發佈到網站這一頁? –

+0

通常你會以某種方式存儲你收到的東西(在數據庫或某種文件中......),這樣你可以稍後檢索數據以便隨時顯示...... –

+0

我正在運行python腳本,並期待數據將被髮布到網頁上。我的目標是將數據從Python腳本傳輸到Web服務器。 ....所以根據你我應該存儲$ txt文本文件或MySql數據庫中的PHP腳本? – Specas

回答

1

在我看來,你要求一個單獨的實例來更新你的當前實例。您在瀏覽器中訪問的PHP對python腳本一無所知。它根本不調用python腳本。在第二個會話中,python腳本調用PHP並接收正確的響應。

這些是兩個不同的會話,除非它調用它,否則瀏覽器窗口將不會從python腳本中看到任何內容。

這裏是正在發生的事情:

會議1

    本地機器上
  1. 運行Python腳本
  2. Python會自動調用PHP服務器上
  3. PHP返回輸出到本地機器
  4. Python的打印結果

會話2

  1. 本地計算機上打開Web瀏覽器
  2. 的Web瀏覽器調用PHP服務器上
  3. PHP將結果返回給Web瀏覽器
  4. Web瀏覽器中顯示的結果

沒有持久性在第一屆會議上保存第二屆會議的信息。他們是兩個完全獨立的行動。更典型的方法是在服務器上設置一個數據庫(或者只是快速和骯髒的文本文件)以保存信息。 您需要創建第二個PHP文件以將信息保存到服務器上的數據庫或文本文件。然後您需要修改以前的PHP文件以從數據庫或文本文件中讀取信息。會議將按照以下方式進行。

會議1

    本地機器上
  1. 運行Python腳本
  2. Python的服務器上調用PHP(新文件)
  3. PHP寫的python腳本到數據庫(或文本文件)
  4. PHP信息返回狀態消息到本地機器
  5. Python打印狀態

會議2

  1. 本地計算機上打開Web瀏覽器
  2. Web瀏覽器在服務器上調用PHP(原始文件)
  3. PHP讀取數據庫(或文本文件)所需的信息
  4. PHP顯示信息,請閱讀從Web瀏覽器服務器
  5. Web瀏覽器中顯示的結果

如果你真的想用重在PHP中沒有數據庫或文本文件的情況下,您需要將python腳本上傳到您的服務器,並使用Calling Python in PHP

+0

我想要做的是先在我的電腦上運行python腳本。我希望它發送一個請求到PHP,然後執行php的服務器顯示我發送到網頁的數據。我不太確定這是否是正確的做法。任何其他建議都會有所幫助。 – Specas

+0

不,你沒有持久性,請看我最新的答案,你應該如何解決問題。 – dstudeba

+0

看起來好像你錯過了一些關於互聯網和網頁特別功能的基本概念......有很多種方法來創建持久性。 (假設你真的需要持久性......你是否試圖創建某種類型的套接字服務器來向每一個套接字服務器廣播?) –

相關問題