我在我的網站上託管了一個MySql數據庫,其表名爲UsrLic 如果有人想購買我的軟件,必須註冊並輸入他/她的生成機器密鑰(+用戶名,電子郵件等) 。如何讓用戶在線註冊我的產品?
所以我的問題是:
我想這個過程從我的軟件自動完成,怎麼這個過程會是什麼? 我應該直接從我的軟件連接並更新我的數據庫(這意味着我必須將所有數據庫連接參數保存在其中*我的數據庫用戶名,密碼,服務器*,然後使用ADO或MyDac連接到此數據庫?如果是如何安全是這個過程?
或任何其他建議。
我在我的網站上託管了一個MySql數據庫,其表名爲UsrLic 如果有人想購買我的軟件,必須註冊並輸入他/她的生成機器密鑰(+用戶名,電子郵件等) 。如何讓用戶在線註冊我的產品?
所以我的問題是:
我想這個過程從我的軟件自動完成,怎麼這個過程會是什麼? 我應該直接從我的軟件連接並更新我的數據庫(這意味着我必須將所有數據庫連接參數保存在其中*我的數據庫用戶名,密碼,服務器*,然後使用ADO或MyDac連接到此數據庫?如果是如何安全是這個過程?
或任何其他建議。
我建議創建在PHP你的網站的API,並調用從德爾福的API。
這樣一來,該數據庫只適用於您的Web服務器而不是客戶端應用程序,事實上,您應該在本地主機或私有IP上運行數據庫,以便只有同一物理ical網絡可以達到它。
我已經實現了這一點,並在我們說話時再次實現它。
PHP
創建一個名爲register_config.php一個新的文件。在這個文件中,設置你的MySQL連接信息。
創建一個名爲register.php的文件。在這個文件中,把你的註冊功能。從這個文件中,包含'register_config.php'。你將傳遞參數給你在這裏創建的函數,他們將讀取和寫入你的數據庫。
創建一個名爲register_api.php的文件。從這個文件中,包含'register.php'。在這裏,您將處理從客戶端應用程序發送的POST或GET變量,調用register.php中的函數,並通過HTTP將結果返回給客戶端。你將不得不研究連接和查詢MySQL數據庫。 W3Schools tutorials會讓你很快做到這一點。
例如:
你的Delphi程序調用https://mysite/register_api.php早報(),併發送以下值:
name=Marcus
[email protected]
這裏怎麼register_api.php的開始可能看起來'S:
// Our actual database and registration functions are in this library
include 'register.php';
// These are the name value pairs sent via POST from the client
$name = $_POST['name'];
$email = $_POST['email'];
// Sanitize and validate the input here...
// Register them in the DB by calling my function in register.php
if registerBuyer($name, $email) {
// Let them know we succeeded
echo "OK";
} else {
// Let them know we failed
echo "ERROR";
}
Delphi
使用Indy的TIdHTTP組件及其Post()或Get()方法將數據發佈到網站上的register_api.php。
您將從API獲取文本回復。
保持簡單。
安全
所有驗證應在服務器(API)來完成。服務器必須是守門人。
清理所有輸入API從用戶(客戶端)調用任何功能,特別是查詢之前。
如果您使用的共享網絡託管,確保register.php和register_config.php並非所有人可讀。
如果您傳遞敏感信息,這聽起來像你,你應該叫德爾福註冊API函數通過HTTPS。 HTTPS提供端到端保護,因此沒有人可以嗅探到從線路發送的數據。
只需聯播一TIdSSLIOHandlerSocketOpenSSL組件添加到您TIdHTTP組件,你是好去,減去任何證書驗證。
使用SSL組件的OnVerifyPeer事件來寫自己的證書驗證方法。這個很重要。如果您未驗證服務器端證書,則其他站點可能會冒充DNS中毒,並從您的用戶而不是您收集數據。雖然這很重要,但不要讓這讓你感到擔憂,因爲它需要更多的理解。在將來的版本中添加這個。
爲什麼不使用例如分享它?他們還處理購買過程(我不明白你會怎麼做自己..),並讓你通過delphi應用程序創建一個註冊碼。
或者不在PHP中,但是還是一個API。也許你可以在Delphi中構建一個web服務? – GolezTrol
能否請你解釋一下,或者只是一個小樣本,這樣我就可以得到一個如何操作 – randydom
謝謝馬庫斯亞當斯,你可以給我一個樣品! – randydom