Erreur script php
Posté : 12 juil. 2011, 20:37
Bonjour à tous !
Alors voilà, en fait, j'ai un souci avec un script PHP.
Je me suis basée sur un script d'un système de news en PHP trouvé sur un site internet (un excellent tutoriel vidéo) et je l'ai adapté pour répondre à mes besoins. J'utilise WAMP et j'ai crée une base de données pour le script.
Pour l'instant, le principal fonctionne, mes articles sont correctement affichées sur les pages du site, mais le seul souci est au niveau du panel d'administration. Pour créer un article, il n'y a aucun problème, ça fonctionne correctement, le seul ennui est lorsque je souhaite modifier un article.
En effet, voilà l'erreur qui m'est affichée :
Alors voilà, en fait, j'ai un souci avec un script PHP.
Je me suis basée sur un script d'un système de news en PHP trouvé sur un site internet (un excellent tutoriel vidéo) et je l'ai adapté pour répondre à mes besoins. J'utilise WAMP et j'ai crée une base de données pour le script.
Pour l'instant, le principal fonctionne, mes articles sont correctement affichées sur les pages du site, mais le seul souci est au niveau du panel d'administration. Pour créer un article, il n'y a aucun problème, ça fonctionne correctement, le seul ennui est lorsque je souhaite modifier un article.
En effet, voilà l'erreur qui m'est affichée :
J'ai beau chercher et chercher, je n'arrive pas à voir l'erreur produite dans le script PHP. Voici le bout de code :You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'provenance="Inconnue", caractere="
Je ne sais toujours pas.
", liens' at line 1
<?php
/*
Connexion à la BDD
*/
require "config.php";
mysql_connect($adresse, $nom, $motdepasse);
mysql_select_db($database);
/*
Si une action est posté par l'url, on veut faire qqch, on fait un switch pour prévoir tout les cas :
*/
if(isset($_GET['action']))
{
$action = addslashes(htmlentities($_GET['action']));
switch ($action){
/*
Action = creer, on veut faire une nouveau personnage
*/
case "creer":
/*
Si les variables sont déja posté, on les stockes dans la BDD
*/
if(isset($_POST['nom_famille']) AND isset($_POST['prenom']) AND isset($_POST['age']) AND isset($_POST['description_physique']) AND isset($_POST['provenance']) AND isset($_POST['caractere']) AND isset($_POST['liens']) AND isset($_POST['image']) ){
extract($_POST);
$nom_famille = addslashes(htmlentities($nom_famille));
$prenom = addslashes(htmlentities($prenom));
$age = addslashes(htmlentities($age));
$description_physique = addslashes($description_physique);
$provenance = addslashes(htmlentities($provenance));
$caractere = addslashes($caractere);
$liens = addslashes(htmlentities($liens));
$image = addslashes($image);
$sql = 'INSERT INTO personnages(nom_famille, prenom, age, description_physique, provenance, caractere, liens, image) VALUES ("'.$nom_famille.'", "'.$prenom.'", "'.$age.'", "'.$description_physique.'", "'.$provenance.'", "'.$caractere.'", "'.$liens.'", "'.$image.'")';
$req = mysql_query($sql) or die(mysql_error());
echo "<a href=\"admin.php\">Cliquez ici</a>";
}
/*
Les variables ne sont pas postées, on affiche le formulaire pour créer le personnage
*/
else
{
?>
<form method="post" action="admin2.php?action=creer">
Nom de famille : <br/><input type="text" name="nom_famille" /><br/>
Prénom : <br/><input type="text" name="prenom" /><br/>
Âge : <br/><input type="text" name="age" /><br/>
Description physique:<br/><textarea name="description_physique" class="mceEditor"></textarea><br/>
Provenance : <br/><input type="text" name="provenance" /><br/>
Caractère :<br/><textarea name="caractere" class="mceEditor"></textarea><br/>
Liens : <br/><input type="text" name="liens" /><br/>
Image :<br/><textarea name="image" class="mceEditor"></textarea><br/>
<input type="submit" value="envoyer"/>
</form>
<?php
}
break; // creer
/*
Action = Gerer, on veut lister les personnages dans le but de les modifier/supprimer
*/
case "gerer":
$sql = 'SELECT * FROM personnages';
$req = mysql_query($sql) or die(mysql_error());
echo "<ul>";
while($data = mysql_fetch_assoc($req)){
echo '<li>'.$data['nom_famille'].' -- <a href="admin2.php?action=modifier&id='.$data['id'].'">Modifier</a> -- <a href="admin2.php?action=supprimer&id='.$data['id'].'">X</a></li>';
}
echo "</ul>";
break;
/*
Action = Modifier, on veut modifier une news
*/
case "modifier":
/*
Si l'id existe, tout se passe bien :
*/
if(isset($_GET['id']))
{
$id = intval(htmlentities($_GET['id']));
/*
Si des données POST sont déjà envoyées, il faut les stocker dans la BDD
*/
if(isset($_POST['nom_famille']) AND isset($_POST['prenom']) AND isset($_POST['age']) AND isset($_POST['description_physique']) AND isset($_POST['provenance']) AND isset($_POST['caractere']) AND isset($_POST['liens']) AND isset($_POST['image'])){
extract($_POST);
$nom_famille = addslashes(htmlentities($nom_famille));
$prenom = addslashes(htmlentities($prenom));
$age = addslashes(htmlentities($age));
$description_physique = addslashes($description_physique);
$provenance = addslashes(htmlentities($provenance));
$caractere = addslashes($caractere);
$liens = addslashes(htmlentities($liens));
$image = addslashes($image);
$sql = 'UPDATE personnages SET nom_famille="'.$nom_famille.'", prenom="'.$prenom.'", age="'.$age.'", description_physique="'.$description_physique.'" provenance="'.$provenance.'", caractere="'.$caractere.'", liens="'.$liens.'", image="'.$image.'" WHERE id='.$id.'';
$req = mysql_query($sql) or die(mysql_error());
echo 'Ok, <a href="admin.php">cliquez ici</a> pour revenir';
}
/*
Les données POST n'existent pas, on récupère les données de la news pour les réafficher dans le formulaire
*/
else
{
$sql = 'SELECT * FROM personnages WHERE id='.$id.'';
$req = mysql_query($sql) or die(mysql_error());
$data = mysql_fetch_assoc($req);
?>
<form method="post" action="admin2.php?action=modifier&id=<?php echo $data['id'];?>">
Nom de famille : <br/><input type="text" name="nom_famille" value="<?php echo $data['nom_famille'];?>"/><br/>
Prénom : <br/><input type="text" name="prenom" value="<?php echo $data['prenom'];?>"/><br/>
Âge : <br/><input type="text" name="age" value="<?php echo $data['age'];?>"/><br/>
Description physique :<br/><textarea name="description_physique" class="mceEditor"><?php echo $data['description_physique'];?></textarea><br/>
Provenance : <br/><input type="text" name="provenance" value="<?php echo $data['provenance'];?>"/><br/>
Caractère :<br/><textarea name="caractere" class="mceEditor"><?php echo $data['caractere'];?></textarea><br/>
Liens : <br/><input type="text" name="liens" value="<?php echo $data['liens'];?>"/><br/>
Image :<br/><textarea name="image" class="mceEditor"><?php echo $data['image'];?></textarea><br/>
<input type="submit" value="envoyer"/>
</form>
<?php
}
}
/*
Si l'id n'existe pas, on a un problème, on peut rien faire
*/
else
{
echo "Erreur";
}
break; // fin cas modifier
/*
Action = supprimer, on supprime une news
*/
case "supprimer":
/*
Si l'id existe, on fait une simple requête pour supprimer la news
*/
if(isset($_GET['id']))
{
$id = intval(htmlentities($_GET['id']));
$sql ='DELETE FROM personnages WHERE id='.$id.'';
$req= mysql_query($sql) or die(mysql_error());
echo '<a href="admin.php">Cliquez ici</a>';
}
/*
Pas d'id ? Probleme
*/
else
{
echo "erreur";
}
break;
}
}
/*
Dans le cas ou il n'y a pas d'action posté dans l'url, on affiche nos choix via une liste
*/
else
{
?>
<ul>
<li><a href="admin2.php?action=creer">Créer une fiche personnage</a></li>
<li><a href="admin2.php?action=gerer">Gérer les fiches personnages</a></li>
</ul>
<?php
}
?>