JeuWeb - Crée ton jeu par navigateur
[RESOLU]Probleme de codes - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [RESOLU]Probleme de codes (/showthread.php?tid=2262)



[RESOLU]Probleme de codes - hworang - 09-01-2008

Bonjour/bonsoir,
j'ai un probleme avec mon code et je n'arrive pas àvoir ce que c'est.
Si quelqu'un peut m'aider,sa serait sympa :

Code PHP :
<?php
if(isset($_POST['nom']))
{
include(
"../config.php");

mysql_query("INSERT INTO objets VALUES('', $_POST['nom'], '$_POST['defence']', '$_POST['attaque']', '$_POST['prix']', '$_POST['desription']')");

mysql_close();
}
else
{
?>
<form action = "ajout.php" method = "post">
Nom :<input type="text" name="nom"><br />
Defence :<input type="text" name="defence"><br />
Attaque :<input type="text" name="attaque"><br />
Prix :<input type="text" name="prix"><br />
Description :<input type="text" name="description"><br />
<input type = "submit" value = "Envoyer">
</form>
<?php
}
?>

Le message d'erreur php est :

Code PHP :
<?php 
Parse error
: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\wamp\www\rpg\admin\ajout.php on line 6



RE: Probleme de codes - Sephi-Chan - 09-01-2008

Voici une version plus propre (et donc plus lisible) et qui aide énormément à déboguer :

Code PHP :
<?php 
$query
= sprintf(
"INSERT
INTO objets (`nom`, `defense`, `attaque`, `prix`, `description`)
VALUES('%s', %d, %d, %d, '%s');"
,
mysql_real_escape_string($_POST['nom']),
$_POST['defense'],
$_POST['attaque'],
$_POST['prix'],
mysql_real_escape_string($_POST['description'])
);
//echo '<pre>'.$query.'</pre>';
mysql_query($query);

En utilise la fonction sprintf, on peut effectuer des fonctions dans la liste des arguments, par exemple les fonctions de sécurisation mysql_real_escape_string()). Cela évite de le faire ailleurs dans le script.

En fait, elle transformera dans l'ordre les %s et %d par les arguments donnés (dans l'ordre aussi) : là où on met '%s', le script attend une chaîne de caractères, et là où on met %d, le script attend un nombre à virgule flottante (et par extension, un entier).

J'ai aussi prix pris la liberté de corriger defence (qui n'est pas français) par defense (qui l'est, quand on met l'accent Smile).

J'ai aussi enlevé l'insertion vide (prévue initialement pour l'identifiant unique, je suppose) qui n'est pas utile puisque les champs auto-incrémentés se remplissent automatiquement (grâce au système de valeur par défaut).



Sephi-Chan


RE: Probleme de codes - hworang - 09-01-2008

Ok,merci beaucoup.


RE: Probleme de codes - Mysterarts - 09-01-2008

SI tout fonctionne, ayait le reflexe "RÉSOLU" !

Mysterarts