Page 1 sur 1

stripslashes coupe mon mot !!!!!

Posté : 15 juil. 2005, 15:06
par Roups
Bonjour, j'ai un formulaire avec des "select on change submit" comme ci dessous :
<select name='Source' onchange='this.form.submit()'>
<?
If ((isset($_GET['Source']))) echo"<option value='".stripslashes($_GET['Source'])."'>".stripslashes($_GET['Source'])."</option>";
?>
<option value="Tous">Tous</option>
<option value="Centre d'appels">Centre d'appels</option>
<option value="Autres">Autres</option>
</select>
Si je choisis 'Centre d'appel', cela s'affiche correctement au debut de ma liste SOURCE.
Mais des que je fais un choix ailleur et que je suis sur centre d'appel, il le reaffiche comme ceci : Centre d

Quelqu'un peut il m'aider
Merci[/b]

Posté : 15 juil. 2005, 15:09
par zeus
Dans ton cas, tu n'as pas l'utilité de stripslashes car tu ne fait pas d'injection SQL et que tes variables sont or des chaines

Je pense que ceci devrait fonctionner
value="'".$_GET['Source']."'>".$_GET['Source']."</option>"; 

Marche pas

Posté : 15 juil. 2005, 15:14
par Roups
Merci Zeus de t'interesser a mon probleme,

Malherueusement, si j'essaye d'utiliser stripslashes, c'est que justement il me met des \ (des le premier choix il affiche Centre d\'appels et plus je manipule plus il ajoute des \\\\).

Effectivement a ce niveau je n'insert rien dans la base.....

Je comprends pas

J'oubliais

Posté : 15 juil. 2005, 15:16
par Roups
Le seul endroit ou intervient $Source, c'est plus bas dans le formulaire que je valide, apres mes different choix on submit..

Donc dans l'autre formulaiure j'ai ceci...

<input type="hidden" name="Source" value="<?php echo $Source;?>">

Mais la, je valide pas le formulaire alors c'est pas ca ...

Posté : 15 juil. 2005, 15:20
par ouckileou
rien à voir avec le problème mais est-ce que c'est exprès que tu affiches en premier la valeur qui a été sélectionnée ?

tu pourrais plus simplement pré-positionner la liste sur la valeur choisie en faisant le même test et en inscrivant ou non "SELECTED" dans tes balises <option>

oui c'est normal

Posté : 15 juil. 2005, 15:26
par Roups
Oui c'est normal, c'est un formulaire de pre selection, pour detailler la recherche....

ensuite j'envoie tous les criteres avec hidden

Re: oui c'est normal

Posté : 15 juil. 2005, 15:35
par ouckileou
Oui c'est normal, c'est un formulaire de pre selection, pour detailler la recherche....

ensuite j'envoie tous les criteres avec hidden
je ne comprend pas bien le rapport avec ma question mais bon...

Probleme

Posté : 15 juil. 2005, 16:31
par Roups
Pour les ames charitables qui se pencheront sur ce probleme, j'ai sorti ce petit code, qui a l'execution montre bien le probleme

<?php
if ((isset($_GET['Source']))) $Source=stripslashes($_GET['Source']);
echo $Source;

echo "<FORM METHOD='GET' name='Prerecherche'>";

echo "Source :<select name='Source' onchange='this.form.submit()'>";
If ((isset($Source))) { echo'<option value='.$Source.'>'.$Source.'</option>'; }
echo "<option value='Tous'>Tous</option>";
echo "<option value='Centre d'appels'>Centre d'appels</option>";
echo "<option value='Autres'>Autres</option>";
echo "</select>";

echo "autre modif :<select name='Autre' onchange='this.form.submit()'>";
If ((isset($Autre))) { echo'<option value='.$Autre.'>'.$Autre.'</option>'; }
echo "<option value='Tous'>Tous</option>";
echo "<option value='Toto'>Toto</option>";
echo "<option value='Autres'>Autres</option>";
echo "</select>";

echo "</form>";
?>
A l'avance merci

Posté : 15 juil. 2005, 16:41
par Cyrano
Deux choses : d'abord, ton code est inutilement lourd: pourquoi faire interpréter du HTML par PHP ?
<?php
if ((isset($_GET["Source"])))
{
    $Source = stripslashes($_GET["Source"]);
}
echo $Source;
?>
<FORM METHOD="GET" name="Prerecherche">
Source :<select name="Source" onchange="this.form.submit()">
<?php
If ((isset($Source)))
{
    ?>
  <option value="<?php echo($Source); ?>"><?php echo($Source); ?></option>
    <?php
}
?>
  <option value="Tous">Tous</option>
  <option value="Centre d'appels">Centre d'appels</option>
  <option value="Autres">Autres</option>
</select>
autre modif :<select name="Autre" onchange="this.form.submit()">
<?php
If ((isset($Autre)))
{
    ?>
  <option value="<?php echo($Autre); ?>"><?php echo($Autre); ?></option>
    <?php
}
?>
  <option value="Tous">Tous</option>
  <option value="Toto">Toto</option>
  <option value="Autres">Autres</option>
</select>
</form>
De cette manière, d'une part c'est plus propre mais c'est plus facile à lire et surtout plus efficace.

Ensuite : tu dis que tu as des problèmes ? de quel ordre ? as-tu des messages d'erreur de quoique ce soit ? Ou bien il faut deviner :?:

Aucun message d'erreur

Posté : 15 juil. 2005, 16:44
par Roups
Salut cyrano, Je n'ai aucun message d'erreur...

Simplement si tu test mon petit code que tu choisi centre d'appels, puis que dans autre tu fais un choix, et bien il m'affiche pas centre d'appel correctement...

Je sais que ca vient de ' , mais ....

[RESOLU]

Posté : 15 juil. 2005, 16:51
par Roups
Un grand merci Cyrano, ca marche, serais ce abuser que de te demander les changements effrectués...

Parce que là, je pige pas ....

Posté : 15 juil. 2005, 18:18
par Cyrano
Pour l'exercice, reprends ton ancien code et essaye de le nettoyer de la manière dont je l'ai fait: tu vas forcément trouver l'erreur toi-même. Regarde un détail à propos des apostrophes / guillemets aussi, ça t'inspirera peut-être.