Bonsoir,
J'ai actuellement 2 listes déroulantes sur ma page de rédaction d'articles et avant de valider l'article pour qu'il soit publié, l'utilisateur envoie tout ce qu'il a tappé/choisi sur une page de prévisualisation.
Sur cette page on met les valeurs _POST dans des Sessions ainsi :
Tout d'abord, est-ce assez sécurisé ? Vu que normalement il n'y a aucune insertion dans la base de donnée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $_SESSION['rubrique'] = $_POST['rubrique'] ; $_SESSION['categorie'] = $_POST['categorie'] ; $_SESSION['titre'] = $_POST['titre'] ; $_SESSION['accroche'] = $_POST['accroche'] ; $_SESSION['contenu'] = $_POST['contenu'] ; $_SESSION['pseudo'] = $_POST['pseudo'] ; $_SESSION['id_news'] = $_POST['id_news'] ;
Le traitement se fait par la suite sur une autre page :
Je suis en utf-8 donc je devrais utiliser htmlentities pour l'accroche, titre et le contenu ou sa va comme c'est fait actuellement ? J'ai aucun souci à signaler c'est juste que cela me parait un peu bizarre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $titre = htmlspecialchars($_SESSION['titre']); $accroche = mysql_real_escape_string($_SESSION['accroche']); $contenu = mysql_real_escape_string(html_entity_decode($_SESSION['contenu'], ENT_QUOTES)); $categorie = htmlspecialchars($_SESSION['categorie'], ENT_QUOTES); $rubrique = htmlspecialchars($_SESSION['rubrique'], ENT_QUOTES); $pseudo = htmlspecialchars($_SESSION['pseudo'], ENT_QUOTES); $id_news = intval($_SESSION['id_news']);
Je ne sais pas si je dois avoir des é ou bien des é dans ma base de donnée qui est en utf8_general_ci. Actuellement lors de l'insertion j'ai simplement des é.
Bref j'ai pleins de petites questions donc je reviens au sujet principale.
Voici le code que j'utilise pour afficher sur ma page de rédaction les 2 formulaires qui retournent les id et nom des catégories et rubriques et qui les listent automatiquement.
/* EDIT : PROBLEME RESOLU COMME UN GRAND, DOMMAGE QU'IL N'AIT PAS DE FONCTIONS DE TRACAGE AVEC VBULLETIN*/
Ce que j'aimerais c'est qu'une fois envoyé sur la page de prévisualisation et que les infos ont été mis en Session, lors de mon retour sur la page de rédaction pour modifier l'article si il n'est pas complet/rempli/modifiable... que les listes déroulantes soient actualisés avec la valeur de la Session. Qu'elle se met directement sur la valeur de session et non qu'elles reviennent à zéro.
J'ai eu quelques soucis en testant avec des conditions, la valeur en Session était bien gardée mais la liste déroulante n'était pas actualisée en conséquence et pire, impossibilité par la suite de changer la catégorie ou rubrique vu que la valeur en session restait tout le long à moins de détruire la session.
Voici le code que j'utilise actuellement.
/* EDIT : PROBLEME RESOLU COMME UN GRAND */
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 <p> <label><?php echo $lang['label_cat']; ?></label> <select id="categorie" name="categorie"> <option value="-1"><?php echo $lang['choix_cat']; ?></option> <?php $categorie_sql = 'SELECT id_cat, nom_cat FROM categorie_news ORDER BY nom_cat ASC'; $categorie_requete = mysql_query($categorie_sql) or die('$categorie_sql<br/>'.mysql_error()); while ($donnees_categorie = mysql_fetch_assoc($categorie_requete)) { echo'<option value="'.$donnees_categorie['id_cat'].'">'.$donnees_categorie['nom_cat'].'</option>'; } ?> </select> </p> <p> <label><?php echo $lang['label_rub']; ?></label> <select id="rubrique" name="rubrique"> <option value="-1"><?php echo $lang['choix_rub']; ?></option> <?php $rubrique_sql = 'SELECT id_rub, nom_rub FROM rubrique_news ORDER BY nom_rub ASC'; $rubrique_requete = mysql_query($rubrique_sql) or die('$rubrique_sql<br/>'.mysql_error()); while ($donnees_rubrique = mysql_fetch_assoc($rubrique_requete)) { echo'<option value="'.$donnees_rubrique['id_rub'].'">'.$donnees_rubrique['nom_rub'].'</option>'; } ?> </select> </p>
/* PROBLEME EN COURS, TITRE SUJET */
Voila je pense que le titre n'est pas assez explicite.
j'ai sur ma page de prévisualisation, 3 boutons et 2 formulaires.
Le premier formulaire ne contient qu'un bouton qui va permettre de mettre les informations dans la base de donnée. Aucun problème de ce côté.
Le problème vient de l'autre formulaire que voici.
Comme vous pouvez le voir, la destination est unique et pourtant il y a bien 2 boutons différents qui ont 2 actions totalement différentes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <form action="rediger_news.php" method="post"> <fieldset> <legend>Modifications</legend> <p><strong>Modifier</strong> : Revenir sur la saisie de l'article.</p> <input name="action" value="Modifier" type="submit"/> <p><strong>Effacer</strong> : Attention ceci effacera tout le travail en cours !</p> <input name="action" value="Effacer" type="submit"/> </fieldset> </form>
Le premier est sensé revenir sur la page de rédaction avec les valeurs de Session sauvegardées correctement ce qui fonctionne.
Le second doit revenir sur cette page mais a pour but d'effacer toutes les données en session.
Je ne sais pas comment faire cette seconde opération, je pense bien qu'un petit session_unset(); pourrait faire l'affaire mais je ne sais comment mettre tout ceci en place vu que si je fais ceci que je clique sur n'importe lequel des deux boutons il va tout effacer.
Si je ne suis pas assez clair avec mon problème, je suis près à reexpliquer tout plus précisement.
Merci de votre aide.
/* PROBLEME EN COURS */
Partager