Installer un antispam (Captcha)

Installer un antispam (Captcha) - PHP - Programmation

Marsh Posté le 18-06-2007 à 19:59:46    

Bonjour à tous !  :wahoo:  
 
J'aimerais installer un système antispam sur la mini-messagerie de mon site internet perso (Free.fr), car je suis victime de robots spameurs...  :sweat:  
 
Mon site est un site exclusivement perso, référencé nul part, qui n'est utilisé que par moi, ainsi que par quelques amis. Je ne suis pas développeur, mais j'aime bidouiller. Vous pouvez en avoir un aperçu en jettant un oeil sur la capture d'écran qui suit :
 
http://img515.imageshack.us/img515/4476/captureecransitewebzr9.th.jpg
 
Malheureusement, j'ai des difficultés à intégrer les systèmes antispam type "Captcha" sur la mini-messagerie.  :pt1cable:  
(J'en ai essayé plusieurs)
 
HELP !  :cry:  
 
Bon, commençons par le début.
 
Ma messagerie est une version bidouillée/simplifiée d'@lex Guestbook, d'Alexphpteam, et j'ai choisi Cryptographp comme antispam.
 
Si je suis la procédure décrite sur le site de Cryptographp v1.4 :
 
- Je commence par uploader le script Captcha dans un dossier "crypt" à la racine de mon site web. J'ajoute aussi un "modele de cryptogrammes" (j'ai choisi BlueSky) dans le dossier "crypt".
 
- Je place le code requis qui suit, en tout début de la page qui contiendra le cryptogramme :

Citation :

<?php  
 $cryptinstall="./crypt/cryptographp.fct.php";
 include $cryptinstall;  
 ?>

La page "qui contiendra le cryptogramme" doit être add_message.htm, située dans les templates d'@lex Guestbook.
 
- Pour afficher le cryptogramme du Captcha, je copie le code suivant dans la même page, à l'endroit où je désire l'affichage :

Citation :

<?php dsp_crypt(0,1); ?>

- Pour afficher le formulaire de saisie du Captcha, je copie le code suivant dans la même page, à l'endroit où je désire l'affichage :

Citation :

Recopier le code : <input type="text" name="code">


La procédure suivante est l'insertion du code de vérification, mais voyons avant ce que donne le travail effectué précédemment... Histoire de...  ;)  :D  
 
Le code complet (en rouge, les ajouts précédents) de add_message.htm :

Citation :

 <?php  
 $cryptinstall="./crypt/cryptographp.fct.php";
 include $cryptinstall;  
 ?>

 
<div align="center">
  <center>
  <table border="0" width="90%" cellspacing="0">
 
<FORM NAME="ajouter" METHOD="post" ACTION="<mx:text id="action_url"/>" onsubmit="javascript:return verif_add();">
 <tr>
<td width="100%" class="row_bleu">
  <table border="0" width="100%" cellspacing="0" cellpadding="5">
 <tr>
<td width="100%" class="row_gris">
 <table border="0" width="100%" cellspacing="0" cellpadding="0">
 </tr>
 <tr>
<td width="100%" height="20" align="center"><mx:text id="nom_pseudo_visiteur"/></td></tr>
 <tr>
<td width="100%" height="30" align="center">
 <p><input type="text" name="nom" size="20" maxlength="20"></p></td></tr>
 
<mx:bloc id="bloc_email">
 <tr>
<td width="35%" height="30"><mx:text id="email_visiteur"/></td>
<td width="65%" height="30"><input type="text" name="email" size="34" maxlength="150"></td>
 </tr>
</mx:bloc id="bloc_email">
 
<mx:bloc id="bloc_site">
 <tr>
<td width="35%" height="30"><mx:text id="site_web_visiteur"/></td>
<td width="65%" height="30"><input type="text" name="site" size="34" maxlength="150"></td>
 </tr>
</mx:bloc id="bloc_site">
 
<mx:bloc id="bloc_pays">
 <tr>
<td width="35%" height="30"><mx:text id="ville_pays_visiteur"/></td>
<td width="65%" height="30"><input type="text" name="ville_pays" size="34" maxlength="60"></td>
 </tr>
</mx:bloc id="bloc_pays">
 
<mx:bloc id="bloc_note">
 <tr>
<td width="35%" height="30"><mx:text id="note_visiteur"/></td>
<td width="65%" height="30">
 <p><select size="1" name="note_site">
 <option value="" selected>-</option>
 <option value="10">10<mx:text id="note_super"/></option>
 <option value="9">9</option>
 <option value="8">8</option>
 <option value="7">7</option>  
 <option value="6">6</option>
 <option value="5">5<mx:text id="note_moyen"/></option>
 <option value="4">4</option>
 <option value="3">3</option>  
 <option value="2">2</option>
 <option value="1">1</option>
 <option value="0">0<mx:text id="note_rate"/></option>
 </select></p>
</td>
</mx:bloc id="bloc_note">
 
 </tr>
 <tr>
