PHP/MYSQL : page update

Résolu
cs_Burnside Messages postés 1132 Date d'inscription mercredi 28 août 2002 Statut Membre Dernière intervention 6 mars 2020 - 8 oct. 2007 à 14:34
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012 - 16 oct. 2007 à 11:10
Bonjour,

J'ai développé un site en PHP/MYSQL, tout va bien sauf une page la page d'update des champs.

J'ai une liste d'albums et dasn les titre des albums j'ai des ' (exemple: pt'i fillio)
lorsque je clique su rle bouton update, j'ouvre une nouvelle page  qui contient le conde suivant :

  $sql2 = "SELECT * FROM albums WHERE  id_album='".$_GET['id_album']."'" ;
  $res2 = mysql_query( $sql2 ) ;

  if( $item = mysql_fetch_array( $res2 ) )
  {
echo "<form method='post' action = ''>
   ----

    Titre de l'album :,
    ,
   
       
</form>";
}?>

Dasn le champ titrealbum il m'affiche : pt et pas pt'i fillio

J'insère mes données :
<?php
function quote_smart($value)
{
    if (get_magic_quotes_gpc()) {
        $value = stripslashes($value);
    }
   
    if (!is_numeric($value)) {
        $value =  mysql_real_escape_string($value);
    }

    return $value;
}

if ( isset ( $_POST['submit'] ) ) {
$titre = quote_smart($_POST['titre']);
$image = quote_smart($_POST['image']);           
           
$names = "id_album, titrealbum, image";
$values = "'id_album', '$titre', '$image'";
$req ="INSERT INTO albums (".$names.") VALUES (".$values.")";
mysql_query($req)  or die(mysql_error());
echo "Album correctement inséré
";           
}
?>

Si quelqu'un peux m'expliquer comment avoir le texte complet...

Merci,
Burnside.

..:: Enjoy living in hell ::..
http://www.art-line.be

7 réponses

dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012
8 oct. 2007 à 16:31
si tu n'as jamais de double cote " dans tes titres d'album :




Sinon, je ne vois pas trop comment faire à part remplir le champ text avec du JavaScript.
3
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012
8 oct. 2007 à 16:41
En JavaScript ca donne :

<script language='JavaScript'>document.getElementById('titrealbum').value='".quote_smart($item['titrealbum'])."'</script>

++
3
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012
16 oct. 2007 à 11:10
Salut,

je viens de penser à un truc :

<td width='200'></td>

Je crois qu'en faisant comme ça, ça marchera tout le temps, même s'il y a des doubles quotes dans ton titre d'album, et c'est plus propre que bidouiller avec du JavaScript.

++
3
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012
8 oct. 2007 à 15:31
Salut,


// Commence d'abord par tester si 'id_album' est défini :

 if(!isset($_GET['id_album'])

{

    echo "Id album manquant
";

    exit;

}

// utilise ta fonction quote_smart pour te proteger contre les SQL injection

$sql2 = "SELECT * FROM albums WHERE  id_album='".quote_smart($_GET['id_album'])."'" ;

c'est normale qu'il n'y est que "pt" qui s'affiche, remplace ".$item['titrealbum']." par pt'i fillio dans la ligne précédente, ca donne :

pour corriger essaye :

Je ne sais pas si ca fera ce que tu veux, je n'ai pas testé.

$values = "'id_album', '$titre', '$image'";
l'id de ton album est "id_album"...

++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012
8 oct. 2007 à 15:34
j'ai supprimé les quotes alors que ta fonction quote_smart ne les ajoute pas.
0
cs_Burnside Messages postés 1132 Date d'inscription mercredi 28 août 2002 Statut Membre Dernière intervention 6 mars 2020
8 oct. 2007 à 15:54
Re,

J'ai effectué tes modifs,

maintenant dans la zone input j'ai : pt\ et plus pt

Je pense que l'on avance...

Bàt,
Burnside.

..:: Enjoy living in hell ::..
http://www.art-line.be
0
cs_Burnside Messages postés 1132 Date d'inscription mercredi 28 août 2002 Statut Membre Dernière intervention 6 mars 2020
8 oct. 2007 à 16:45
Re,

Cela fonctionne mais avec quelques modifs :

<?php
  $sql2 = "SELECT * FROM albums WHERE  id_album='".$_GET['id_album']."'" ;
  $res2 = mysql_query( $sql2 ) ;

  if( $item = mysql_fetch_array( $res2 ) )
  {
echo "<form method='post' action = ''>
   ----

    Titre de l'album :,
    ,
   

Tout fonctionne super maintenant... encore merci...

..:: Enjoy living in hell ::..
http://www.art-line.be
0
Rejoignez-nous