-1
누군가이 코드에 recaptcha를 추가 할 수 있습니까?recaptcha를 구현해야합니다
여기에 내 PHP 레지스터입니다.
//if form has been submitted process it
if(isset($_POST['submit'])){
//very basic validation
if($_POST['username'] == ''){
$error[] = 'Username is required.';
}else if(strlen($_POST['username']) < 6){
$error[] = 'Username is too short. (6 Chars)';
}else if(strlen($_POST['username']) > 32){
$error[] = 'Username is too long. (32 Chars)';
}else if(preg_match('/[^a-z0-9_]/', $_POST['username'])){
$error[] = 'Only a-z, 0-1 and _ are allowed in username.';
} else {
$stmt = $db->prepare('SELECT username FROM members WHERE username = :username');
$stmt->execute(array(':username' => $_POST['username']));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if(!empty($row['username'])){
$error[] = 'Username provided is already in use.';
}
}
//email validation
if($_POST['email'] == ''){
$error[] = 'Email Address is required.';
}else if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
$error[] = 'Please enter a valid Email Address';
} else {
$stmt = $db->prepare('SELECT email FROM members WHERE email = :email');
$stmt->execute(array(':email' => $_POST['email']));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if(!empty($row['email'])){
$error[] = 'Email Address provided is already in use.';
}
}
if($_POST['mobile'] == ''){
$error[] = 'Mobile Number is required.';
}else if(!is_numeric($_POST['mobile'])){
$error[] = 'Mobile Number should be numeric.';
}else if(strlen($_POST['mobile']) < 10){
$error[] = 'Mobile Number is too short.';
}
else if(strlen($_POST['mobile']) > 10){
$error[] = 'Mobile Number is too long.';
} else {
$stmt = $db->prepare('SELECT mobile FROM members WHERE mobile = :mobile');
$stmt->execute(array(':mobile' => $_POST['mobile']));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if(!empty($row['mobile'])){
$error[] = 'Mobile Number is already in use.';
}
}
if($_POST['password'] == ''){
$error[] = 'Password is required.';
}else if(strlen($_POST['password']) < 6){
$error[] = 'Password is too short. (6 Chars)';
}else if(strlen($_POST['passwordConfirm']) < 6){
$error[] = 'Confirm password was too short. (6 Chars)';
}else if($_POST['password'] != $_POST['passwordConfirm']){
$error[] = 'Passwords do not match.';
}
//if no errors have been created carry on
if(!isset($error)){
//hash the password
$hashedpassword = $user->password_hash($_POST['password'], PASSWORD_BCRYPT);
//create the activasion code
$activation = md5(uniqid(rand(),true));
$usrname = str_replace(' ', '', $_POST['username']);
$usrname = preg_replace('/\s+/','',$_POST['username']);
try {
//insert into database with a prepared statement
$stmt = $db->prepare('INSERT INTO members (username,password,email,mobile,active) VALUES (:username, :password, :email, :mobile, :active)');
$stmt->execute(array(
':username' => strtolower($usrname),
':password' => $hashedpassword,
':email' => $_POST['email'],
':mobile' => $_POST['mobile'],
':active' => $activation
));
header('Location: register.php?action=joined');
exit;
//else catch the exception and show the error.
} catch(PDOException $e) {
$error[] = $e->getMessage();
}
}
}
recaptcha 통합에 관한 다양한 온라인 자습서가 있습니다. 봤어? [tutsplus 링크] (http://smal.me.pn/QLCJ) – Thamilan
시도했지만 메신저를 심을 수 없습니다. 나는 여전히 PHP에 새로운, 내 웹 사이트는 다른 사람들에 의해 개발되었습니다. 누군가 도움이된다고 고맙게 생각합니다. 스패머를 차단하기 위해 이것을 추가합니다. –
@Thamilan이 링크 한 튜토리얼은 최초의 Google 결과이지만 실제로는 쓸모없고 오래되었습니다. 적어도 두 가지 의견이 유용합니다. 여기 [GitHub] (https://github.com/google/recaptcha/tree/d3274db7c061770472b8eff8a7dbae0871f6cf03)에서 더 나은 설명을 찾을 수 있습니다. 나는 완전한 작동 코드로 당신에게 대답하고 싶습니다. 그러나 나는 그것에 대해서도 연구 중입니다. – Brigo