Problème de formulaire avec une bdd MySQL

Fermé
rskas - 5 mai 2011 à 12:22
 rskas - 5 mai 2011 à 12:39
Bonjour, je suis en train de faire des pages d'administration pour un site et j'ai un problème dans un formulaire et une bdd MySQL.

J'ai donc deux pages :
index.php :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="fr" xml:lang="fr">
<head>
<link rel="shortcut icon" href="images/ico.png"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Lesite--ADMINISTRATION</title>
</head>
<body>
<?php
include("1.php");
$retour = mysql_query('SELECT 'contenu' FROM 'contenu' ORDER BY 'id' DESC LIMIT 1 , 3');

while ($donnees = mysql_fetch_array($retour))
{
?>
<form action="index1.php" method="post">
<TEXTAREA row="300" cols="90"><?php echo $donnees['contenu']; ?></TEXTAREA>
<?php
}
mysql_close();
?>
<textarea name="texte" rows="8" cols="45"></textarea>
<h4><input type="submit" value="Modifier" /><a decoration="none" href="http://lesite.fr/" target=""><input type="button" value="Annuler"></a></h4>
</div></div>
</body>
</html>


Et une autre page index1.php :
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=index.php">
<?php
ini_set('mysql.trace_mode', true);
error_reporting(E_ALL | E_STRICT);
include("1.php");
/*$sql == 'UPDATE '249945kcyw4'.'contenu' SET 'contenu' = '$post' WHERE 'contenu'.'id' = 1 LIMIT 1;';*/
$er == mysql_query("UPDATE contenu SET contenu='$_POST['texte']' WHERE id='1'");
if ($er === false) {
echo 'Erreur SQL (ligne '.__LINE__.') : '.mysql_error().'<br />Avec la rêquete : '.$sql.'<br />';
}
mysql_close();
?>


Mais une erreur que je ne comprend pas apparaît :

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/rskas.com/htdocs/radiatorust/pages/index1.php on line 7

En fait je ne comprend pas ce "charabia" :p, si vous pouvez m'éclairer sur le sujet...

3 réponses

gregg5l Messages postés 41 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 11 mai 2011 28
5 mai 2011 à 12:29
Bonjour;
La ligne 7 est celle-ci : $er == mysql_query("UPDATE contenu SET contenu='$_POST['texte']' WHERE id='1'");

Pourquoi ce double "=" (==) ? Jamais vu ça...
@+
0
remplace cette ligne
$er == mysql_query("UPDATE contenu SET contenu='$_POST['texte']' WHERE id='1'"); 

par celle-ci:
$er = mysql_query("UPDATE contenu SET contenu='$_POST['texte']' WHERE id='1'"); 
0
il est aussi preferable de mettre des guillemets autour de tes variable, et surtout de les filtrés avant de les envoyé dans la base de donnée sinon bienvenue au injection sql et autre souci.

$er = mysql_query("UPDATE contenu SET contenu='".$_POST['texte']."' WHERE id='1'");
0
Merci gtiss ;) j'avais oublié l'histoire des points autours des variables =D
0