<td width="100%" colspan="2" height="26">
  <p align="center"><mx:text id="message_visiteur"/></p></td>
 </tr>
 <tr>
<td width="100%" colspan="2">
  <p align="center"><mx:text id="chaine_smileys"/></p></td>
 </tr>
 <tr>
<td width="100%" colspan="2">
 <p align="center"><mx:formField id="message_textarea" rows="10" cols="20"/></p>
</td>
 </tr>
<tr>
<td width="100%" colspan="2" height="40">
 <p align="center"><?php dsp_crypt(0,1); ?><br></p>
</td>
 </tr>
 <tr>
<td width="100%" colspan="2" height="40">
 Recopier le code : <input type="text" name="code"><br></p>
</td>
 </tr>

 <tr>
<td width="100%" colspan="2" height="40">
 <p align="center"><input type="submit" value="<mx:text id="ajouter_message_visiteur"/>" name="ajouter"><br></p>
</td>
 </tr>
  </table>
</td>
 </tr>
  </table>
</td>
 </tr>
  </FORM>
 
  </table>
  </center>
</div>

Le résultat :
 
http://img131.imageshack.us/img131/5042/captureecrancaptcha1bi1.jpg
 
Aïe...  :sweat:  
Commence mal... 2 problèmes :
 
- Pourquoi l'image du Captcha ne s'affiche-t-elle pas ???
- Pourquoi ce n'est pas centré ? (Problème secondaire)
 
Avant d'aller plus loin, et d'insérer le code de vérification, on va déjà régler le problème de l'image qui ne s'affiche pas...
 
Merci à ceux qui voudront bien m'aider, je suis tout ouïe.  :)


Message édité par Profil supprimé le 18-06-2007 à 20:06:34
Reply

Marsh Posté le 18-06-2007 à 19:59:46   

Reply

Marsh Posté le 18-06-2007 à 20:11:49    

J'ai augmenté la hauteur de l'espace réservé à l'image du Captcha (qui fait 200x70) :
 

Citation :

<tr>
<td width="100%" colspan="2" height="80">
 <p align="center"><?php dsp_crypt(0,1); ?><br></p>
</td>
 </tr>


 
Sans résultat...  :D
 
J'ai aussi essayé un autre modèle de cryptogrammes (BlackWhite), plus petit en largeur... Pas mieux, toujours pas d'image.


Message édité par Profil supprimé le 18-06-2007 à 20:18:50
Reply

Marsh Posté le 19-06-2007 à 07:31:16    

Cryptograph nécessite le support dans php de GD et Freetype. Vérifier avec phpinfo() ce support.

Reply

Marsh Posté le 19-06-2007 à 08:48:21    

Salut,
le sujet a été débattu ici, si ça peut te donner qq pistes ...
http://forum.hardware.fr/hfr/Progr [...] 4762_1.htm

Message cité 1 fois
Message édité par NewsletTux le 19-06-2007 à 08:48:30
Reply

Marsh Posté le 20-06-2007 à 19:39:27    

Merci pour vos commentaires, mais il doit y avoir un autre problème bien précis, car l'image ne s'affiche jamais, quel que soit le script utilisé...
 

dnlilas a écrit :

Cryptograph nécessite le support dans php de GD et Freetype. Vérifier avec phpinfo() ce support.


Vérifié supporté et actif...  :jap:  
 

NewsletTux a écrit :

Salut,
le sujet a été débattu ici, si ça peut te donner qq pistes ...
http://forum.hardware.fr/hfr/Progr [...] 4762_1.htm


Merci, mais à part me donner d'autres scripts de Captcha (dont certains que j'ai essayé cet après-midi), ça ne me dit pas où je me gourre...
 
 :sweat:  
 
Ca m'énerve tellement que je viens de détruire mon fauteuil, à force de taper dessus de rage.  :lol:  
Rassurez-vous il n'a pas une grande valeur...
 
Bon... Avançons...
Je viens de pointer mon navigateur vers le dossier "crypt" du script, et ça fonctionne très bien :
 
http://img528.imageshack.us/img528/8241/captchaokmc3.jpg
 
Alors pourquoi l'image s'affiche pas quand je l'intègre dans ma page...?  :sweat:  
C'est dingue ça !


Message édité par Profil supprimé le 20-06-2007 à 19:53:19
Reply

Marsh Posté le 20-06-2007 à 19:56:52    

La seule différence entre mon intégration et le index.php du dossier "crypt" (capture ci-dessus),
c'est que j'intègre le code dans le template add_message.htm d'AlexGBook (voir code ci-dessus), qui est un .html...
 
Ca viendrait pas de ça ???  :heink:
 
Le problème, c'est que je vois parfaitement où placer le code dans le template add_message.htm d'AlexGBook,
mais pas du tout où le placer dans le index.php d'AlexGBook...
 
Pour la procédure de vérification, pas de problème, je pense que ce sera dans le add_message.php d'AlexGBook,
qui contient déjà des codes de vérification. Mais nous n'en sommes pas là...  :sarcastic:
 
