Take the 2-minute tour ×
Salesforce Stack Exchange is a question and answer site for Salesforce administrators, implementation experts, developers and anybody in-between. It's 100% free, no registration required.

I want to make a simple web-to-lead form with recaptcha to validate it. i followed these instructions : Captcha Tutorial with Curl and it compiles and the captcha appears to be validating the form but the lead is not being posted to Salesforce for some reason. Has anyone ever implemented anything similar? Any ideas? Thanks

Web To Lead HTML Form

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Form</title>
</head>
<body>
<!-- Your form must be put instead of this form and put the bold parts in that form  -->
<form action="check-this-first.php" method="post"  name="emailForm" id="test" style="padding: 0px; margin: 0px;" >
<input type=hidden name="oid" value="00F600000000000">
<input type=hidden name="retURL" value="http://www.yahoo.com">


<label for="first_name">First Name</label><input  id="first_name" maxlength="40" name="first_name" size="20" type="text" /><br>

<label for="last_name">Last Name</label><input  id="last_name" maxlength="80" name="last_name" size="20" type="text" /><br>

<label for="email">Email</label><input  id="email" maxlength="80" name="email" size="20" type="text" /><br>

<label for="company">Company</label><input  id="company" maxlength="40" name="company" size="20" type="text" /><br>

<label for="phone">Phone</label><input  id="phone" maxlength="40" name="phone" size="20" type="text" /><br>

      <td align="left" >
      <span class="style1 style2">Verify Code:<br />
      <br />
        <!-- Captcha//-->
        <?php
          require_once('recaptchalib.php');
          $publickey = "7LddU9wSAAAAAP4sidMIqpa2al3dz6KeEYmUCBvL"; // you got this from the signup page
          echo recaptcha_get_html($publickey);
        ?>
        <!-- Captcha //-->
  </td>
    </tr>
   <tr>
    <td>
      <br /><br />
      <input type="submit" name="submit">
         </td>
    </tr>
  </table>
</form>
</body>
</html>

PHP Processing Page

<?php

session_start();
ob_start();
$fields_string = '';
  require_once('recaptchalib.php');// download and put in the recaptcha folder 
          //Recaptcha Settings
    $publickey = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; // you got this from the signup page
    $privatekey = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";//your private key

 //curl method posting
 //extract data from the post
      extract($_POST);
   if ($submit){
   $ok = 1;
    $resp = recaptcha_check_answer ($privatekey,
                                $_SERVER["REMOTE_ADDR"],
                                $_POST["recaptcha_challenge_field"],
                                $_POST["recaptcha_response_field"]);
    if (!$resp->is_valid) {
     $ok = 0;
   }
  if ($ok){  
  //set POST variables
  $url = 'https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8';
  $fields = array(
     'oid'=>urlencode($oid),
     'retURL'=>urlencode($retURL),

     'first_name'=>urlencode($first_name),
     'last_name'=>urlencode($last_name),
     'email'=>urlencode($email),


     'company'=>urlencode($company),
     'phone'=>urlencode($phone),



    );
   //url-ify the data for the POST
  foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
  rtrim($fields_string,'&');
  //print_r($fields_string);
   //open connection
  $ch = curl_init();
   //set the url, number of POST vars, POST data
  curl_setopt($ch,CURLOPT_URL,$url);
  curl_setopt($ch,CURLOPT_POST,count($fields));
  curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
  //execute post
  $result = curl_exec($ch);
  //close connection
  curl_close($ch);
 echo 'Congratulation the leads has been sent successfully.';
 } //if ok
 else {
     echo "<h4>Sorry - Invalid Captcha  Please try again  </h4>";
   } 
 } //if submit.
 ?>
share|improve this question
    
Just in case, have you set error_reporting to E_ALL | E_STRICT in php.ini? Is there anything in your error log? –  bigassforce Jan 31 '13 at 0:47
    
Are you getting any errors? What happens after the CAPTCHA validates? Do you get to your success page, stay on the initial URL, or something else? –  Mike Chale Jan 31 '13 at 12:15
    
@MikeChale Nope. No errors whatsoever, And yes it goes through to the success page but the lead does not show up in Salesforce –  user988 Jan 31 '13 at 17:08
    
Have you triple checked the OID is your Org Id? What do you get if you add the debug parameter into the Web-to-Lead HTML? –  bigassforce Feb 1 '13 at 0:44
    
Any progress with this @user988? –  bigassforce Feb 18 '13 at 0:18

1 Answer 1

Curling Web-to-Lead has bitten me before via both funky character encodings and validation rules. Can you share the data you are testing with and I'll try?

Edit: I tried submitting to your Web-to-Lead code, complete with a unicode smiley face, substituting in my own oid and sans the CAPTCHA. The lead went in OK.

To eliminate one more variable from the equation, have you considered a GOTCHA field instead?

share|improve this answer
    
really? and strange. did you change anything? –  user988 Jan 31 '13 at 0:27
1  
Yessir. I changed the oid and commented out the CAPTCHA. Do you have any zealous validation rules on Lead or deduping packages (eg RingLead) in your org? –  bigassforce Jan 31 '13 at 0:33
    
No not that i know of. I've tried other ways without the captcha and it works but i want to see if this captcha work. for the life of me i can't get it to work with this –  user988 Jan 31 '13 at 0:51
1  
What do you get if you configure curl_setopt($ch, CURLOPT_RETURNTRANSFER, true), and do var_dump($result)? –  bigassforce Jan 31 '13 at 1:24
    
I know for me not populating the country would cause web2lead submissions to get dropped by SFDC. I think it was a 'Country Complete' module that was causing the issue. –  creuzerm Jul 1 '13 at 16:38

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.