8791 sujets

Développement web côté serveur, CMS

bonjour à tous, j'ai encore un souci en PHP -_-, j'ai un texte en bdd et je l'affiche dans un textarea afin de le modifier, seulement quand je le post il va en BDD, mais ne s'affiche pas de suite surla page au rechargement, je doit faire F5 pour qu'il s'affiche et si je fait F5 deux fois le texte aera se vide ainsi que le champ en bdd, je comprend pas du tout c'est du xfiles là ...

<?php
require_once("header.php");
include('../config.php');
?>
<script type="text/javascript" src="fckeditor/fckeditor.js"></script>
  <script type="text/javascript">
      window.onload = function()
      {
        var oFCKeditor = new FCKeditor( 'texte' ) ;
		 
        oFCKeditor.BasePath = "fckeditor/" ;
        oFCKeditor.ReplaceTextarea() ;
      }
    </script>
<div id="centre">
<?php
if (array_key_exists('rang',$_SESSION)&&$_SESSION['rang']==1) {

$res = mysql_query('SELECT * FROM actus') or die ('Erreur sql ligne ' . __LINE__ . '<br />'. mysql_error());
$data = mysql_fetch_array($res) ;
$texte = $data['texteActu'];
echo '<form action="actus.php" method="post">
<textarea name="texte" cols="50" rows="10">'.$texte.'</textarea> 
</table> 
<ul>
<li><input type="submit" class="classe_button" value="Appliquer les changements" /></li>
</ul></form>';
echo $texte;
$sql = "UPDATE actus SET texteActu = '$texte' WHERE idActu = 1";
    
    // on insère les informations du formulaire dans la table
    mysql_query($sql) or die('Erreur sql ligne ' . __LINE__ . '<br />'.mysql_error());

}

else {echo '<h1>Page non trouvée</h1>
<p>Désolé, mais cette page n\'existe pas ou vous n\'êtes pas autorisé a y accéder.</p>
<p>Si vous avez utilisé un lien sur le site pour accéder à cette page, nous vous invitons à nous contacter pour nous signaler le problème afin que nous le réglions au plus vite. </p>
<p><a href=../index.php>Retour à l\'accueil</a></p> ';}

?> 
</div>
<?php
require_once("pied.php");
?>


Si vous aviez une idée Smiley confus
Modifié par wpcJack (15 Jun 2007 - 15:23)
Salut,

Il y a un petit problème dans l'ordonnancement des tâches effectuées. En effet, tu commences par sélectionner le texte en base, puis tu l'affiches PUIS tu le mets à jour. Tu affiches donc le texte avant sa mise à jour. Voilà pourquoi tu es obligé de rafraîchir la page deux fois.

Voici comment je te conseille de procéder :

<?php
require_once("header.php");
[...]
[b]if (!empty($_POST) && !empty($_POST['valider']))[/b] {
  $sql = "UPDATE actus SET texteActu = '$texte' WHERE idActu = 1";

  // on insère les informations du formulaire dans la table
  mysql_query($sql) or die('Erreur sql ligne ' . __LINE__ . '<br />'.mysql_error());
}

$res = mysql_query('SELECT * FROM actus') or die ('Erreur sql ligne ' . __LINE__ . '<br />'. mysql_error());
$data = mysql_fetch_array($res) ;
$texte = $data['texteActu'];

echo '
<form action="actus.php" method="post">
 <textarea name="texte" cols="50" rows="10">'.$texte.'
 <ul>
  <li><input type="submit" [b]name="valider"[/b] class="classe_button" value="Appliquer les changements" /></li>
 </ul>
</form>';
[...]
require_once("pied.php");
?>

J'éspère que cela t'aidera Smiley cligne
ouai mais nan ça marche toujours pas j'ai peut etre mal inséré ton code tu peux jeter un oueil ? voir deux ?