Je me rends compte que j'ai oublié d'indiquer l'adresse du site d'AlexPHPTeam : http://www.alexguestbook.net/.
Dans la partie "Support", il est dit :

Citation :

Vous avez installé Cryptographp mais ca ne marche pas ?
Pour 10 euros (le prix d'un magazine d'informatique), vous m'envoyez le fichier PHP qui contient le cryptogramme,
plus le fichier qui fait la vérification. Vous pouvez aussi me fournir un acces FTP. Je regarde votre installation,
et je vous fait le bilan de ce qui ne va pas et ce qu'il y a à modifier. Vous choisissez ensuite de faire les modifications vous-meme
ou me les confier au devis que je vous aurais communiqué. Travail réalisé généralement dans les 24h


 
Je crois que c'est clair, il faut que j'intègre le code dans le index.php (celui-là ou un autre ?), et pas dans le template html... :sarcastic:  
 
Mais où...??????  :heink:  
 
Le fichier index.php :
 

Citation :

<?php
///////////////////////////////////////////////
//                @lex Guestbook             //
//          by Soulard Alexis - 2002         //
//          http://www.alexphpteam.com/      //
//              all right reserved           //
///////////////////////////////////////////////
 
unset($chem_absolu, $nb_pages_aff);
$chem_absolu = "./";
$nb_pages_aff = 10;
$page_index = true;
 
if (!$HTTP_GET_VARS['debut'])
 $HTTP_GET_VARS['debut'] = 0;
 
//----------------------- fichiers à inclure
if (file_exists($chem_absolu."config/extension.inc" )){
 include($chem_absolu."config/extension.inc" );
 include($chem_absolu."include/livre_include.".$alex_livre_ext);
}
else{
 die ("Please setup the script : <a href=\"".$chem_absolu."setup.php\"><b>setup.php</b></a> or refresh your browser : <a href=\"javascript:location.reload();\"><b>refresh</b></a>." );
}
 
//si un skin est choisi arbitrairement par défaut on l'inclus ici
if ($HTTP_GET_VARS['skin'])
 $skin_use = $HTTP_GET_VARS['skin'];
 
//----------------------- si le nom du template commence par "double_", et que seeAdd n'est pas renseigné, par défaut seeAdd=1
if (substr($skin_use, 0, 7) == "double_" && !isset($HTTP_GET_VARS['seeAdd']))
 $HTTP_GET_VARS['seeAdd'] = 1;
 
//----------------------- chemin du skin
$chem_template = $chem_absolu."templates/skins/".$skin_use."/";
 
//----------------------- génération de la liste des champs textes de la langue
$tab_champs_langue = array(
 1 => "title_guestbook",
 "erreur_add_nom",
 "erreur_add_message",
 "addSignature",
 "seeMessages"
);
 
//----------------------- on récupère tous les smileys / mots censurés
recup_smileys();
recup_mots_interdits();
 
//----------------------- on récupère tous les messages en effectuant un remplacement pour les smileys / mots censurés
/* si il y a des mots clés on restreint la recherche */
if ($HTTP_GET_VARS['mots_search'] && $ok_aff_moteur){
 $HTTP_GET_VARS['mots_search'] = htmlspecialchars(trim($HTTP_GET_VARS['mots_search']));
 $mots_nettoyes = nettoyer_car(noaccents(strtolower(urldecode($HTTP_GET_VARS['mots_search']))));
 $tab_mots_cles = explode(" ", $mots_nettoyes);
 
 /* création de la requète WHERE */
 if ($mots_nettoyes)
  $where = "WHERE ";
 for ($i = 0; $i < count($tab_mots_cles); $i++){
  $where .= "nom LIKE '%".$tab_mots_cles[$i]."%' OR message LIKE '%".$tab_mots_cles[$i]."%'";
  if (($i + 1) < count($tab_mots_cles))
   $where .= " OR ";
 }
}
else
 $where = "";
 
recup_messages("*", $where, "ORDER BY time DESC", "LIMIT ".$HTTP_GET_VARS['debut'].",".$nb_pages, true);
 
//----------------------- nbre total de messages  
recup_total_messages($where);
 
//----------------------- somme de toutes les notes
if ($ok_note)
 moyenne_notes_messages();
 
/* fermeture de la connexion */
$f_db_connexion -> sql_close();
 
/* traitement de l'url à recharger */
//remplacement des #var en leur valeur réelle
while (strpos($extension_url, "#" )){
 eregi("=#([^&]*)", $extension_url, $tab_echo);
 $extension_url = str_replace($tab_echo[0], "=".$HTTP_GET_VARS[str_replace("=#", "", $tab_echo[0])], $extension_url);
}
 
//variables à passer en paramètre lors d'une méthode GET
$tabVar = explode("&", $extension_url);
for ($i=0; $i<count($tabVar); $i++){
 $tempChaine = explode("=", $tabVar[$i]);
 $chaineGetMethod .= "<input type=\"hidden\" name=\"".$tempChaine[0]."\" value=\"".$tempChaine[1]."\">\n";
}
 
