Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: an22 le le 14-05-2014 a 13:46:44

Titre: Problème Ckeditor : Recuperation données
Posté par: an22 le le 14-05-2014 a 13:46:44

Bonjour,

J'ai intégré Ckeditor sur la page ajout_dossier, et ensuite j'ai voulu l'intégrer sur la page de modification, mais une fois fait, j'ai trouvé quelques chose de bizarre: Via la page de rajoute, j'ai rajouté des données avec des tableaux etc... Mais lorsque j'ai ouvert la page de modification, ce n'est pas tu tout ce que j'avais fait: Les tableaux sont plus petite, une partie des tableaux à disparu, bref, il y une énorme différences entre ce que j'ai fait et ce que j'ai trouvé sur la page de modification.
Pour comprendre: Regardez cette page: http://www.cine-seriestv.tk/dossier.html?id=1 (C'est ca que j'ai fait au moment d'ajouter mon dossier)
Et après regardez celui-là: http://www.cine-seriestv.tk/dossier.html?id=2 (Dans la page de modification j'obtiens ca)

Vous pouvez m'aider?

Voici mon fichier edit_dossier:


Code:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://www.cine-seriestv.tk/ckeditor/ckeditor.js"></script>
<meta charset="utf-8" />
<link rel="stylesheet" href="design.css" />

<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<title>ciné-sériestv.tk - Toute l'actu!</title>
<style type="text/css">

</style>
</head>
<body>
<?php
//d'abord on va se connecter à la bas
mysql_connect("", "", ""); //On se connecte à Mysql
mysql_select_db("");// on selectionne la base

if (isset($_GET['id']))
{

$_GET['id'] = mysql_real_escape_string(htmlspecialchars($_GET['id']));
// On récupère seulement les informations de la news en fonction de son id.
$return = mysql_query('SELECT * FROM dossiers WHERE id=\'' . $_GET['id'] . '\'');
$data = mysql_fetch_array($return);
// declaration du titre
$titre = addslashes ($data['titre']);
// declaration de la chaîne
$chaine = addslashes ($data['chaine']);
// declaration du contenu
$contenu = addslashes($data['contenu']);


$id_dossiers = $data['id']; // Nous jouons sur cette variable pour la modification.

}

?>


<center>
<h3>Modifier l'article </h3>
<!-- Voici le formulaire -->
<form method="post" action="edit_dossier_ok.html">
Titre du dossier : <input name="titre" value="<?php echo $titre; ?>"/><br />
Chaine : <input name="url" value="<?php echo $chaine; ?>"/><br />
contenu :<br />
<input type="hidden" name="id_dossiers" value="<?php echo $id_dossiers; ?>" />
<textarea name="contenu"><?php echo $contenu; ?></textarea>
<script type="text/javascript">
CKEDITOR.replace('contenu');
</script>

<input type="submit" value="Envoyer" />
</form>
<!-- fin du formulaire -->
</center>


<table border="1"><tr>
<th>Titre</th>
<th>Modifier</th>
</tr>
<?php
// On selectionne les news par ordre( du nouveau à l'ancien)
$return = mysql_query('SELECT * FROM dossiers ORDER BY id DESC');
/* On fait une boucle while pour lister les news
en affichant leurs titres un lien "modifier" pour chaque news
*/
while ($data = mysql_fetch_array($return))
{
?>
<tr>
<td><?php echo stripslashes($data['titre']); ?></td>
<td><?php echo '<a href="edit_dossier.html?id=' . $data['id'] . '">'; ?>Modifier</a></td>
</tr>

<?php
} // Fin de la boucle
?>


</body>
</html>


Vous pouvez m'aider à trouver d'ou peut venir le problème?

Merci d'avance,

Titre: Re:Problème Ckeditor : Recuperation données
Posté par: jean-f le le 15-05-2014 a 13:20:20

bonjour,

tu peux montrer le code qui sert à afficher tes données ?

