stripslashes coupe mon mot !!!!!

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : stripslashes coupe mon mot !!!!!

par Cyrano » 15 juil. 2005, 18:18

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.

[RESOLU]

par Roups » 15 juil. 2005, 16:51

Un grand merci Cyrano, ca marche, serais ce abuser que de te demander les changements effrectués...

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

Aucun message d'erreur

par Roups » 15 juil. 2005, 16:44

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 ....

par Cyrano » 15 juil. 2005, 16:41

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 :?:

Probleme

par Roups » 15 juil. 2005, 16:31

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

Re: oui c'est normal

par ouckileou » 15 juil. 2005, 15:35

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...

oui c'est normal

par Roups » 15 juil. 2005, 15:26

Oui c'est normal, c'est un formulaire de pre selection, pour detailler la recherche....

ensuite j'envoie tous les criteres avec hidden

par ouckileou » 15 juil. 2005, 15:20

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>

J'oubliais

par Roups » 15 juil. 2005, 15:16

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 ...

Marche pas

par Roups » 15 juil. 2005, 15:14

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

par zeus » 15 juil. 2005, 15:09

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>"; 

stripslashes coupe mon mot !!!!!

par Roups » 15 juil. 2005, 15:06

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]