/* création de la chaine html des smileys */
$chaine_smileys = "";
for ($i = 1; $i <= $nbre_smileys; $i++){
 $chaine_smileys .= "<a href=\"javascript:smiley('".$table_car_replace[$i]."');\"><img src=\"".$chem_absolu."images/smileys/".$table_smileys[$i]."\" alt=\"".eregi_replace("[.]{1}(.)*$", "", $table_smileys[$i])."\" border=\"0\"></a>";
 if ($i < $nbre_smileys)
  $chaine_smileys .= " ";
}
 
//----------------------- affichage du formulaire
$echo_html = new ModeliXe("assembly.htm", "", "", "", "", $chem_template);
$echo_html -> SetModeliXe();
 
/* instanciation des blocs */
$echo_html -> MxBloc("bloc_add_message", "modify", $chem_template."add_message.htm" );
$echo_html -> MxBloc("bloc_nb_messages_page", "modify", $chem_template."nb_message_page.htm" );
$echo_html -> MxBloc("bloc_liste_pages", "modify", $chem_template."list_pages.htm" );
 
/* langue */
generate_langue($tab_champs_langue);
 
 
//################ ELEMENTS à passer en paramètres à chaque page ################"
$urlExtAdd = "&mots_search=".urlencode($HTTP_GET_VARS['mots_search'])."&lang=".$HTTP_GET_VARS['lang']."&skin=".$HTTP_GET_VARS['skin']."&seeAdd=".$HTTP_GET_VARS['seeAdd']."&seeNotes=".$HTTP_GET_VARS['seeNotes']."&seeMess=".$HTTP_GET_VARS['seeMess']."&".$extension_url;
 
/* action lors du clique sur le bouton rechercher */
$echo_html -> MxText("bloc_moteur.action_search", $url_recharger);
$echo_html -> MxText("bloc_moteur.debut", $HTTP_GET_VARS['debut']);
$echo_html -> MxText("bloc_moteur.lang", $HTTP_GET_VARS['lang']);
$echo_html -> MxText("bloc_moteur.skin", $HTTP_GET_VARS['skin']);
$echo_html -> MxText("bloc_moteur.extensionGet", $chaineGetMethod);
 
/* infos globales qui peuvent être intégrées dans un skin */
globalValuesTemplate();
globalValuesTemplate("bloc_nb_messages_page." );
globalValuesTemplate("bloc_add_message." );
//################ /ELEMENTS à passer en paramètres à chaque page ################"
 
 
/* chemin du script */
$echo_html -> MxText("chem_skin", $chem_template);
 
/* version du guestbook */
$echo_html -> MxText("guestbook_version", $alex_livre_version);
 
/* affichage oui / non des options facultatives du bloc ajouter un message */
if (!$ok_mail)
 $echo_html -> MxBloc("bloc_add_message.bloc_email", "rese" );
if (!$ok_url)
 $echo_html -> MxBloc("bloc_add_message.bloc_site", "rese" );
if (!$ok_pays)
 $echo_html -> MxBloc("bloc_add_message.bloc_pays", "rese" );
if (!$ok_note){
 $echo_html -> MxBloc("bloc_note", "rese" );
 $echo_html -> MxBloc("bloc_add_message.bloc_note", "rese" );
}
 
/* affichage du texte pour la note moyenne */
$echo_html -> MxText("bloc_note.note_moyenne", $f_lang['note_moyenne']);
$echo_html -> MxText("bloc_note.value_note_moyenne", arrondir($value_moyenne_notes_messages));
$echo_html -> MxText("bloc_note.chem_skin", $chem_template);
 
/* affichage des variables pour la partie ajouter un message */
$echo_html -> MxText("bloc_add_message.bloc_note.note_super", $f_lang['note_super']);
$echo_html -> MxText("bloc_add_message.bloc_note.note_moyen", $f_lang['note_moyen']);
$echo_html -> MxText("bloc_add_message.bloc_note.note_rate", $f_lang['note_rate']);
$echo_html -> MxText("bloc_add_message.nom_pseudo_visiteur", $f_lang['nom_pseudo_visiteur']);
$echo_html -> MxText("bloc_add_message.bloc_email.email_visiteur", $f_lang['email_visiteur']);
$echo_html -> MxText("bloc_add_message.bloc_site.site_web_visiteur", $f_lang['site_web_visiteur']);
$echo_html -> MxText("bloc_add_message.bloc_pays.ville_pays_visiteur", $f_lang['ville_pays_visiteur']);
$echo_html -> MxText("bloc_add_message.bloc_note.note_visiteur", $f_lang['note_visiteur']);
$echo_html -> MxText("bloc_add_message.message_visiteur", $f_lang['message_visiteur']);
$echo_html -> MxText("bloc_add_message.ajouter_message_visiteur", $f_lang['ajouter_message_visiteur']);
$echo_html -> MxFormField("bloc_add_message.message_textarea", "textarea", "message_textarea", "", "ONSELECT=\"storeCaret(this);\" ONCLICK=\"storeCaret(this);\" ONKEYUP=\"storeCaret(this);\"" );
$echo_html -> MxText("bloc_add_message.chaine_smileys", $chaine_smileys);
$echo_html -> MxText("bloc_add_message.bloc_note.pasDeNote", $f_lang['pasDeNote']);
$echo_html -> MxText("bloc_add_message.addMessageBlocAdd", $f_lang['addMessageBlocAdd']);
 
