Systeme de template et CAPTCHA

cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012 - 25 sept. 2011 à 20:23
cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012 - 26 sept. 2011 à 20:17
Bonjour,

Je commence à utiliser un système de template : http://phpcodeur.net/articles/php/templates

J'arrive à l'utiliser pour assigner du texte mais me voila confronter à un problème. J'aimerai "injecter" un captcha dans mon template.

Le système de captcha que j'utilise est le suivant : http://www.captcha.fr/index.php?page=34

Au niveau du code j'ai par exemple :

$template->assign_vars(array(
'pseudo' => $_POST['pseudo'],

Maintenant je dois insérer : dsp_crypt(0,1); Pour générer le CAPTCHA Mais comment faire ?

Merci d'avance pour votre aide.

2 réponses

cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
26 sept. 2011 à 10:45
bonjour

index.php
<?php 
 $cryptinstall="./crypt/cryptographp.fct.php";
 include $cryptinstall;  
 include('template.php');

  if (isset($_POST['code']) && chk_crypt($_POST['code'])){
  echo "Bravo";
  $template = new Template("./templates/"); 
  $template->set_filenames( array('body' => 'verifier.tpl'));
  $template->assign_vars( array(
  //ICI 1 comme reussi , true
  //'VERIF' => chk_crypt($_POST['code'])
  ));
  $template->pparse('body');   
  
  }else{
  $template = new Template("./templates/"); 
  $template->set_filenames( array('body' => 'formulaire.tpl'));
  $template->assign_vars( array(
      'CAPTCHA' => dsp_crypt(0,1)
  ));
  $template->pparse('body');
  }
  
?>


formulaire.tpl
<form action="" method="post">
{CAPTCHA},
----
Recopier le code:,
----


</form>


verifier.tpl
{VERIF}






Bonne programmation !
0
cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012
26 sept. 2011 à 20:17
Bonjour !

Merci infiniment pour ta réponse mais pour être franc je n'ai pas tout compris... Surtout l'utilité du verifier.tpl. J'ai surtout noter : $template->assign_vars( array(
'CAPTCHA' => dsp_crypt(0,1)
));

Le CAPTCHA semble s'afficher... On y presque! mais tout en haut à gauche de la page et non dans l'emplacement {CAPTCHA} indiqué sur le formulaire.

J'ai donc :

register.php :

<?php

function __autoload($class_name) {
require_once './class/'.$class_name.'.php';
}


$cryptinstall="./crypt/cryptographp.fct.php";
include $cryptinstall;
$template = new Template('./templates');
$template->set_filenames(array('body' => 'register.tpl'));
if (isset($_POST['bt'])) {
$check = new Secure();
if ($check->pseudo($_POST['pseudo']) == 1) { $err = 'Votre pseudo doit contenir uniquement des chiffres et des lettres, il doit être de 4 à 20 caractères
'; $erreur =1; }
if ($check->password($_POST['password']) == 1) { $err = $err.'Votre password doit contenir uniquement des chiffres et des lettres, il doit être de 4 à 20 caractères
'; $erreur =1; }
if ($check->email($_POST['email']) == 1) { $err = $err.'Votre email n\'a pas un format valide
';$erreur = 1; }
if (!chk_crypt($_POST['code'])) { $err = $err.'Le code de sécurité n\'est pas valide.'; $erreur =1; }

echo $template->assign_vars(array('ERREUR' => $err));
}
$template->assign_vars( array('CAPTCHA' => dsp_crypt(0,1)));
$template->pparse('body');

?>

register.tpl :

<form action='' method='post'>
Pseudo :,
<label for="pseudo"></label>
,

----

Password :,
,

----

Email :,
,

----

,

----

Code de sécurité :,
{CAPTCHA},

----


</form>


Es-ce que c'est du au fait que je n'ai pas créer ce troisième fichier verifier.tpl ?

Dans tous les cas merci infiniment pour ton aide.

Cordialement,
zzzzzz
0
Rejoignez-nous