2017-10-01 11 views
1

Je veux afficher une image de nombre de ReCapcha dans le formulaire de contact En soumettant le formulaire l'utilisateur doit écrire le code recapcha dans le champ donné ... Je dois savoir comment je peux générer ces nombres de randon ...Générateur de nombre ReCapcha Laravel 5.5

est ici html pour le champ d'entrée et img ..

<img src="" alt="This Is a CAPTCHA Image"><br> 
Enter the text of the image above <br> 
<input name="strCaptcha" type="text" size="8" value="" maxlength="8"> 

image ci-dessous est un exemple pour examen recapcha.Please et dites-moi comment je peux le faire ..

enter image description here

Répondre

0

Vous avez plusieurs bibliothèques.

1.Captcha pour Laravel 5

https://github.com/mewebstudio/captcha

Pour installer ce paquet avec Exigent compositeur:

composer require mews/captcha 

2.no-captcha (son un captcha Google)

https://github.com/anhskohbo/no-captcha

Pour installer Re quire ce paquet avec le compositeur:

composer require anhskohbo/no-captcha 

si vous cherchez à développer votre propre alors vous pouvez

session_start(); 

$strings = '123456789'; 
$i = 0; 
$characters = 6; 
$code = ''; 
while ($i < $characters) 
{ 
    $code .= substr($strings, mt_rand(0, strlen($strings)-1), 1); 
    $i++; 
} 

$_SESSION['captcha'] = $code; 

//generate image 
$im = imagecreatetruecolor(124, 40); 
$foreground = imagecolorallocate($im, 0, 0, 0); 
$shadow = imagecolorallocate($im, 173, 172, 168); 
$background = imagecolorallocate($im, 255, 255, 255); 

imagefilledrectangle($im, 0, 0, 200, 200, $background); 

// use your own font! 
$font = 'monofont.ttf'; 

//draw text: 
imagettftext($im, 35, 0, 9, 28, $shadow, $font, $code); 
imagettftext($im, 35, 0, 2, 32, $foreground, $font, $code);  

// prevent client side caching 
header("Expires: Wed, 1 Jan 1997 00:00:00 GMT"); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
header("Cache-Control: no-store, no-cache, must-revalidate"); 
header("Cache-Control: post-check=0, pre-check=0", false); 
header("Pragma: no-cache"); 

//send image to browser 
header ("Content-type: image/png"); 
imagepng($im); 
imagedestroy($im); 

Affichage sous une forme:

<img src="captcha.php"> 

Entrez le code ci-dessus: <input type="text" name="captcha"> Une fois soumis, vérifiez le code entré:

if ($_POST['captcha'] == $_SESSION['captcha']) 

Re: Numeric Captcha for PHP

0

J'ai fait un avec environ 10 lignes et la bibliothèque GD.

http://php.net/manual/en/ref.image.php

Il est vraiment facile. Je génère une image et img src la sert à l'utilisateur. Je transfère la solution via $ _SESSION. Voici quelques conseils pour le rendre plus sûr.

  1. Faire pivoter le texte au hasard
  2. Ajouter des espaces aléatoires entre les caractères
  3. Utilisez une police de caractères TTF et changer la police au hasard chaque fois
  4. Utilisez un texte aléatoire et la taille de l'image à chaque fois
  5. utilisation plus distorsion de texte avancée et couleurs
  6. Déplacez les lignes de façon aléatoire
  7. Stockez le mot de passe dans un cookie aléatoire

P.S.: La clé est de rendre le texte et la distorsion de la même couleur afin que le robot puisse confondre le symbole que vous affichez.

Conseil: N'utilisez pas de bibliothèque prête car il peut y avoir une vulnérabilité. De plus, l'unicité du code est meilleure que celle de quelqu'un d'autre pour la sécurité. Nous utilisons tous Google après tout.

Facultatif: Pour le confort de l'utilisateur - n'utilisez pas o, O, Q et 0.