regarde aussi en passant ce que tu as dans la base de donnée comme enregistrement du contenu (voir si tu as toutes les balises)

si elles n'y sont pas c'est que tu as un prob lors de l'enregistrement si elles y sont c'est que tu as un prob d'affichage

d'ou ma demande de voir comment tu affiches les résultats de ta base.

Titre: Re:Problème Ckeditor : Recuperation données
Posté par: an22 le le 15-05-2014 a 19:53:01

Citation de: jean-f le le 15-05-2014 a 13:20:20
bonjour,

tu peux montrer le code qui sert à afficher tes données ?

regarde aussi en passant ce que tu as dans la base de donnée comme enregistrement du contenu (voir si tu as toutes les balises)

si elles n'y sont pas c'est que tu as un prob lors de l'enregistrement si elles y sont c'est que tu as un prob d'affichage

d'ou ma demande de voir comment tu affiches les résultats de ta base.


Bonjour,

Je pense plutôt que c'est pendant l'affichage d'ou vient le problème.
Le code que j'avais donné permet d'éditer les news. Donc je vais aussi donner le code qui permet de rajouter les news:


Code:

<!DOCTYPE html>
<html>
<head>
   <script type="text/javascript" src="http://www.cine-seriestv.tk/ckeditor/ckeditor.js"></script>
<meta charset="utf-8" />
<link rel="stylesheet" href="design.css" />

<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<title>ciné-sériestv.tk - Toute l'actu!</title>
</head>
<body>

<?php
mysql_connect("", "",""); //On se connecte à Mysql
mysql_select_db("");// on selectionne la base
      
