Bonjour à tous,
Je suis en train de créer un site avec une zone d'administration pour les mises à jour du site.
Les utilisateurs de ce site n'ont aucune connaissance en html, d'où l'idée d'intégrer un éditeur WYSIWYG.
J'ai réfléchi sur deux éditeurs : Concept RTE et FCKeditor. Le premier plus sobre semble suffisant pour les besoins du site.
Je suis débutant en php et dans l'utilisation de MySQL.
Mon problème :
Lorsque je soumets le post, le formulaire envoie un contenu vide à la base.
Je pense que j'utilise une mauvaise variable.
En revanche j'arrive à afficher dans le formulaire le contenu présent dans la base.
Je vous donne le code source de la page où se trouve l'éditeur :
session.php contient les informations de connection à la base
Puis le code source de la page de reception du post chargée d'envoyer à la base MySQL
J'ai retourné mon code dans tous les sens, et je ne trouve pas. J'aime les difficultés mais j'ai l'impression de toucher au but sans pour autant trouver la réponse à mon problème. Qu'en pensez vous ? Pouvez vous m'aider ?
Merci d'avance.
Modifié par zigzag59 (02 May 2006 - 23:23)
Je suis en train de créer un site avec une zone d'administration pour les mises à jour du site.
Les utilisateurs de ce site n'ont aucune connaissance en html, d'où l'idée d'intégrer un éditeur WYSIWYG.
J'ai réfléchi sur deux éditeurs : Concept RTE et FCKeditor. Le premier plus sobre semble suffisant pour les besoins du site.
Je suis débutant en php et dans l'utilisation de MySQL.
Mon problème :
Lorsque je soumets le post, le formulaire envoie un contenu vide à la base.
Je pense que j'utilise une mauvaise variable.
En revanche j'arrive à afficher dans le formulaire le contenu présent dans la base.
Je vous donne le code source de la page où se trouve l'éditeur :
session.php contient les informations de connection à la base
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Cross-Browser Rich Text Editor</title>
<meta http-equiv="Content-Type" content="text/html; Charset=utf-8">
<meta name="PageURL" content="http://www.kevinroth.com/rte/demo.php" />
<meta name="PageTitle" content="Cross-Browser Rich Text Editor (PHP Demo)" />
<script language="JavaScript" type="text/javascript" src="html2xhtml.js"></script>
<!-- To decrease bandwidth, use richtext_compressed.js instead of richtext.js //-->
<script language="JavaScript" type="text/javascript" src="richtext.js"></script>
</head>
<body>
<h2> </h2>
<?php
include ("../session.php");?>
<?php
if ($status == "connect")
{
}
else
{
print "<br><br><br><br><h2>ERREUR !<br><br>Nétant pas identifié, cette opération est interdite. <br>Identifie toi puis recommence l'opération</h2>";
print "<META http-equiv=\"refresh\" content=\"3; URL='login.php'\">";
}
?>
<!-- START Demo Code -->
<form name="formulaire" action="../valide_concert_avant.php" method="post">
<script language="JavaScript" type="text/javascript">
<!--
function submitForm() {
//make sure hidden and iframe values are in sync before submitting form
//to sync only 1 rte, use updateRTE(rte)
//to sync all rtes, use updateRTEs
updateRTE('rte1');
//updateRTEs();
//change the following line to true to submit form
return true;
}
//Usage: initRTE(imagesPath, includesPath, cssFile, genXHTML)
initRTE("images/", "", "", true);
//-->
</script>
<noscript>
<p><b>Le Javascript doit être activé pour utiliser ce formulaire (voir dans vos options de votre navigateur) </b></p>
</noscript>
<script language="JavaScript" type="text/javascript">
<!--
<?php
//format content for preloading
if (!(isset($_Post["rte1"]))) {
$result = "select avant from concert_avant ORDER BY id DESC LIMIT 1";
$envoi = mysql_query($result);
while($table = mysql_fetch_array($envoi))
{
$avant = $table['avant'];
}
$content = "$avant";
$content = rteSafe($content);
$id=$_Post["id"];
} else {
//retrieve posted value
$content = rteSafe($_Post["rte1"]);
}
?>//Usage: writeRichText(fieldname, html, width, height, buttons, readOnly)
writeRichText('rte1', '<?=$content;?>', 520, 200, true, false);
//-->
</script>
<p><b>Cliques sur envoie, pour la mise a jour de la page.</b></p>
<p><input type="submit" name="submit" value="Envoie"></p>
</form>
<?php
function rteSafe($strText) {
//returns safe code for preloading in the RTE
$tmpString = $strText;
//convert all types of single quotes
$tmpString = str_replace(chr(145), chr(39), $tmpString);
$tmpString = str_replace(chr(146), chr(39), $tmpString);
$tmpString = str_replace("'", "'", $tmpString);
//convert all types of double quotes
$tmpString = str_replace(chr(147), chr(34), $tmpString);
$tmpString = str_replace(chr(148), chr(34), $tmpString);
// $tmpString = str_replace("\"", "\"", $tmpString);
//replace carriage returns & line feeds
$tmpString = str_replace(chr(10), " ", $tmpString);
$tmpString = str_replace(chr(13), " ", $tmpString);
return $tmpString;
}
?>
<!-- END Demo Code -->
</body>
</html>
Puis le code source de la page de reception du post chargée d'envoyer à la base MySQL
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; Charset=utf-8">
<title>[ADMINISTRATION] Validation du post des dates antérieures</title>
</head>
<LINK
href="style.css" type=text/css
rel=stylesheet>
<body>
<div id="conteneur_form">
<div id="form">
<?php include ("session.php"); ?>
<?php
$id = $_POST["id"];
$avant = $_POST["rte1"];
echo "$avant<br>";
$result=mysql_query("INSERT INTO concert_avant (id,avant)
VALUES ('$id','$avant')");
if (!$result) {
echo "<br><br><br><b>L'enregistrement de tes données a échoué. Essayes plus tard</b><br>";
print "<META http-equiv=\"refresh\" content=\"3; URL='index.php'\">";
} else {
echo "<br><br><br><b>Les données ont bien été enregistrées</b><br>";
print "<META http-equiv=\"refresh\" content=\"3; URL='dates2.php'\">";
}
?>
</div>
</div>
J'ai retourné mon code dans tous les sens, et je ne trouve pas. J'aime les difficultés mais j'ai l'impression de toucher au but sans pour autant trouver la réponse à mon problème. Qu'en pensez vous ? Pouvez vous m'aider ?
Merci d'avance.
Modifié par zigzag59 (02 May 2006 - 23:23)