/* affichage des variables pour la partie des messages / page */
$echo_html -> MxText("bloc_nb_messages_page.messages", $f_lang['messages']);
$echo_html -> MxText("bloc_nb_messages_page.messages_a", $f_lang['messages_a']);
$echo_html -> MxText("bloc_nb_messages_page.page", $f_lang['page']);
$echo_html -> MxText("bloc_nb_messages_page.nbre_messages", $f_lang['nbre_messages']);
 
/* action lors du clique sur le submit du formulaire */
$echo_html -> MxText("bloc_add_message.action_url", $chem_absolu."add_message.php?".$urlExtAdd);
 
/* page précédente / suivante */
$page = floor($HTTP_GET_VARS['debut'] / $nb_pages) + 1;
$nb_pages_total = ceil($total_messages_livre / $nb_pages);
 
//précédente
if ($page > 1)
 $echo_html -> MxText("bloc_liste_pages.page_pre", "<a href=\"?debut=".($HTTP_GET_VARS['debut'] - $nb_pages).$urlExtAdd."\">".$f_lang['precedente']."</a>" );
else
 $echo_html -> MxText("bloc_liste_pages.page_pre", "<font class=\"Gris_prec_suiv\">".$f_lang['precedente']."</font>" );
 
//suivante
if ($page < $nb_pages_total)
 $echo_html -> MxText("bloc_liste_pages.page_sui", "<a href=\"?debut=".($HTTP_GET_VARS['debut'] + $nb_pages).$urlExtAdd."\">".$f_lang['suivante']."</a>" );
else
 $echo_html -> MxText("bloc_liste_pages.page_sui", "<font class=\"Gris_prec_suiv\">".$f_lang['suivante']."</font>" );
 
 
/* affichage de l'ensemble des pages disponibles */
$debut_page = $page - ceil($nb_pages_aff / 2);
if (($debut_page + $nb_pages_aff) > $nb_pages_total){
 $debut_page = $nb_pages_total - $nb_pages_aff + 1;
}
if ($debut_page < 1)
 $debut_page = 1;
 
$save_debut_page = $debut_page;
$liste_pages_dispos = "";
for ($i = 1; $i <= $nb_pages_aff; $i++){
 if ($debut_page <= $nb_pages_total){
  if ($debut_page == $page)
   $liste_pages_dispos .= "<b>".$debut_page."</b>";
  else
   $liste_pages_dispos .= "<a href=\"?debut=".(($debut_page - 1) * $nb_pages).$urlExtAdd."\">".$b.$debut_page.$non_b."</a>";
 
  if ($i < $nb_pages_aff && $debut_page < $nb_pages_total)
   $liste_pages_dispos .= "-";
 }
 
 $debut_page++;
}
 
if (($save_debut_page + $nb_pages_aff) <= $nb_pages_total)
 $liste_pages_dispos .= " ... "."<a href=\"?debut=".(($nb_pages_total - 1) * $nb_pages).$urlExtAdd."\">".$nb_pages_total."</a>";
 
if ($save_debut_page > 1)
 $liste_pages_dispos = "<a href=\"?debut=0".$urlExtAdd."\">1</a> ... ".$liste_pages_dispos;
 
$echo_html -> MxText("bloc_liste_pages.suite_pages", $liste_pages_dispos);
 
/* informations sur la page en cours */
$echo_html -> MxText("bloc_nb_messages_page.nb_messages_total", $total_messages_livre);
$echo_html -> MxText("bloc_nb_messages_page.page_en_cours", $page);
if ($total_messages_livre > 0){
 $message_de_a1 = $debut + 1;
 if ($page == $nb_pages_total)
  $message_de_a2 = $total_messages_livre;
 else
  $message_de_a2 = $debut + $nb_pages;
}
else{
 $message_de_a1 = 0;
 $message_de_a2 = 0;
}
 
$echo_html -> MxText("bloc_nb_messages_page.message_de_a1", $message_de_a1);
$echo_html -> MxText("bloc_nb_messages_page.message_de_a2", $message_de_a2);
 
/* message éventuel à l'encontre d'un visiteur */
if ($HTTP_GET_VARS['no_ip'] == "1" )
 $echo_html -> MxText("message_alert", message_javascript($f_lang['no_ip'], false));
else if ($HTTP_GET_VARS['time_erreur'] == "1" )
 $echo_html -> MxText("message_alert", message_javascript($f_lang['time_erreur'], false));
