Ya logre lo que quería ahí les va:
para que muestre el captcha automáticamente y no tener que apretar algún botón, simple y sencillamente se pone entre etiquetas script la función. Así quedo mi pagina publicar.php
Código HTML:
<!--entre las etiquetas head-->
<script type="text/javascript" src="http://www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>
<script type="text/javascript">
function showRecaptcha(element) {
Recaptcha.create("public_key", "recaptcha_div", {
theme: "white",
callback: Recaptcha.focus_response_field
});
}
</script>
<!--termina el head y en el body el formulario y dentro del div el espacio para el captcha-->
<div id="recaptcha_div"><script>showRecaptcha();</script></div>
<!--el botón que ejecutara la función que validara todo el form incluyendo el captcha-->
<input type="button" id="enviar" value="Enviar" onclick="procesar('recaptcha_div');" />
ok lo que sigue la función que va a validar el código, pagina procesar.js
Código:
function ajaxFunction(){
//funcion necesaria
}
function procesar(capa){
var desafio = Recaptcha.get_challenge();
var solucion = Recaptcha.get_response();
var ajax;
ajax= ajaxFunction();
ajax.open("GET", "../ruta/procesar.php?recaptcha_challenge_field="+desafio+"&recaptcha_response_field="+solucion, true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.onreadystatechange = function() {
if (ajax.readyState == 1){
document.getElementById(capa).innerHTML= "<center><img src='../ruta/loader.gif' alt='Procesando'><br><br> Espere por favor...</center>";
}
if (ajax.readyState == 4){
var respuesta = ajax.responseText;
if (respuesta.length == 0 || respuesta == null || respuesta == 'undefined') {
alert("Error en la validación del captcha");
}
if(respuesta=="Incorrecto") {
alert("Error en la validación del captcha");
Recaptcha.reload();
}
if(respuesta=="correcto") {
alert("validación del captcha correcta");
document.getElementById(capa).innerHTML= ajax.responseText;
}
}
}
ajax.send(null);
}
ahora el procesar.php:
Código PHP:
<?php
require_once('recaptchalib.php');
$privatekey = "private_key";
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_GET["recaptcha_challenge_field"],
$_GET["recaptcha_response_field"]);
if(!$resp->is_valid){
echo "Incorrecto";
}
else{
echo "Correcto";
}
?>
Y ahi esta para el que necesite :D
Una observación muy particular, la verdad es que forer@s ahora si me fallaron ya que ni una respuesta, mínimo un estas loca eso no se puede, o mira vas bien pero aquí muevele o lee esto o lo que sea, la verdad es que si se siente feo contestarse uno mismo, pero bueno ya quedo y aprendí que es lo importante.
Saludos!!