<?php
require_once("header.php");
include('../config.php');
?>
<script type="text/javascript" src="fckeditor/fckeditor.js"></script>
  <script type="text/javascript">
      window.onload = function()
      {
        var oFCKeditor = new FCKeditor( 'texte' ) ;
		 
        oFCKeditor.BasePath = "fckeditor/" ;
        oFCKeditor.ReplaceTextarea() ;
      }
    </script>
<div id="centre">
<?php
if (array_key_exists('rang',$_SESSION)&&$_SESSION['rang']==1) {

/*$res = mysql_query('SELECT * FROM actus') or die ('Erreur sql ligne ' . __LINE__ . '<br />'. mysql_error());
$data = mysql_fetch_array($res) ;
$texte = $data['texteActu'];
echo '<form action="actus.php" method="post">
<textarea name="texte" cols="50" rows="10">'.$texte.'</textarea> 
</table> 
<ul>
<li><input type="submit" class="classe_button" value="Appliquer les changements" /></li>
</ul></form>';
echo $texte;
$sql = "UPDATE actus SET texteActu = '$texte' WHERE idActu = 1";
    
    // on insère les informations du formulaire dans la table
    mysql_query($sql) or die('Erreur sql ligne ' . __LINE__ . '<br />'.mysql_error());
*/

if (!empty($_POST) && !empty($_POST['valider'])) {

  $sql = "UPDATE actus SET texteActu = '$texte' WHERE idActu = 1";

echo $texte;

  // on insère les informations du formulaire dans la table

  mysql_query($sql) or die('Erreur sql ligne ' . __LINE__ . '<br />'.mysql_error());

}



$res = mysql_query('SELECT * FROM actus') or die ('Erreur sql ligne ' . __LINE__ . '<br />'. mysql_error());

$data = mysql_fetch_array($res) ;

$texte = $data['texteActu'];



echo '

<form action="actus.php" method="post">

 <textarea name="texte" cols="50" rows="10">'.$texte.'</textarea>

 <ul>

  <li><input type="submit" name="valider" class="classe_button" value="Appliquer les changements" /></li>

 </ul>

</form>';

}

else {echo '<h1>Page non trouvée</h1>
<p>Désolé, mais cette page n\'existe pas ou vous n\'êtes pas autorisé a y accéder.</p>
<p>Si vous avez utilisé un lien sur le site pour accéder à cette page, nous vous invitons à nous contacter pour nous signaler le problème afin que nous le réglions au plus vite. </p>
<p><a href=../index.php>Retour à l\'accueil</a></p> ';}

?> 
</div>
<?php
require_once("pied.php");
?>
Il y a juste une petite erreur dans ta requête update. Il faut mettre $_POST['texte'] à la place de $texte comme cela :

if (!empty($_POST) && !empty($_POST['valider'])) {
  $sql = "UPDATE actus SET texteActu = '[b]$_POST['texte'][/b]' WHERE idActu = 1";
echo $texte;
  // on insère les informations du formulaire dans la table
  mysql_query($sql) or die('Erreur sql ligne ' . __LINE__ . '<br />'.mysql_error());
}

Si ce n'ets pas ça, je ne vois pas d'où vient le problème Smiley decu .

Croisons un maximum de doigts Smiley cligne
ymhotepa a écrit :
Il y a juste une petite erreur dans ta requête update. Il faut mettre $_POST['texte'] à la place de $texte comme cela :

if (!empty($_POST) && !empty($_POST['valider'])) {
  $sql = "UPDATE actus SET texteActu = '[b]$_POST['texte'][/b]' WHERE idActu = 1";
echo $texte;
  // on insère les informations du formulaire dans la table
  mysql_query($sql) or die('Erreur sql ligne ' . __LINE__ . '<br />'.mysql_error());
}

Si ce n'ets pas ça, je ne vois pas d'où vient le problème Smiley decu .

Croisons un maximum de doigts Smiley cligne



Nikel merci !