else if ($HTTP_GET_VARS['ok_post'] == "1" )
 $echo_html -> MxText("message_alert", message_javascript($f_lang['ok_post'], false));
else
 $echo_html -> MxText("message_alert", "" );
 
/* moteur de recherche */
if ($ok_aff_moteur){
 /* texte langue */
 $echo_html -> MxText("bloc_moteur.text_select_search", $f_lang['text_select_search']);
 $echo_html -> MxText("bloc_moteur.text_ok_search", $f_lang['text_ok_search']);
 
 /* valeur du champ */
 $echo_html -> MxText("bloc_moteur.value_search", urldecode($HTTP_GET_VARS['mots_search']));
}
else
 $echo_html -> MxBloc("bloc_moteur", "rese" );
 
/* on supprime le controle javascript de la validité d'une email si le visiteur ne peut ajouter son email */
if (!$ok_mail){
 $echo_html -> MxBloc("bloc_verif_mail", "rese" );
 $echo_html -> MxBloc("bloc_verif_mail2", "rese" );
}
else
 $echo_html -> MxText("bloc_verif_mail2.erreur_mail", $f_lang['erreur_mail']);
 
 
/* affichage des messages */
if ($nbre_messages > 0){
 $echo_html -> WithMxPath("bloc_boucle_mess", "relative" );
 for ($i = 1; $i <= $nbre_messages; $i++){
  $echo_html -> MxBloc("bloc_corps_messages", "modify", $chem_template."corps_messages.htm" );
 
  /* pseudo */
  $echo_html -> MxText("bloc_corps_messages.pseudo", $table_nom_message[$i]);
 
  /* image home page */
  if ($table_site_message[$i] && $ok_url){
   if (substr($table_site_message[$i], 0, 7) != "http://" )
    $table_site_message[$i] = "http://".$table_site_message[$i];
 
   $echo_html -> MxText("bloc_corps_messages.img_home", " <a href=\"".$table_site_message[$i]."\" target=\"_blank\"><img src=\"".$chem_absolu."images/home.gif\" alt=\"".$f_lang['go_home']." [".$table_site_message[$i]."]\" border=\"0\" width=\"12\" height=\"12\"></a>" );
  }
  else
   $echo_html -> MxText("bloc_corps_messages.img_home", "" );
 
  /* image email */
  if ($table_email_message[$i] && $ok_mail)
   $echo_html -> MxText("bloc_corps_messages.img_mail", " ".CryptageEmail($table_email_message[$i]));
  else
   $echo_html -> MxText("bloc_corps_messages.img_mail", "" );
 
  /* pays / ville */
  if ($table_ville_pays_message[$i] && $ok_pays)
   $echo_html -> MxText("bloc_corps_messages.pays_ville", " (".$table_ville_pays_message[$i]." )" );
  else
   $echo_html -> MxText("bloc_corps_messages.pays_ville", "" );
 
  $echo_html -> MxText("bloc_corps_messages.message_le", $f_lang['message_le']);
  $echo_html -> MxText("bloc_corps_messages.message_date", transform_date($table_time_message[$i]));
  $echo_html -> MxText("bloc_corps_messages.message_heure", transform_heure($table_time_message[$i]));
  $echo_html -> MxText("bloc_corps_messages.message_a", $f_lang['message_a']);
 
  if ($ok_note){
   $echo_html -> MxText("bloc_corps_messages.bloc_aff_note.message_note", $f_lang['message_note']);
   if ($table_note_message[$i] == "" )
    $table_note_message[$i] = "-";
   $echo_html -> MxText("bloc_corps_messages.bloc_aff_note.note", $table_note_message[$i]);
  }
  else
   $echo_html -> MxBloc("bloc_corps_messages.bloc_aff_note", "rese" );
 
  $echo_html -> MxText("bloc_corps_messages.message_write", nl2br($table_messages[$i]));
 
  /* nouveau bloc : espace entre chaque message */
  $echo_html -> MxBloc("bloc_space", "modify", $chem_template."space.htm" );
 
  $echo_html -> MxBloc("", "loop" );
 }
 
 $echo_html -> MxText("no_message", "" );
}
else
 $echo_html -> MxText("no_message", "<p align=\"center\">".$f_lang['no_message']."</p>" );
 
$html = $echo_html -> MxWrite("", true);
 
/* masquer le bloc de visualisation des messages */
if ($HTTP_GET_VARS['seeMess'])
 $html = ereg_replace("<!--=== BLOC MESSAGES ===-->(.)*<!--=== /BLOC MESSAGES ===-->", "", $html);
 
/* masquer le bloc de visualisation des notes */
if ($HTTP_GET_VARS['seeNotes'])
 $html = ereg_replace("<!--=== BLOC NOTES ===-->(.)*<!--=== /BLOC NOTES ===-->", "", $html);
 
