|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : avril 2006 Messages : 31 ![]() |
Salut à tous,
J'ai un code sur lequel pendant 3 jours je me prend la tete... espérons que l'on puisse m'aider.. je vous le donne : $artiste = str_replace("'", "''", $_POST['artiste']); $support = str_replace("'", "''", $_POST['support']); $album = str_replace("'", "''", $_POST['album']); $pec = $_POST['pec']; $nbr = $_POST['nbr']; for($i=1; $i<=$nbr; $i++) { $j = $i; $titre = $_POST[$i]; if ($pec == "album") { $reqstyle = "SELECT nom_artist, style FROM artistes WHERE nom_artist='$artiste'"; $demandestyle = mysql_query($reqstyle); //Vérification du programme MODE WARNED if (!$verif2=mysql_query($reqstyle)) { $_SESSION['errormod'] = 'probalbumstyle'; header ("Location: errormod.php"); exit; } $tablestyle = mysql_fetch_array($demandestyle); $style = $tablestyle['style']; } elseif ( $pec == "compil") { $reqstyle = "SELECT nom, style FROM inclassables WHERE nom='$album'"; $compstyle = mysql_query($reqstyle); //Vérification du programme MODE WARNED if (!$verif3 = mysql_query($reqstyle)) { $_SESSION['errormod'] = 'probcompilstyle'; header ("Location: errormod.php"); exit; } $comptable = mysql_fetch_array($compstyle); $style = $comptable['style']; } $reqveriftitr = "SELECT titre, num_piste, album, artiste FROM titres WHERE artiste='$artiste' AND titre='$titre' AND album='$album' AND num_piste='$j'"; $demande = mysql_query($reqveriftitr); //Vérification du programme MODE WARNED if (!$verif4 = mysql_query($reqveriftitr)) { $_SESSION['errormod'] = 'probveriftitre'; header ("Location: errormod.php"); exit; } if ( mysql_fetch_assoc($demande) == true) { $_SESSION['errormod'] = "titresexistants"; header ("Location: errormod.php"); exit; } echo "Titre : $titre<br> Artiste : $artiste<br> Album : $album<br> numéro de piste : $j<br> style : $style<br> support : $support<br>"; } Voilà pour le code de la page. Le souci se produit avec un album contenant un slash comme par exemple "l'album" ce qui efface tous les caractéres suivant l'apostrophe... j'ai essayé d'y palier avec une fonction de ce style : function getval($var, $type=0, $bdd=0, $filtre_url=0) { ///anti XSS if ($filtre_url == 0) { $value = ($type == 0) ? htmlspecialchars($var, ENT_NOQUOTES) : intval($var); } else { $value = ($type == 0) ? str_replace(array(':','/','.'), '', htmlspecialchars($var, ENT_NOQUOTES)) : intval($var); } ///anti injection SQL if ($bdd != 0) { if (get_magic_quotes_gpc()) { $value = stripslashes($value); } if (function_exists('mysql_real_escape_string')) { $value = mysql_real_escape_string($value); } //pour version de PHP < 4.3.0 on utilise addslashes else { $value = addslashes($value); } } ///on retourne une valeur filtrée return $value; } mais rien n'y fait... Comment dois je faire? Merci à vous! |
|
|
00
|
|
|
#2 |
|
Invité régulier
![]() Inscription : avril 2006 Messages : 31 ![]() |
désolé, je me suis trompé dans mon post, le problème survient dans une chaine de caractére contenant un apostrophe...
voila le résultat sur le navigateur Titre : first Artiste : compil Album : nom de l numéro de piste : 1 style : support : cd Titre : second Artiste : compil Album : nom de l numéro de piste : 2 style : support : cd |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : avril 2006 Messages : 31 ![]() |
et ce résultat pour un album au nom de
"nom de l'album" Merci de vos réponses |
|
|
00
|
|
|
#4 | ||||
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 338 ![]() |
Soit tu echappe els carctere soit au lieu de ca :
Code :
Code :
__________________
Stay in Bed .. Save Energy |
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com