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 :

demande de renseignement sur le isset


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 295
    Par défaut demande de renseignement sur le isset
    Bonsoir,

    voila j'ai un formulaire avec des checkbox que je voudrais mettre en bdd mais quand je met ceci

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    if(empty($_POST['autoriser'])&&isset($_POST['non_autoriser']) &&isset($_POST['mp'])&&isset($_POST['non_mp']))
     { 
                       $membre_id = $_SESSION['id'];
    		   $autoriser = implode(',', $_POST['autoriser']); 
    		   $non_autoriser = implode(',', $_POST['non_autoriser']);
    		   $mp  = implode(',', $_POST['mp']);
    		   $non_mp  = implode(',', $_POST['non_mp']);


    la requête insert ne se fais pas et le isset me dit que j'ai quand mêmes des indéfini index,je pensais qu'il enlèverait les notices lié au case vide


    merci pour l'aide

  2. #2
    Membre confirmé

    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 103
    Par défaut
    Bonjour,

    J'ai été confronté à des problèmes comparables sur Ubuntu 10.04, Apache2.2 et PHP 5.3.
    Pour des champs de type "input='text'les champs "null" n'existent pas, ce sont des chaînes de caractères de longueur 0 et donc je teste la longueur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(strlen($_POST['mon_champ'])>0)
     
    ou 
     
    if(strlen($_POST['mon_champ'])===0)
    (apparemment votre clé est bien un champs texte)

    Pour les checkbox le problème est légèrement différent chez moi; il considère que le champs n'existe pas dans le tableau $_POST retourné au serveur uniquement si la case est cochée. Si elle n'est pas cochée le champs n'est aps dans le tableau $_POST. Je teste via array_key_exists:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(array_key_exists('mon_champ'), $_POST)
    ...
    Le mieux est sans doute de créer sa propre fonction "custom_http_isset($key, $array)" retournant un booléen pour parer au risque de changement de comportement sur une autre plateforme.


    Attention le traitement des formulaires est complètement différent si vous utilisez des CMS comme Drupal.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Il te faut contrôler tes sessions

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    session_start();
    $id = (isset($_SESSION['id'])) ? $_SESSION['id'] : '';
    if ($id=="") $_SESSION['id']="";
     
    ?>

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 295
    Par défaut
    merci pour toute ses réponses,j'aurais voulu savoir s'il était possible de de delete un seul champ par exemple il y a la colonne mp avec la variable mp,est ce que c'est possible de delete pour le laisser vide sans pour autant effacer toute la colonne,par contre je ne vois pas comment utiliser array_key_exits sur mes $_post(pas faute d'avoir cherché)

    j'ai bien essayer ceci

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
     
              $query=$db->prepare('DELETE FROM forum_membres WHERE mp = :mp');
                 $query->bindValue(':mp',$_POST['mp'],PDO::PARAM_STR);
                 $query->execute();
                 $query->CloseCursor();

    mais sois sa efface bien la variable inséré ou bien sa m'efface toute ma ligne
    merci

  5. #5
    Invité
    Invité(e)
    Par défaut
    Ta question me dis qu'il te faut relire nos TOPOS (cherches en haut de cette page tutoriels

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 295
    Par défaut
    en faite se que je voudrais c'est que si par exemple le membre a cocher le checkbox 'oui' pouvoir le delete et update par le nouveau checkbox cocher si il a cocher le checkbox non,

    un peu comme sur les forum ou on peut cocher oui ou non si on veut suivre le fil du post

  7. #7
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 421
    Par défaut
    Tu peux tester ce petit script dans une page séparée pour mieux comprendre

    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
    echo '<pre>';
    print_r($_POST);
    echo '</pre>';
    ?>
    <form action = "#" method="post">
    <input type = "checkbox" name="check1" value="chekbox1" />chekbox 1
    <input type = "checkbox" name="check2" value="chekbox2" />chekbox 2
    <input type = "radio" name="rad" value="radio1" />radio 1
    <input type = "radio" name="rad" value="radio2" />radio 2
    <input type = "text" name="text" value="" />
    <input type = "submit" name="envoi" value = "envoyer" />
     
    </form>
    Les types checkbox et radio ne sont renvoyés que s'ils sont cochés. Les types text sont toujours renvoyés ainsi que le bouton du formulaire de type submit.

    Pour info, à la place de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($toto) && isset($titi) && isset($tata))
    pour le même résultat tu peux écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($toto,$titi,$tata))
    mais ce n'est pas possible avec empty()

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

Discussions similaires

  1. Demande de renseignements sur Interface
    Par MoscoBlade dans le forum C#
    Réponses: 7
    Dernier message: 21/02/2007, 15h38
  2. Réponses: 2
    Dernier message: 04/06/2006, 21h35
  3. Réponses: 6
    Dernier message: 10/05/2006, 15h34
  4. demande de renseignements sur les classes
    Par altadeos dans le forum Langage
    Réponses: 4
    Dernier message: 08/04/2006, 15h59
  5. demande de renseignement sur delfi 7
    Par cybob dans le forum Débuter
    Réponses: 11
    Dernier message: 19/02/2006, 18h32

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