/* masquer le bloc pour ajouter un message */
if ($HTTP_GET_VARS['seeAdd']){
 $html = ereg_replace("<!--=== BLOC ADD MESSAGE ===-->(.)*<!--=== /BLOC ADD MESSAGE ===-->", "", $html);
 $html = ereg_replace("<!--=== Text SEE ===-->(.)*<!--=== /Text SEE ===-->", "", $html);
}
else
 $html = ereg_replace("<!--=== Text ADD ===-->(.)*<!--=== /Text ADD ===-->", "", $html);
 
echo $html;
?>


 
Quelqu'un peut m'aider...??? S'il vous plaît ?  :)


Message édité par Profil supprimé le 20-06-2007 à 20:22:50
Reply

Marsh Posté le 21-06-2007 à 03:03:56    

Ben, euh, je te conseillerais bien plutôt de mettre à jour ta mini-messagerie, les nouvelles versions intégrant un captcha :)

Reply

Marsh Posté le 21-06-2007 à 08:52:23    

Ha 'ué...?  :heink:  
 
Merdouille... Ca m'arrange pas...  :sweat:  
J'avais supprimé et modifié pas mal de trucs à la mano, pour arriver à une version hyper minimaliste parfaitement intégrée à mon site...
 
Mais bon, je recommencerai à partir de la dernière version si jamais je ne trouve pas la solution à mon problème. Merci pour l'info que je n'avais pas remarqué.
 
Mais j'aimerai quand même comprendre mon problème actuel, pour des raisons pratiques (motif ci-dessus), et pour mes connaissances personnelles (je déteste abandonner parce que je n'aurais pas compris)...
 
Ce que je ne comprends pas :
 
Suivant toute logique, le code PHP se doit d'être intégré dans une page PHP, et pas dans une page HTML...
Mais alors, en dehors de l'image qui ne s'affiche pas, pourquoi une partie du code PHP (texte + case où entrer le code Captcha) est-il quand même traité quand je l'insère dans le template HTML ?  :heink:  
 
Le template HTML ne serait-il pas traité comme du HTML, mais comme une "extension" à la page PHP qui y fait appel ???
 
Si on pouvait m'expliquer un ou deux trucs là-dessus, ça m'aiderait beaucoup...  :jap:


Message édité par Profil supprimé le 21-06-2007 à 08:55:05
Reply

Marsh Posté le 21-06-2007 à 18:08:52    

Quelqu'un connait-il bien Firefox...?
 
Car je viens de m'apercevoir d'un truc : lorsque j'affiche le code source de la page, il y a 2 ou 3 lignes de code (comme par hasard, parmis celles que j'ai ajouté) qui s'affichent en rose...!
 
Cette couleur rose signifie quoi ???
 
Le code de add_message.htm :

Citation :

<?php  
 $cryptinstall="./crypt/cryptographp.fct.php";
 include $cryptinstall;  
 ?>

 
<div align="center">
  <center>
  <table border="0" width="90%" cellspacing="0">
 
<FORM NAME="ajouter" METHOD="post" ACTION="<mx:text id="action_url"/>" onsubmit="javascript:return verif_add();">
 <tr>
<td width="100%" class="row_bleu">
  <table border="0" width="100%" cellspacing="0" cellpadding="5">
 <tr>
<td width="100%" class="row_gris">
 <table border="0" width="100%" cellspacing="0" cellpadding="0">
 </tr>
 <tr>
<td width="100%" height="20" align="center"><mx:text id="nom_pseudo_visiteur"/></td></tr>
 <tr>
<td width="100%" height="30" align="center">
 <p><input type="text" name="nom" size="20" maxlength="20"></p></td></tr>
 
<mx:bloc id="bloc_email">
 <tr>
<td width="35%" height="30"><mx:text id="email_visiteur"/></td>
<td width="65%" height="30"><input type="text" name="email" size="34" maxlength="150"></td>
 </tr>
</mx:bloc id="bloc_email">
 
<mx:bloc id="bloc_site">
 <tr>
<td width="35%" height="30"><mx:text id="site_web_visiteur"/></td>
<td width="65%" height="30"><input type="text" name="site" size="34" maxlength="150"></td>
 </tr>
</mx:bloc id="bloc_site">
 
<mx:bloc id="bloc_pays">
 <tr>
<td width="35%" height="30"><mx:text id="ville_pays_visiteur"/></td>
<td width="65%" height="30"><input type="text" name="ville_pays" size="34" maxlength="60"></td>
 </tr>
</mx:bloc id="bloc_pays">
 
<mx:bloc id="bloc_note">
 <tr>
<td width="35%" height="30"><mx:text id="note_visiteur"/></td>
<td width="65%" height="30">
 <p><select size="1" name="note_site">
 <option value="" selected>-</option>
 <option value="10">10<mx:text id="note_super"/></option>
 <option value="9">9</option>
 <option value="8">8</option>
 <option value="7">7</option>  
 <option value="6">6</option>
 <option value="5">5<mx:text id="note_moyen"/></option>
 <option value="4">4</option>
 <option value="3">3</option>  
 <option value="2">2</option>
 <option value="1">1</option>
 <option value="0">0<mx:text id="note_rate"/></option>
 </select></p>
