Page 1 sur 1

probleme update

Posté : 23 nov. 2013, 16:43
par war589
Bonjour

J'ai écrit un programme avec update.php et j'ai un gros probleme mon programme affiche que la mise a jour n'a pas été effectuer et je ne comprend pas pourquoi
<html>


<head>



</head>


<body>
<?php
$mysqli = new mysqli('localhost', 'root', '', 'projet_ville_site');
if (isset($_POST['submite']))
{
$ville_nom = $_POST['ville_nom'];

$ville_texte = $_POST['ville_texte'];
$ville_id = $_POST['ville_id'];

if ((empty($ville_nom)) OR empty($ville_texte))

{
$message = '<p class="error"> Le contenue est vide</p>';
}

else 
{
if ($mysqli -> query('UPTATE projet_ville SET ville_nom ="' .$ville_nom.'" , ville_texte ="' .$ville_texte.'" WHERE ville_id ='.$ville_id))
{
$message = '<p class="message"> la mise a jour de la ville est'.$ville_nom. ' </p>';
}

else{
$message ='<p class="error"> la mise a jour  '.$ville_nom.' n a pas ete effectue </p>';
}


}
}

$id = $_GET['id'];

$result = $mysqli-> query('SELECT ville_id, ville_nom, ville_texte FROM projet_ville WHERE ville_id='.$id);

$row = $result-> fetch_array();

$ville_nom = $row['ville_nom'];
$ville_texte = $row['ville_texte'];


?>
<h1>ajouter une ville</h1>
<?php if (isset($message)) echo $message ?>
<form method="post">
<input type="text" name="ville_nom" value="<?php echo $ville_nom?>"/></input>
<textarea name="ville_texte"> <?php echo $ville_texte?></textarea>
<input type="hidden" name="ville_id" value="<?php echo $id?>"/>
<input type="submit" name="submite"></input>

</form>
</body>



</html>

Re: probleme update

Posté : 24 nov. 2013, 15:32
par moogli
Salut,

Cela veux dire la requête ce passe mal.
Tu aura plus d'infos avec mysqli::error a ajouter dans le message d'erreur (au moins pur le temps du debug).

Ta requête sql est sensible aux injections sql (plus d'info en km demandant à Google).
En sql le délimiteur de chaîne de caractère c'est l'apostrophe et non le guillemet ;)


@+

Re: probleme update

Posté : 27 nov. 2013, 19:03
par Invité
Quand je fais print_r($error); il y'a marqué un zero qu'est que sa veut dire?

Re: probleme update

Posté : 28 nov. 2013, 15:29
par Anacronox
pour voir les erreurs fait
print_r($mysqli->error);
et moogli a raison ta requête sql est sensible aux injections sql et en sql le délimiter de chaîne de caractère c'est l'apostrophe et non le guillemet

autre chose, toujours vérifier que les données envoyées par l'internautes sont conforme. Dans le cas contraire il est préférable de ne rien faire et d'envoyer un message a l'internaute.

$ville_nom = $mysqli->real_escape_string($ville_nom); // protection injection 
$ville_texte = $mysqli->real_escape_string($ville_texte);// protection injection 

//si ID de ville est un entier, je te conseil :
$ville_id=intval($ville_id);// on force $ville_id pour etre un entier (attention tout de même  : voir ma phrase sur "données envoyées" )
// sinon :
$ville_id= $mysqli->real_escape_string($ville_id);// protection injection 

if($mysqli -> query(' UPTATE `NOM_DE_LA_BASE`.`projet_ville` SET `ville_nom` =  \'' .$ville_nom.'\' , `ville_texte` = \''.$ville_texte.'\' WHERE `ville_id` =\''.$ville_id.'\' ;'))
{
 /* ton code */
}

Re: probleme update

Posté : 29 nov. 2013, 22:23
par Invité
Je vous remerci en faite le seule erreur c que j'ai mis un echo dans le input c'est pour sa qu'on pouvais pas écrire autre chse donc la requête ne fonctionnait pas bien, ayant tester plusieurs pour trouver une solution j'ai fini par trouver la réponse

Re: probleme update

Posté : 29 nov. 2013, 22:32
par Invité
Mais merci encore pour vos conseille je vais en tenir compte pour les prochains probleme