Un petit soucis dans l'affichage de certaines chaines récupéré dans une bdd. Quelques exemples de codes puis les explications plus bas.
Exemple pour l'insertion :
if(get_magic_quotes_gpc())
{
$string = stripslashes($_POST['string]);
}
else
{
$string = addslashes($_POST['string']);
}
$query = sprintf
(
"INSERT INTO maTable VALUES('','%s')",
mysql_real_escape_string($string)
);
$rq=mysql_query($query) or die(mysql_error());
Ensuite pour l'affichage les problèmes surviennent.... Quand je souhaites afficher ma chaine dans un div, aucun soucis, les antislashes s'échappent ma chaine s'affiche correctement... Le problème c'est quand je souhaites l'afficher dans un select!! Ca me fait n'importe quoi, mon fieldest part en largeur, mes input à l'ouest... je ne comprends pas.
exemple :
<select name='name'>
<option value=''>Faire un choix.....</option>
<?php
include('connexion.php');
$query = "SELECT id_string, string FROM maTable";
$rq = mysql_query($query) or die(mysql_error());
while ($row=mysql_fetch_array($rq, MYSQL_ASSOC))
{
$id_string=$row["id_string"];
$string = htmlspecialchars(stripslashes($row["string"]));
echo "<option value='$id_string-@#@-$string'>$id_string $string</option>";
}
mysql_close();
?>
</select>
Qu'est-ce qui ne va pas? j'ai tout essayé, htmlentities, htmlspecialchars etcetc.... Ma balise de select se casse, cassant le code html au passage et m'affichant n'importe quoi si la chaine possède trop de ''''...
Le pire c'est que ça le fait que sur IE!!! sur firefox ça marche.... Comprends pas....
Un grand merci à ceux qui me viendront en aide et éclairciront ma lanterne !!! :)
PS pour l'équipe de comment ça marche s'ils lisent ceci : C'est vraiment agaçant le cadre qui suis la souris quand on tape un message..
