Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/06/2008, 23h35   #1
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 130
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 130
Points : 32
Points : 32
Par défaut Formulaire livre d'or

j'ai fait un formulaire pour un livre d'or mais il est pas sécurisé pour un sou.
je décide de mettre un captcha venant du site captcha.fr

voici le code de ma page formulaire.php puis celle de la page ajouter.php qui incorpore les données

le soucis c'est que le formulaire ne vérifie pas la cohérence entre l'image du captcha et le texte que je tape. du coup il insère quand même les infos donc sécurité=0

code de formulaire.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
 
<?php 
$cryptinstall="./crypt/cryptographp.fct.php";
include $cryptinstall;  
?>
<?
//// On inclut le fichier de connexion à la base SQL ////
 
echo "<html> \n";
echo "<head> \n";
echo "<script language=\"JavaScript\" type=\"text/javascript\"> \n";
echo "function smiley(ajj) \n";
echo "{ \n";
echo "document.form.message.value+=ajj; \n";
echo "} \n";
echo "</script> \n";
 
//// On inclut le fichier de connexion à la base SQL ////
 
include("inc/connect.php");
 
echo "<title>Livre d'or - Index</title> \n";
echo "</head> \n";
echo "<body> \n";
echo "<form name=\"form\" method=\"post\" action=\"ajouter.php?SID\">";
echo "<table border=\"0\" align=\"center\" cellpadding=\"2\" cellspacing=\"1\" width=\"400\"> \n";
echo " <tr>\n";
echo "     <td colspan=\"2\" class=\"row_1\"> \n";
echo "         <b>Poster un commentaire sur le livre d'or</b> \n";
echo "     </td> \n";
echo " </tr> \n";
echo " <tr>\n";
echo "     <td class=\"row_2\"> \n";
echo "         <b>Auteur :</b> \n";
echo "     </td>\n";
echo "     <td class=\"row_2\"> \n";
echo "         <input type=\"text\" name=\"auteur\" class=\"input1\"><font color=red>*</font> \n";
echo "     </td>\n";
echo " </tr>\n";
echo " <tr>\n";
echo "     <td class=\"row_2\"> \n";
echo "         <b>Email :</b> \n";
echo "     </td>\n";
echo "     <td class=\"row_2\"> \n";
echo "         <input type=\"text\" name=\"email\" class=\"input1\"><font color=red>*</font> \n";
echo "     </td> \n";
echo " </tr> \n";
echo " <tr> \n";
echo "     <td valign=\"top\" class=\"row_2\"> \n";
echo "     </td> \n";
echo "     <td valign=\"top\" class=\"row_2\"> \n";
echo "         <b>Commentaire :</b><br> \n";
echo "         <textarea name=\"message\" wrap=\"VIRTUAL\" cols=\"40\" rows=\"6\" class=\"input1\"></textarea><font color=red>*</font><br> \n";
echo "     </td> \n";
echo " </tr> \n";
echo "<tr>";
echo '<td align="center">';
dsp_crypt(0,1);
echo '</td>';
echo '</tr>';
echo '<tr>';
echo '<td align="center">Recopier le code:<br><input type="text" name="code">';
echo '</td>';
echo '</tr>';
echo " <tr>\n";
echo "     <td colspan=\"2\" class=\"row_1\">\n";
echo "         <input type=\"submit\" value=\"Envoyer\" class=\"input2\"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=red>*</font> Champs obligatoires\n";
echo "     </td>\n";
echo " </tr>\n";
echo "</table>\n";
echo "</form>\n";
?>
code de ajouter.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
 
<?php 
$cryptinstall="./crypt/cryptographp.fct.php";
include $cryptinstall;  
?>
<?
include("/crypt/verifier.php");
//// On vérifie que les champs auteur et commentaire sont bien remplis ////
$_POST['message']=trim($_POST['message']);
$_POST['auteur']=trim($_POST['auteur']);
 
if(empty($_POST['auteur']) || empty($_POST['message']))
{
 echo "Erreur \n";
}
 
else
 {
 
 
//function checkmail ($email) {
 
//if (ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.'@'.'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $email)) {
//	return true;
//}else {
//	return false;
 
 
 
  //// On inclut le fichier de connexion à la base SQL ////
 
  include("inc/connect.php");
 
  //// Récupération de la date actuelle ////
 
  $date=date("d/m/Y H:i");
 
 
  //// On récupère l'adresse IP du visiteur ////
 
  $ip="$_SERVER[REMOTE_ADDR]";
 
 
  //// On nettoie le commentaire et le pseudo ////
 
  if($html=="non")
   {
    $_POST['message']=ereg_replace("<[^>]*>", "", $_POST['message']);
    $_POST['message']=htmlspecialchars($_POST['message']);
   }
 
  $_POST['message']=stripslashes($_POST['message']);
  $_POST['message']=str_replace(chr(10)," <br> ",$_POST['message']);
  $_POST['message']=str_replace(chr(13),"",$_POST['message']);
 
  $_POST['auteur']=htmlspecialchars($_POST['auteur']);
  $_POST['email']=htmlspecialchars($_POST['email']);
 
  //// Connexion à la base mySQL ////
 
  @MYSQL_CONNECT($serveur,$utilisateur,$mdp) or die ("Connexion impossible");
  @MYSQL_SELECT_DB($db) or die ("Connexion à la base $base impossible");
 
 
  //// On insère le nouveau commentaire ////
 
  mysql_query("INSERT INTO nanda_messages VALUES (\"\",\"$_POST[auteur]\",\"$date\", \"$_POST[email]\", \"$_POST[message]\",\"$ip\")");
  echo "<meta http-equiv=\"refresh\" content=\"0;url=http://www.last-chronicle.com/Nanda/frame.php?go=5\">\n ";
 
  //// On ferme la connexion à la base mySQL ////
 
  mysql_close();
 }
?>
merci d'avance
Baldric de Dol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2008, 00h23   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 383
Points : 16 383
Tu ne nous as pas mis la partie qui pose probleme, qui je suppose, est dans verifier.php

juste une remarque tu as mis une fois "/crypt" et ensuite "./crypt" comme chemin... tu n'aurais pas une alerte pour un des deux include car si tu n'es pas a la racine du site, les deux chemins ne sont pas équivalents ?


Et sinon, epargne toi d'echapper tous tes guillemets html
Code :
echo "     <td colspan=\"2\" class=\"row_1\">\n";
Code :
echo '<td colspan="2" class="row_1" />',"\n";
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2008, 14h20   #3
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 130
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 130
Points : 32
Points : 32
Par défaut merci pour le coup de main

grâce à ta réflexion j'ai modifier le code avec le rajout du "." manquant dans mon chemin et ... ça marche

Baldric de Dol est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h46.


 
 
 
 
Partenaires

Hébergement Web