if (isset($_POST['titre']) && isset($_POST['contenu']))
{
$titre = addslashes($_POST['titre']);
$chaine = addslashes($_POST['chaine']);
$contenu = addslashes($_POST['contenu']);


//on verifie si le champ titre et le champ contenu ne sont pas vides
if ($_POST['titre'] != NULL && $_POST['contenu'] != NULL )
{
//on balance tous dans la table
mysql_query ("INSERT INTO dossiers VALUES
('', '". $titre ."', '". $chaine ."', '". $contenu ."', '" .date("Y-m-d H:i:s" )."')" );
//on confirme l'envoie des données
echo "Le dossier a bien été ajouté.";
}
else// sinon on affiche un message d'erreur
{
echo "Des erreurs empêchent la validation du formulaire.";
}
}
mysql_close();// on ferme la connexion
?>

<form method="post" action="add-dossier.html">
Titre du dossier: <input name="titre"/><br/>
Chaine : <input name="categorie"/><br/>
contenu :<br/><textarea name="contenu"></textarea>
<script type="text/javascript">
CKEDITOR.replace('contenu');
</script>

<input type="submit" value="Envoyer"/>
</form>
</body>
</html>


Lorsque je rajoute les news, ils sont affiché sur la page dossier.html:

Code:
<!DOCTYPE html>
<html>
<head>
      
<title><?php echo stripslashes($data['titre']); //on recupère titre ?></title>
<meta charset="utf-8" />
      <meta name="description" content="cine-seriestv.tk vous permet de retrouver toute l'actualité sur le cinéma et séries TV. Rétrouvez également les programmes TV, les audiences TV et des dossiers exclusifs ..." />
       <link rel="stylesheet" href="design.css" />

       <!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
      <style type="text/css">
.trait
      {
      border-bottom:dotted;
      width:88%;
      color:#a6a1ff;
      margin-top:-10px;
      }
</style>
</head>

<body>
      <?php include('facebook.php'); ?>

   <div id="bloc_page">
   <?php include('header.php'); ?>
   
   <?php include('menu.php'); ?>

   <section>
<?php

mysql_connect("mysql.hostinger.fr", "u621129814_site", "cine-seriestvbdd"); //On se connecte à Mysql
mysql_select_db("u621129814_dmbdd");// on selectionne la base
?>
<div class="file-ariane">
<?php
function cherche_cat($pc){
$cat = array (
"Cinéma" => "news-cinema.html",
      "Séries" => "news-series.html",
"Audiences TV" => "audiences-tv.html",
      "Programmes TV" => "programmes.html"
);
return $cat[$pc];
}
$result = mysql_query('SELECT * FROM dossiers WHERE ID='.$_GET['id'].'');

while ($data = mysql_fetch_array($result))
{
echo '<a href="index.html">Accueil</a> ›
<a href="'.cherche_cat($data['categorie']).'">'.$data['categorie'].'</a> ›
'.$data['titre'].'';}
?>

</div>
<hr width=100%>
   <?php include('colonnes_droite.php'); ?>


      <?php

mysql_connect("", "", ""); //On se connecte à Mysql
mysql_select_db("");// on selectionne la base

// On récupère le nombre total de messages
$return = mysql_query('SELECT COUNT(*) AS nb_messages FROM dossiers');
$data = mysql_fetch_array($return);
$Messages = $data['nb_messages'];
// On récupère les 3 dernières news

if (isset($_GET['page']))
{
$page = mysql_real_escape_string($_GET['page']); // On récupère le numéro de la page indiqué dans l'adresse ( exemple news.php?page=4)
}
else // si non la variable n'existe pas, c'est la première fois qu'on charge la page
{
$page = 1; // On affiche la page 1, la page par defaut
}


$result = mysql_query('SELECT * FROM dossiers WHERE ID='.$_GET['id'].'');

while ($data = mysql_fetch_array($result))
{

?>

<div class="news">
<span class="cat_date">

Dossier crée le <?php echo date('d/m/Y à H\hi', strtotime($data['date'])); //on recupère la date ?> </span> | <span class="comm"><em><a href="#commentaires">Commentaires</a></em></span><br />
<h2> <div class="titre"><?php echo stripslashes($data['titre']); //on recupère titre ?> </div></h2>

<img src="<?php echo $data['chaine']; ?>" alt="image" />

<div class="contenu"><?php
{
$contenu = (stripslashes($data['contenu']));
echo $contenu;
}
?>
</div>
<br />

</div><br/>


<?php
} // Fin de la boucle des news

?>


<h2 id="commentaires">
<div class="commentaires"> Laissez vos commentaires sur cette article </div></h2><br />
<div class="coms">
<div id="disqus_thread"></div>
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
var disqus_shortname = 'cine-seriestv'; // required: replace example with your forum shortname

/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>

</div>
   </section>
   <?php include('footer.php'); ?>
   </div>
   
</body>
</html>


Lorsque je rajoute les news, ils sont affiché normalement, comme on voit à l'écran. Mais quand j'édite les news, ca change donc et le resultat devient ce qu'on voit au lien n°2 que j'ai envoyé.

J'ai bien répondu à ta question?

Titre: Re:Problème Ckeditor : Recuperation données
Posté par: jean-f le le 15-05-2014 a 21:06:51

En fait j'avais pas bien compris que c'etait lors de la modification que tu avais le prob, je pensais que tu avais un prob lors de la création.

donc pour recapituler

- tu inseres news dans la base OK
- tu affiches OK
- tu veux modifier ca te reaffiche pas correctement dans ton textearea ?

je pense que tu devrais dans edit_dossier suppprimer le

$contenu = addslashes($data['contenu']);
essaye avec
$contenu = $data['contenu'];

test ca et tiens moi au courant

Titre: Re:Problème Ckeditor : Recuperation données
Posté par: an22 le le 15-05-2014 a 23:04:58

Je viens d'essayer et ca marche. C'était ca le problème alors. Merci,

Par contre j'ai un autre problème que j'avais pas fait attention.
Au moment de creer le news, j'ajoute l'url d'une image (le champ s'appelle chaine dans mon cas), il affiche donc sans soucis. Par contre quand je décide d'éditer, là je vois dans le champ chaine, l'url de l'image, quand je le valide et je me rends sur mon site, l'image a disparu. Et bien sûr si je retourne sur edit_dossier le champ chaine est vide. Donc là je pense que le problème vient du récupération, puisque si je rempli de nouveau le champ, il n'est pas recupéré. Le problème doit venir, je pense, soit de mon fichier edit_dossier soit le fichier edit_dossier_ok (le code juste après):

Code:
<!DOCTYPE html>
<html>
<head>
         <script type="text/javascript" src="http://www.cine-seriestv.tk/ckeditor/ckeditor.js"></script>
<meta charset="utf-8" />
       <link rel="stylesheet" href="design.css" />

       <!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<title>ciné-sériestv.tk - Toute l'actu!</title>
      <style type="text/css">

</style>
</head>
   <body>
   <?php
mysql_connect("", "", ""); //On se connecte à Mysql
mysql_select_db("");// on selectionne la base
$titre = addslashes($_POST['titre']);
$chaine = addslashes($_POST['chaine']);
$contenu = $_POST['contenu'];
//on verifie si l'id selectioné existe
if ($_POST['id_dossiers'])
{
// on modifie le news e
mysql_query("UPDATE dossiers SET titre='" . $titre . "', chaine='" . $chaine . "', contenu='" . $contenu . "' WHERE id=" . $_POST['id_dossiers']);
// et on affiche un message de confirmation
echo "Le dossier a bien été modifié";
}
else
{
// sinon on affiche un message d'erreur
echo "Desolé mais le dossier que vous souhaitez modifier n'existe pas ou plus";
}
?>
   
   </body>
   </html>


Merci d'avance,

Titre: Re:Problème Ckeditor : Recuperation données
Posté par: jean-f le le 16-05-2014 a 13:05:43

l'erreur vient du fait que tu recupère pas la bonne variable :

Chaine : <input name="categorie"/><br/>

et tu récupère $_POST['chaine']

change l'un ou l'autre

soit dans ton formulaire :

Chaine : <input name="chaine"/><br/>

soit quand tu récupère ta variable :

$chaine = addslashes($_POST['categorie']);

Titre: Re:Problème Ckeditor : Recuperation données
Posté par: an22 le le 16-05-2014 a 14:31:01

Citation de: jean-f le le 16-05-2014 a 13:05:43
l'erreur vient du fait que tu recupère pas la bonne variable :

Chaine : <input name="categorie"/><br/>

et tu récupère $_POST['chaine']

change l'un ou l'autre

soit dans ton formulaire :

Chaine : <input name="chaine"/><br/>

soit quand tu récupère ta variable :

$chaine = addslashes($_POST['categorie']);


Ah oui, c'était ca. J'ai changé dans mon formulaire le input name.
Ca marche cette fois.

Merci de m'avoir aidé...

Titre: Re:Problème Ckeditor : Recuperation données
Posté par: multidev le le 04-07-2014 a 10:15:44

Bon courage pour la suite, merci d'éditer le titre du poste en mettant devant : [resolu]

bonne journée.

Titre: Re:Problème Ckeditor : Recuperation données
Posté par: an22 le le 04-07-2014 a 14:06:44

Citation de: multidev le le 04-07-2014 a 10:15:44
Bon courage pour la suite, merci d'éditer le titre du poste en mettant devant : [resolu]

bonne journée.


Merci.
Comment je pourrai le faire? Je ne trouve pas le bouton resolu?

Titre: Re:Problème Ckeditor : Recuperation données
Posté par: multidev le le 04-07-2014 a 14:31:39

il suffit d'éditer votre premier message, vous aurez le champ avec le titre.

Titre: Re:Problème Ckeditor : Recuperation données
Posté par: an22 le le 04-07-2014 a 14:54:04

J'ai essayé mais ca n'a pas marché.

Titre: Re:Problème Ckeditor : Recuperation données
Posté par: multidev le le 04-07-2014 a 16:26:06

alors contactez un modérateur, il saura le faire :)


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.