2014-02-15 3 views
0

MySQL 데이터베이스를 사용하여 사용자가 내 사이트에서 프로그램을 구입했는지 확인하려고합니다. 나는 데이터베이스를 사용할 필요가 없지만 이것이 달성 될 수 있지만 이것이 가장 쉬운 방법이다. (구매 검증 시스템을 달성하기위한 다른 방법에 대한 제안은 크게 평가된다.)HTTP 데이터베이스 편집 요청

나의 현재 알고리즘 :

  1. 사용자는
  2. 사용자가 서버에 의해 고유 한 무작위 16 진수 문자열이 주어집니다 (WooCommerce에서 제공하는 다양한 지불 게이트웨이 중 하나를 통해) 프로그램에 대한 지불 (이 문자열은 또한 데이터베이스에 저장된 키/값 쌍으로 문자열 : 0, 0은 사용되지 않음을 나타냅니다.
  3. 사용자는 프로그램에 문자열을 입력하고 (필수) 문자열을 포함하는 HTTP 요청을 서버에 보냅니다. 이 요청은 서버에 데이터베이스에서 주어진 문자열을 찾도록 지시합니다. 발견되면 값을 1 (사용됨)으로 변경하십시오. 값이 이미 1이거나 문자열을 찾을 수없는 경우 사용자에게 오류 보고서를 보냅니다 (프로그램이 작동하지 않음).
  4. 모든 것이 올바르게 작동하면 사용자는 이제 프로그램을 사용할 수 있습니다.

서버 만 데이터베이스를 편집 할 수 있기 때문에 HTTP 요청을 사용해야합니다. 내 웹 사이트는 공유 호스팅을 사용하므로 로컬 사용자의 데이터베이스를 직접 수정할 수 없습니다.

이전에는 데이터베이스 작업을 해 본 적이 없지만 INSERT, CREATE TABLE, UPDATESELECT 명령을 사용해야한다는 것을 알고 있습니다. 또한 HTTP 요청을 직접 처리 한 적이 없습니다.

HTTP 요청은 어떻게 보이며 서버에서 어떻게 처리해야합니까? 데이터베이스를 작동하는 방법에 대한 다른 정보도 감사하겠습니다.

참고 : PHP (서버 측)와 Python (클라이언트 측)을 사용할 것입니다.

답변

1

귀하의 HTML이

<html> 
<body> 

<form action="validate.php" method="post"> 
Name: <input type="text" name="name"><br> 
unique string: <input type="text" name="uniqueString"><br> 
<input type="submit"> 
</form> 

</body> 
</html> 

과 같을 것이다 그리고 서버 측에서, 당신의 validate.php은 다음과 같이 보일 것이다.

<?php 


    $name = $_POST["name"]; 
    $unqString = $_POST["uniqueString"]; 

//connect to your DB 
mysql_connect("your.hostaddress.com", "username", "password") or die(mysql_error()); 
mysql_select_db("Database_Name") or die(mysql_error()); 
$data = mysql_query("SELECT uniqueStringUsedFlag FROM <stringTableName> WHERE uniqueString='.$unqString.'") 
or die(mysql_error()); 

while($info = mysql_fetch_array($data)) { 
    if $info['uniqueStringUsedFlag']==1{ 
    return 'Error Message'; 
}else 
{ 

mysql_query("update <stringTableName> set uniqueStringUsedFlag =1 where uniqueString='.$unqString.'"); 

return 'Success'; 

} 
} 

//if the control comes here, it means the record was not found. 
return 'Error message' 


?> 

< stringTableName>을 실제 테이블 이름으로 바꾸십시오. 또한 열과도 동일하게하십시오. 추신 :이 코드는 테스트되지 않았습니다. 그리고 적절한 검증 등을하십시오. 여기에 포함시키지 마십시오. 이것이 작동하는지 알려주세요.

+0

감사! 문자열을 프로그램에서 로컬로 입력해야하기 때문에 HTTP 요청을 통해 유효성 검사 문자열을 가져와야합니다. 요청을 보내는 방법을 알고 있습니다. PHP에서 "액세스"하는 방법이 아닙니다. –

+0

$ unqString = $ _POST [ "uniqueString"]; 서버의 클라이언트에서 보낸 데이터에 액세스하고 있습니다. 추출 할 때 당신이 의미했던 것이 이것입니까? – Habrashat