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 :

Variables déjà déclarées, mais j'arrive pas à savoir où :(


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut Variables déjà déclarées, mais j'arrive pas à savoir où :(
    Bonjour,

    J'ai comme on pourrait dire un problème basique.

    J'extrait de POST des variables dynamiques.

    Seulement certaines de mes variables existent déjà, et je n'arrive pas à comprendre pourquoi.

    Explication :

    Ma page forum.php, celle-ci contient en gros ces lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    require_once('./include/config.php');
     
    if( !isset($_SESSION['option']) )
    {
        // déclaration des options d'affichage, design, etc...
    }
     
    // si soumission d'un form
    if( isset($_POST['envoi']) )
    {
        require('./forum/soumission_form.inc.php');
    }
     
    // si nouveau, réponse, edition, citation
    if( isset($_GET['post']) )
    {
        require('./forum/form.inc.php');
    }
    else
    {
        // require en fonction des GET présents
    }
     
    // affichage
    Donc si un form est soumis, l'appel à soumission_form est appliqué.

    soumission_form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    // Soumission des forms du forum
    if( !isset($_SESSION['membre']) )
    {
    		$url = 'membre.php?action=connexion';
        $erreur = 'Vous ne pouvez pas poster de message car vous n\'êtes pas identifié.<br /><br />Veuillez vous connecter';
        exit(require('./include/messages.inc.php'));
    }
     
    foreach( $_POST as $c => $v )
    {
        if( !isset(${$c}) )
    		{ 
    			${$c} = sql_ins(trim($v));
    		}
    		else
    		{
    			echo 'la variable $' . $c . ' existe !!!<br />Mais où !?!!!???<br />';
    		}
    }
    $erreur = array();
     
    //pre($_POST);
     
    // traitement des valeurs
    Mon problème réside dans mon foreach, j'ai un champ titre et un champ message qui ne sont pas censé exister, mais qui existent.

    J'arrive pas à comprendre pourquoi

    Ma page soumission_form est appelée avant toutes déclaration de variables, donc je vois pas du tout.

    Ca se trouve, c'est encore un truc tout bête, mais plus je cherche, moins je trouve.

    Avez-vous une idée ?

  2. #2
    Membre éprouvé Avatar de Cyberbob002
    Inscrit en
    Mai 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 140
    Par défaut
    Donne le code de ton formulaire pour que l'on ait plus de précisions.

  3. #3
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Moi je comprends pas trop ton code

    Si c'est pas isset tu insères et si c'est isset tu affiches un message ? Ca a un sens ça ?

  4. #4
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    Ben mon formulaire se résume en abrégé à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <form id="form_forum" method="post" action="/v1/forum.php?post=nouveau&forum=2">
    <script src="javascript/form.js" type="text/javascript"></script>
    <h3 id="form">forum : rapports de bugs</h3>
    <p class="titre_message">
    <input type="text" name="titre" id="titre"  value="" size="50" maxlength="50" onfocus="focus_input('titre', 'ltitre')" onblur="blur_input('titre', 'ltitre')"/>
    <label id="ltitre" for="titre">titre de votre message</label></p>
    <div class="contenu_message">
    <script type="text/javascript" src="javascript/codev.js"></script>
    <table class="zone_texte">
    <tr><td class="menu_barre" colspan="2"></td></tr>
    <tr><td class="textarea"><textarea id="message" name="message" onfocus="focus_textarea('message')" onblur="blur_textarea('message')"></textarea></td>
    <td class="smilies"></td></tr>
    </tr>
    </table>
    </div>
    <p class="submit">
    <input type="hidden" name="nouveau" value="1" /><input type="hidden" name="forum" value="2" />
    <input id="valider" class="valider" type="submit" name="envoi" value="valider" onmouseover="submit_over('valider')" onmouseout="submit_out('valider')"/>
    <input id="prevu" class="valider" type="submit" name="prevu" value="visualiser" onmouseover="submit_over('prevu')" onmouseout="submit_out('prevu')" />
    </p>
    </form>
    C'est quoi que tu ne comprends pas dans mes isset Kerod ?

  5. #5
    Membre éprouvé Avatar de Cyberbob002
    Inscrit en
    Mai 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 140
    Par défaut
    Citation Envoyé par Xunil
    Mon problème réside dans mon foreach, j'ai un champ titre et un champ message qui ne sont pas censé exister, mais qui existent.
    C'est un peu logique qu'ils soient là non ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <textarea id="message" name="message" onfocus="focus_textarea('message')" onblur="blur_textarea('message')"></textarea>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="titre" id="titre"  value="" size="50" maxlength="50" onfocus="focus_input('titre', 'ltitre')" onblur="blur_input('titre', 'ltitre')"/>

  6. #6
    Membre émérite Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Par défaut
    Pas mieux.

    Les champs sont présents dans le formulaire donc ils sont transmis ( les seuls cas ou cela n'est pas vrai sont les champs disabled et les checkbox non cochées )

    Ensuite, quand tu fait un isset, la variable existe puisque le php la reçoit. Ensuite il te faut tester qu'elle ne soit pas vide !empty().

    Mais, il faut faire attention car 0 et la chaine vide sotn considéré comme nulle

    Plus d'info : empty , isset

    En espérant que cela te soit utile

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

Discussions similaires

  1. variable globale dont je n'arrive pas à visualiser le contenu
    Par wiama dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 18/05/2010, 19h07
  2. [PHP 5.0] Mes mails partent mais n'arrivent pas !
    Par zouberi dans le forum Langage
    Réponses: 6
    Dernier message: 09/01/2009, 09h42
  3. J'ai 3 fonctions mais j'arrive pas a en appeller une
    Par Ofeneim dans le forum VBA Access
    Réponses: 9
    Dernier message: 23/05/2007, 17h36
  4. Réponses: 22
    Dernier message: 18/05/2007, 17h46
  5. Réponses: 1
    Dernier message: 23/01/2006, 22h23

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