</td>
</mx:bloc id="bloc_note">
 
 </tr>
 <tr>
<td width="100%" colspan="2" height="26">
  <p align="center"><mx:text id="message_visiteur"/></p></td>
 </tr>
 <tr>
<td width="100%" colspan="2">
  <p align="center"><mx:text id="chaine_smileys"/></p></td>
 </tr>
 <tr>
<td width="100%" colspan="2">
 <p align="center"><mx:formField id="message_textarea" rows="10" cols="20"/></p>
</td>
 </tr>
<tr>
<td width="100%" colspan="2" height="40">
 <p align="center">
<?php dsp_crypt(0,1); ?><br></p>
</td>
 </tr>
 <tr>
<td width="100%" colspan="2" height="40">
 Recopier le code : <input type="text" name="code"><br></p>
</td>
 </tr>

 <tr>
<td width="100%" colspan="2" height="40">
 <p align="center"><input type="submit" value="<mx:text id="ajouter_message_visiteur"/>" name="ajouter"><br></p>
</td>
 </tr>
  </table>
</td>
 </tr>
  </table>
</td>
 </tr>
  </FORM>
 
  </table>
  </center>
</div>


En noir : le code d'origine
En rouge : le code ajouté (antispam Captcha)
En rose : le code ajouté (antispam Captcha) affiché en rose dans Firefox dans l'affichage du code source de la page
 
Merci à ceux qui voudront bien se pencher sur mon problème, qui, je pense, pourrait servir à pas mal de monde...  :jap:

Reply

Marsh Posté le 21-06-2007 à 18:15:44    

PHP n'interprête pas les pages en .htm, .html
Tu devrais le savoir ca.
 
Dès le moment où tu utilise du PHP, tu dois renommer ta page en .php.


---------------
"Nous avons tous nos machines du temps. Celles qui nous ramènent en arrière sont les souvenirs, celles qui nous projettent en avant sont les rêves."
Reply

Marsh Posté le 21-06-2007 à 18:15:44   

Reply

Marsh Posté le 21-06-2007 à 19:56:41    

Merci.  :jap:  
Et non je ne devrais pas le savoir, je ne sais pas programmer... Juste bidouiller...  :D  
En l'occurence, je pensais que dans le cas présent, le template n'était qu'une "extension" du PHP qui l'appelle, un peu comme si on pouvait le nommer n'importe comment, le contenu étant pris comme du PHP (je trouvais que ça collait bien, car même dans le HTML, une partie du code PHP -la case où saisir le code du Captcha- était correctement traitée).
 
Mais ce n'est pas le cas.
Il faut donc intégrer le code dans le index.php et le add_message.php de la messagerie. OK.
 
Pour la première partie du code à intégrer :

Citation :

<?php  
 $cryptinstall="./crypt/cryptographp.fct.php";
 include $cryptinstall;  
 ?>


Je viens d'intégrer les 2 lignes du milieu, au début d'index.php, qui commençait déjà par "<?php".
 
Pour la deuxième partie du code (sert à afficher l'image du Captcha) :

Citation :

<?php dsp_crypt(0,1); ?>


Là, je n'ai vraiment aucune idée de l'endroit où insérer ce code...  :heink:  
Tous mes essais se sont soldés par des erreurs.
 
Vous trouverez le contenu d'index.php dans un post précédent, si vous voulez jeter un oeil...
 
Pour le code de vérification, ce sera dans add_message.php, qui contient déjà d'autres instructions de vérification. Mais nous n'en sommes pas là.  :D

Message cité 1 fois
Message édité par Profil supprimé le 21-06-2007 à 20:45:52
Reply

Marsh Posté le 22-06-2007 à 14:36:02    

Ummo, toi, ici ? :)
Les aliens vont abducter ta bdd pardi ;)

 

Sérieusement
1) tu fais un tableau de chiffre lettres+trucs dégueux, tu en fais une chaine, tu la passe en session
2) tu construit une image à partir de la glib et là .. tu dois avoir en postdata le résultat de cette variable de session, voilà ;)

 

3) Ca élimine tout le spam possible : démo ici -> http://www.bens-world.org/forum/po [...] topic&f=16
( les méthodes artisanales intéressent moins les "référenceurs" )


Message édité par grosbin le 22-06-2007 à 14:38:18

---------------
Photos Panoramiques Montagnes Haute Savoie
Reply

Marsh Posté le 22-06-2007 à 14:45:31    

on est vendredi, je me permets cette écartade:
http://handrooster.com/comic/imabot.jpg

Reply

Marsh Posté le 24-06-2007 à 21:08:03    


Personne pour me donner ne serait-ce qu'un petit conseil...?  :sweat:

Reply

Marsh Posté le 13-07-2007 à 16:14:37    

Ouh du code Modelixe, je croyais que c'était mort ce truc .. :D


---------------
Photos Panoramiques Montagnes Haute Savoie
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed