Antes que nada, para cualquier interesado en Reaptcha dejo el enlace del artículo de Integrar reCaptcha en páginas PHP... y también para el framework Laravel.
En todo caso, ya para responder tu pregunta, creo que el único problema en tu código es que has colocado el nombre de la clase con un "$" delante.
Cambia esto:
$reCaptcha = new $reCaptcha($secret);
Por esto otro:
$reCaptcha = new reCaptcha($secret);
Estos códigos que pongo a continuación funcionan bien.
- Para la parte del HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script src='https://www.google.com/recaptcha/api.js' async></script>
<title>Document</title>
</head>
<body>
<form action="recaptcha-test.php" method="post">
<input name="name" placeholder="Nombre"/>
<input name="email" placeholder="Email"/>
<textarea placeholder="Tu mensaje" name="message"></textarea>
<div class="g-recaptcha" data-sitekey="***KEY PARA EL SITIO WEB***"></div>
<button type="submit" name="submit">Enviar</button>
</form>
</body>
</html>
- Para la verificación de PHP.
Importante: Tienes que hacer el include de la librería de reCaptcha, de modo que esté disponible la clase ReCaptcha. Esa parte lo lógico sería hacerlo con Composer, y usar el sistema de autoload, pero ahí depende de tu proyecto. Puedes también copiar y pegar el código de la clase.
Luego, el código de verificación es este:
$secret = "***KEY SECRETA***";
$reCaptcha = new ReCaptcha($secret);
// Inicializar a null la respuesta de reCAPTCHA
$resp = null;
// Se ha recibido una respuesta de la captcha?
if ($_POST["g-recaptcha-response"]) {
$resp = $reCaptcha->verifyResponse(
$_SERVER["REMOTE_ADDR"],
$_POST["g-recaptcha-response"]
);
}
if ($resp != null && $resp->success) {
echo "La respuesta del captcha positiva, no eres un robot!!";
} else {
echo "No hemos recibido una respuesta positiva del captcha";
}