2017-10-25 1 views
0

Backgound : 나는 cPanel에서 관리하는 기본 myslq 데이터베이스 구조로 WordPress를 설치했습니다. Gravity Forms 플러그인을 구현하여 유형을 생성했습니다. 양식으로 문의하십시오. 고객이 제품에 대해 질문/불만 사항이있는 경우 양식을 작성하여 제출하십시오. 그러면 wp 데이터베이스 내에서 만든 사용자 지정 테이블 (wp- 연락처)으로 이동합니다. 필자는 ODBC 커넥터를 사용하여 테이블의 데이터를 Filemaker와 연결합니다. 고객 서비스 팀은 개발 한 사용자 지정 파일 메이커 응용 프로그램의 데이터를 볼 수 있으며 질문에 응답 할 수 있습니다.피드 wp-Gravity 양식을 사용자 정의 SQL 테이블에 입력

문제점 : 고객이 입력 한 데이터에서 중력을 내가 작성한 사용자 정의 SQL 테이블로 보내야하는 PHP 스크립트에 문제가 있습니다. 보낸 사람을 테스트하고 샘플 데이터를 입력하고 제출을 클릭하면 이 페이지를 표시 할 수 없습니다. 오류. 또한 내가 만든 사용자 정의 테이블에는 데이터가 없습니다. captcha의 질문도 있습니다. 중력 양식에 captcha를 구현 했으므로 captcha가 확인되면 1 또는 0으로 설정하는 일종의 필드가 필요하다고 가정합니다. 이것을 구현하는 가장 좋은 방법은 무엇입니까?

add_action("gform_after_submission_1", "input_fields", 10, 2); 
function input_fields($entry, $form) 
{ 
    global $rhodesba_rhodes; 

     $entry["12"] = '$fname'; 
     $entry["14"] = '$lname'; 
     $entry["4"] = '$email'; 
     $entry["5"] = '$address1'; 
     $entry["15"] = '$address2'; 
     $entry["16"] = '$city'; 
     $entry["18"] = '$state'; 
     $entry["17"] = '$zip'; 
     $entry["7"] = '$bbd'; 
     $entry["6"] = '$upc'; 
     $entry["10"] = '$subject'; 
     $entry["2"] = '$question'; 

    $SQL = "INSERT INTO wp_contacts (id, name, last_name, state, city, address, address_2, bbd, subscribe, upc, email, subject, comments, phone, user_ip, answer, answered_by, zipcode, category_id, active, contact_captcha, answered_date, dept, computer_name, created) VALUES ('', '$fname', '$lname', '$state', '$city', '$address1', '$address2', '$bbd', '', '$upc', '$email', '$subject', '$question', '', '', '', '', '$zip', '', '', '', '', '', '', '')"; 
    $rhodesba_rhodes->query($SQL); 
} 

중력을 통해 채울 수없는 내 테이블의 필드가이 문의 양식을 형성한다 : 여기 내 스크립트입니다. 오히려 이러한 필드는 파일 메이커 응용 프로그램에서 질문에 답변 할 때 (예 : 대답, 응답 _ 응답 등) 고객 서버 팀이 조작하고 다른 목적으로 파일 메이커에서 사용됩니다. 이 필드의 경우 장소 표시자를 사용했습니다. 내 ID 필드는 추가 된 각 레코드에 대해 자동 증가로 설정됩니다.
image of database structure

답변

0

따라서 일부 연구를 마친 후에 나는 이것을 알아 냈습니다. 나는 다른 사람이이 같은 질문을 가지고있는 경우에 대비해 해결책을 게시하고있다. 여기에 내 업데이트 된 코드가 있습니다 :

add_action("gform_after_submission_1", "input_fields", 10, 2); 
function input_fields($entry, $form) 
    { 
     $password = "password"; 
     $username = "username"; 
     $servername = "localhost"; 
     $dbname = "db"; 
     $fname = $entry["12.3"]; 
     $lname = $entry["14.6"]; 
     $email = $entry["4"]; 
     $address1 = $entry["5.1"]; 
     $address2 = $entry["15.2"]; 
     $city = $entry["16.3"]; 
     $state = $entry["18.4"]; 
     $zip = $entry["17.5"]; 
     $bbd = $entry["7"]; 
     $upc = $entry["6"]; 
     $subject = $entry["10"]; 
     $question = $entry["2"]; 

$con=mysqli_connect($servername, $username, $password, $dbname); 
mysqli_query($con,"INSERT INTO wp_contacts (id, name, last_name, state, city, address, address_2, bbd, subscribe, upc, email, subject, comments, phone, user_ip, answer, answered_by, zipcode, category_id, active, contact_captcha, answered_date, dept, computer_name, created) VALUES ('', '$fname', '$lname', '$state', '$city', '$address1', '$address2', '$bbd', '', '$upc', '$email', '$subject', '$question', '', '', '', '', '$zip', '', '', '', '', '', '', '')"); 
    } 

내 첫 번째 문제는 내가 변수 선언을 역으로 할당 한 것이 었습니다.

$entry["12"] = $fname //WRONG 
$fname = $entry["12"] //RIGHT 

일단이 문제를 처리하면 데이터가 mysql 테이블에 채워지기 시작했지만 특정 필드 만 채워집니다. 추가 조사를 한 후, $ ID에 액세스하는 데 ID가 사용되고 있음을 발견했습니다. 올바른 ID를 얻기 위해 브라우저에서 각 필드를 마우스 오른쪽 버튼으로 클릭하고 요소를 검사했습니다. 이것은 나에게 name = "input_1.3"과 같은 이름 속성을 보여주었습니다. "input_"접두사 뒤의 숫자는 $ 항목에 사용할 ID입니다. 내가 잘못한 이드의 것을 바꿨고 이제는 그 데이터가 완벽하게 게시됩니다.

또한 데이터베이스에 연결하려면이 옵션을 사용 : 사람이 비슷한 질문이있는 경우

mysqli_connect 

희망이 도움이됩니다.

관련 문제