Bonjour tlm,
Voila j'ai un formulaire de soumission d'articles qui ne fonctionne pas comme je le désirerai. Le problème se situe au niveau du réaffichage des variables envoyées par le formulaire. En fait quand un utilisateur ne remplit pas un champs comme il le faut et appuies sur envoyé (cible=la même page), les champs seront préremplis avec ce qu'il a envoyé. Seulement les données ne s'affichent pas bien. Par exemple l'amour devient l\'amour, malgré le stripslashes et les saut à la ligne deviennent /r/n.
Bref, après avoir tout éssayé rien ne fonctionne.
Ah oui j'allais oublié, j'ai déja magic_quotes_gpc sur Off.
Voici mon code:
Si rien ne vous apparait étrange, pourriez vous tester ce script chez vous, car je suspecte que quelque chose ne va pas dans ma configuration .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125 <?php //---------------------------------------------------- //Debut de la partie du code qui doit être mise avant tout code html //---------------------------------------------------- session_start(); mysql_connect("localhost", "root", ""); mysql_select_db("articles"); if(empty($_SESSION ['pseudo'])) { header('location: ../login.php'); exit(); } //-------------------------------------------------- //Fin de la partie du code qui doit être mise avant tout code html //-------------------------------------------------- mysql_connect("localhost", "root", ""); mysql_select_db("articles"); $erreur = ''; if (!empty($_POST['titre']) AND !empty($_POST['contenu']) AND !empty($_POST['infos_auteur']) AND !empty($_POST['mots_cles'])) { $_POST['titre'] = mysql_real_escape_string($_POST['titre']); $_POST['contenu'] = mysql_real_escape_string($_POST['contenu']); $_POST['infos_auteur'] = mysql_real_escape_string($_POST['infos_auteur']); $_POST['mots_cles'] = mysql_real_escape_string($_POST['mots_cles']); //Transformer $_POST['mots_cles'] en array et compter le nombre d'antrées $nbre_mots_cles = count(explode(",", $_POST['mots_cles'])); //Si le champ titre compte moins de deux mots if (str_word_count($_POST['titre']) < 2 ) { $erreur .= '* Le titre doit contenir au moins deux mots.<br />'; } //Vérifier si l'utilisateur à choisi une catégorie if ($_POST['categories'] == 0) { $erreur .= '* Veuillez choisir une catégorie ou sous catégorie.<br />'; } //Si le contenu contient moins de 200 mots ou plus de 5000 caractères if ( strlen($_POST['contenu']) > 5000 OR str_word_count($_POST['contenu']) < 200 ) { $erreur .= '* Votre articles doit contenir un minimum de 200 mots et pas plus de 5.000 caractères au maximum. La taille idéale d\'un article est de 250 à 700 mots.<br />'; } //Si la bio de l'auteur ne doit pas dépasser 600 caractères if ( strlen($_POST['infos_auteur']) > 600 ) { $erreur .= '* Votre bio ne doit pas dépasser 600 caractères.<br />'; } //Le nombre de mots clès ne doit pas être supérieur à 20 mots et inférieur à 2 mots if ($nbre_mots_cles < 2 OR $nbre_mots_cles > 20 ) { $erreur .= '* Vous devez saisir au moins 2 mots-clés et pas plus de 20. N\'oubliez pas de séparer chaque mot-clé par une virgule.<br />'; } //Si tout est bon on enregistre les informations et affiche un message "success". if ($erreur == NULL) { echo 'Votre Article a bien été ajouté, cependant un administrateur doit le valider avant qu\'il apparaisse en ligne.<br />'; } } //Si tous les champs sont manquant elseif(empty($_POST['titre']) AND empty($_POST['contenu']) AND empty($_POST['infos_auteur']) AND empty($_POST['mots_cles'])) { $_POST['titre'] = ''; $_POST['contenu'] = ''; $_POST['infos_auteur'] = ''; $_POST['mots_cles'] = ''; } //Si un seul champs ou plus sont manquants else { $erreur .= '* Un champ est maquant, veuillez remplir tous les champs.<br />'; } ?> <h2>Ajouter un Article</h2> <?php if(!empty($erreur)) { echo '<p>'.$erreur.'</p>'; } ?> <form method="POST" action="ajouter_article.php"> <fieldset color="red" ><Legend><strong>Ajouter un Article</strong></legend> Titre de l'article : <input type="text" name="titre" maxlength="80" size="35" value="<?php echo stripslashes(htmlspecialchars($_POST['titre'])); ?>" /><br /><br /> Catégories et sous-catégories<br /> <select name="categories" style="font-size:9pt"> <option value='0'>Aucune <!-- AFFAIRES --> <option value='1'> Affaires</option> <option value='17'> Faillite</option> <option value='18'> Administration</option> <option value='19'> Relations client</option> <option value='20'> Financement</option> <option value='21'> Entreprises</option> <option value='22'> Etude de marché</option> <option value='23'> Vente</option> <option value='24'> Association et JV</option> <!-- autres catégories et sous catégories --> </select><br /><br /> Le corps de votre article :<br /> <textarea name="contenu" cols="55" rows="20" /><?php echo stripslashes(htmlspecialchars($_POST['contenu'])); ?></textarea><br /><br /> A propos de l'auteur : <br /><textarea name="infos_auteur" cols="55" rows="5" /> <?php echo stripslashes(htmlspecialchars($_POST['infos_auteur'])); ?> </textarea><br /><br /> Mots clés : <input type="text" name="mots_cles" size="35" value="<?php echo stripslashes(htmlspecialchars($_POST['mots_cles'])); ?>"/><br /> <input type="submit" value="soumettre" /> </fieldset> </form>
Merci à vous.
Vicent.
Partager