2012-10-15 51 views
1

我想驗證我的NSIS安裝程序的用戶密碼,所以我發送到我的編碼PHP腳本來比較值。它似乎並沒有與php腳本進行交互。我相信我的問題可能在PHP中。如何從我的安裝程序將數據發送到php文件?

<?php 
include ("Encryption.php"); 
$data = $_POST; 
$a = new encryption_class(); 
$encryption = //encryption code; 
?> 

<html><head> 

<title> - </title></head> 
<body> 
    <? echo $data ?> <br> 
    <? echo $encryption;?> 

</body> 
</html> 

我覺得我失去了一些東西,當我嘗試從post安裝程序發送信息到php腳本。

對不起......這裏是NSIS呼叫

Section 
    SetOutPath $DOCUMENTS/ 
    StrCpy $1 "userpass" 
    #text files for reading and writing with the post command 
    File "pass.txt" 
    File "encrypt.txt" 

    #write the user variable to the pass.txt file 
    ClearErrors 
    FileOpen $0 pass.txt w 
    IfErrors done 
    FileWrite $0 "$1" 
    FileClose $0 
done: 
    FileOpen $3 encrypt.txt w 
    inetc::post $0 /FILE "http://mywebserver/installer_get_pass.php" $3 /END 

SectionEnd 

我還沒有完成的劇本,但是當我打開,其中輸出應寫入txt文件是空白

+0

告訴我們'$ _POST'中有什麼。向我們展示您如何從您的NSIS腳本完成您的文章。沒有這些基本信息,你的問題是完全無法解決的。 – Brad

+0

'$ _POST'是一個數組。迴應它只會打印'array',或者如果錯誤報告已啓用並配置爲顯示通知,您將獲得'Notice:Array to string conversion'。你需要迭代數組並打印任何你需要的東西 – Bogdan

+0

使用'var_dump'來真正看到'$ _POST'中的內容。你可能也想檢查'$ _FILES'。 – slugonamission

回答

0

inetc::post $0經過一(關閉!)文件句柄到插件。參數$3類似的問題,請嘗試使用路徑:

... 
done: 
StrCpy $0 "$documens\pass.txt" 
StrCpy $3 "$documens\encoded.txt" 
inetc::post $0 /FILE "http://mywebserver/installer_get_pass.php" $3 /END 
+0

謝謝你的幫助。至於nsis現在從php文件接收數據。不幸的是,php文件沒有獲取數據並將其設置在$ _POST數組中。 – spkelly86

+0

也許你必須在$ 0之前放置/ FILE開關,或者可能嘗試不使用/ FILE,並且只是先使用普通字符串... – Anders

+0

我試過了,但它使得它不會將任何內容打印到文本文件中。是否有可能在php中缺少一個命令來接收來自程序的發佈數據? – spkelly86

相關問題