IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] select, array, caractères spéciaux, addslashes


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Points : 109
    Points
    109
    Par défaut [Tableaux] select, array, caractères spéciaux, addslashes
    Bonjour,
    je viens vers vous avant de m'arracher le peu de cheveux qui me reste.

    j'ai un select de la forme suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
     
    $listepublic=array(
    "débats" => "débats",
    "lettre d'information"=> "lettre d'information",
    );
     
    echo "<select name='public'>";
    foreach ($listepublic as $key=>$value) {
    $selected = ($_POST['public'] == $key)?"selected":"";
    echo "<option value='$key' $selected>$value</option>";
    }
    echo "</select>";	
    ?>
    la variable issue de ce select est définie ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	 $public=addslashes($_POST['public']);

    cependant, ce qui est entré dans la base de donnée, pour "lettre d'information" est "lettre d". je ne comprends pas pourquoi le ' bloque, puisque normalement il devrait y avoir un \ avant.

    Merci de votre aide

  2. #2
    Membre habitué Avatar de kodokan
    Profil pro
    Lycéen
    Inscrit en
    Avril 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2006
    Messages : 127
    Points : 170
    Points
    170
    Par défaut
    Citation Envoyé par carelha

    la variable issue de ce select est définie ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	 $public=addslashes($_POST['public']);

    cependant, ce qui est entré dans la base de donnée, pour "lettre d'information" est "lettre d". je ne comprends pas pourquoi le ' bloque, puisque normalement il devrait y avoir un \ avant.
    essaie avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	 $public=addcslashes($_POST['public']);

  3. #3
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    Un petit coup d'htmlentities sur tes champs ne serait pas du luxe non plus étant donné que tu as des accents et que tu affiches le tout dans une page html

    De plus c'est tout à fait normal que ça plante étant donné que tu définis tes balises ouvrantes et fermantes des champs html avec des quotes simples.

    Essaie avec des quotes doubles tu y verras plus clair (et pour débugger affiche ton source html tu comprendras ton souci...)

  4. #4
    Membre régulier Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Points : 109
    Points
    109
    Par défaut
    Merci pour vos réponses mais je suis encore perdue.
    Guitou, je ne comprends pas
    tu définis tes balises ouvrantes et fermantes des champs html avec des quotes simples
    : de quelles quotes simples parles tu ?

    en outre, j'ai essayé simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $activite=htmlentities($_POST['activite']);
    ma variable est bien quand le $_POST ne contient pas d'apostrophe, mais dès qu'il y en a une, ce qui est après n'est pas pris en compte.

    Désolée, il y a vraiment qq chose qui m'échappe

  5. #5
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    Regarde ton source tu devrais trouver une ligne dans le genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value='lettre d'information'>lettre d'information</option>
    Ya pas un truc qui te choque dans la balise value ?

    et maintenant essaie comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value="lettre d'information">lettre d'information</option>

  6. #6
    Membre régulier Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Points : 109
    Points
    109
    Par défaut
    merci, je n'avais vraiment pas compris que c'était eux dont tu parlais. J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<option value=".$key." $selected>$value</option>";
    et j'ai quand même un problème car là, ce qui est entré en base de donnée, c'est uniquement le premier mot.

  7. #7
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<option value=".$key." $selected>$value</option>";
    Normal c'est faux !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<option value="'.$key.'" '.$selected.'>'.$value.'</option>';

  8. #8
    Membre régulier Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Points : 109
    Points
    109
    Par défaut
    Merci de ta patience, c'est OK.

    Je crois que je vais aller me changer les idées et revenir à ca plus tard avec la tête claire.

    Merci encore de ton aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Select avec caractères spéciaux
    Par an.pi dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 04/02/2012, 23h59
  2. [Tableaux] Passage de caractères spéciaux par l'URL
    Par Equinoxe5 dans le forum Langage
    Réponses: 4
    Dernier message: 19/02/2008, 10h06
  3. [Tableaux] Affichage des caractères spéciaux
    Par crischprolch dans le forum Langage
    Réponses: 2
    Dernier message: 27/06/2007, 10h12
  4. [Tableaux] Caractères spéciaux
    Par tigzirt dans le forum Langage
    Réponses: 3
    Dernier message: 15/05/2006, 11h41
  5. [Tableaux] Interclassement ou caractères spéciaux ??
    Par microcongo dans le forum Langage
    Réponses: 22
    Dernier message: 09/05/2006, 09h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo