Hejsan!
Jag söker en kunnig person som kan PHP och vet hur reCaptcha fungerar..
För det är nämnligen så att jag har ett script som skapar en användare i en databas, och då behöver de verifiera sig med reCaptcha.
I min form så klickar jag 'Submit' sedan så får jag ett felmeddelande som lyder "To use reCAPTCHA you must get an API key from https://www.google.com/recaptcha/admin/create"
Trots att mina API-keys finns i scriptet!
Så jag tänkte att någon som kan det här bättre än mig kunde tänka sig ta en titt på varför den inte vill hitta $publickey och $privatekey
Men vad vet jag! Det kanske inte ens är det som är felet, men är jätte tacksam för svar!
Jag söker en kunnig person som kan PHP och vet hur reCaptcha fungerar..
För det är nämnligen så att jag har ett script som skapar en användare i en databas, och då behöver de verifiera sig med reCaptcha.
I min form så klickar jag 'Submit' sedan så får jag ett felmeddelande som lyder "To use reCAPTCHA you must get an API key from https://www.google.com/recaptcha/admin/create"
Trots att mina API-keys finns i scriptet!
Så jag tänkte att någon som kan det här bättre än mig kunde tänka sig ta en titt på varför den inte vill hitta $publickey och $privatekey
Men vad vet jag! Det kanske inte ens är det som är felet, men är jätte tacksam för svar!
Kod:
<?php
include("db.conf.php");
require_once('recaptcha/recaptchalib.php');
$publickey = "publika api-keyn";
$privatekey = "privata api-keyn";
$captcha_entry = recaptcha_get_html($publickey);
$page = '<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>' . $title . '</title>
</head>
<form method="post" action="' . $_SERVER["SCRIPT_NAME"] . '">
<p style="text-align:center;">
<strong>' . $title2 . ' ' . $title . "</strong>
<br /><br /><br />
Username:
<br /><input name='username' type='text' maxlength='14' /><br />
Password:
<br /><input name='password' type='password' maxlength='12' /><br />
Email:
<br /><input name='email' type='text' maxlength='255' />
<br />
<INPUT TYPE=RADIO NAME='expansion' VALUE='2' CHECKED >WOTLK<br />
<br /><br /><br />
$captcha_entry <br>
<button type='submit' name='b1'>Create account</button>
</p>
</form>
</body>
</html>";
$privatekey = "privatekey";
function captcha_ok(){
if ($_POST["recaptcha_response_field"]){
$resp = recaptcha_check_answer($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if ($resp->is_valid) {
return TRUE;
}
}
return FALSE;
}
function error_s ($text) {
echo($text);
echo("<br /><br /><a style=\"color:orange;\" href=\"" . $_SERVER["SCRIPT_NAME"] . "\">Go back...</a></p>");
};
$user_chars = "#[^a-zA-Z0-9_\-]#";
$email_chars = "/^[^0-9][A-z0-9_]+([.][A-z0-9_]+)*[@][A-z0-9_]+([.][A-z0-9_]+)*[.][A-z]{2,4}$/";
$con = @mysql_connect($ip, $user, $pass);
if (!$con) {
error_s("Unable to connect to database: " . mysql_error());
};
if (!empty($_POST)) {
if ((empty($_POST["username"]))||(empty($_POST["password"]))||(empty($_POST["email"]))||(empty($_POST["expansion"])) ) {
error_s("You did not enter all the required information.");
exit();
} else {
$username = strtoupper($_POST["username"]);
$password = strtoupper($_POST["password"]);
$email = strtoupper($_POST["email"]);
$expansion = $_POST["expansion"];
if (strlen($username) < 5) {
error_s("Username too short.");
exit();
};
if (strlen($username) > 14) {
error_s("Username too long.");
exit();
};
if (strlen($password) < 8) {
error_s("Password too short.");
exit();
};
if (strlen($password) > 12) {
error_s("Password too long.");
exit();
};
if (strlen($email) < 4) {
error_s("Email was too short.");
exit();
};
if (strlen($email) > 255) {
error_s("Email was too long.");
exit();
};
if(!captcha_ok()){
error_s("Invalid captcha.");
exit();
}
if (preg_match($user_chars,$username)) {
error_s("Username contained illegal characters.");
exit();
};
if (preg_match($user_chars,$password)) {
error_s("Password contained illegal characters.");
exit();
};
if (!preg_match($email_chars,$email)) {
error_s("Email was in an incorrect format.");
exit();
};
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
$email = mysql_real_escape_string($email);
$qry = @mysql_query("select username from " . mysql_real_escape_string($r_db) . ".account where username = '" . $username . "'", $con);
if (!$qry) {
error_s("Error querying database: " . mysql_error());
};
if ($existing_username = mysql_fetch_assoc($qry)) {
foreach ($existing_username as $key => $value) {
$existing_username = $value;
};
};
$existing_username = strtoupper($existing_username);
if ($existing_username == strtoupper($_POST['username'])) {
error_s("That username is already taken.");
exit();
};
unset($qry);
$qry = @mysql_query("select email from " . mysql_real_escape_string($r_db) . ".account where email = '" . $email . "'", $con);
if (!$qry) {
error_s("Error querying database: " . mysql_error());
};
if ($existing_email = mysql_fetch_assoc($qry)) {
foreach ($existing_email as $key => $value) {
$existing_email = $value;
};
};
if ($existing_email == $_POST['email']) {
error_s("That email is already in use.");
exit();
};
unset($qry);
$sha_pass_hash = sha1(strtoupper($username) . ":" . strtoupper($password));
$register_sql = "insert into " . mysql_real_escape_string($r_db) . ".account (username, sha_pass_hash, email, expansion) values (upper('" . $username . "'),'" . $sha_pass_hash . "','" . $email . "','" . $expansion . "')";
$qry = @mysql_query($register_sql, $con);
if (!$qry) {
error_s("Error creating account: " . mysql_error());
};
echo("Account successfully created.");
exit();
};
} else {
echo($page);
};
?>