PHP/MYSQL : page update [Résolu]

Messages postés
1131
Date d'inscription
mercredi 28 août 2002
Statut
Membre
Dernière intervention
23 avril 2019
- - Dernière réponse : 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
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
206
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 mars 2012
3
Merci
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.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Commenter la réponse de dmk04
Messages postés
206
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 mars 2012
3
Merci
En JavaScript ca donne :

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

++

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Commenter la réponse de dmk04
Messages postés
206
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 mars 2012
3
Merci
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.

++

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Commenter la réponse de dmk04
Messages postés
206
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 mars 2012
0
Merci
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"...

++
Commenter la réponse de dmk04
Messages postés
206
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 mars 2012
0
Merci
j'ai supprimé les quotes alors que ta fonction quote_smart ne les ajoute pas.
Commenter la réponse de dmk04
Messages postés
1131
Date d'inscription
mercredi 28 août 2002
Statut
Membre
Dernière intervention
23 avril 2019
1
0
Merci
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
Commenter la réponse de cs_Burnside
Messages postés
1131
Date d'inscription
mercredi 28 août 2002
Statut
Membre
Dernière intervention
23 avril 2019
1
0
Merci
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
Commenter la réponse de cs_Burnside