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 :

undefined index.


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    intermittent du spectacle
    Inscrit en
    Août 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : intermittent du spectacle
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2014
    Messages : 14
    Points : 7
    Points
    7
    Par défaut undefined index.
    bonjour à tous

    me présente un peu, olivier 43 ans intermittent du spectacle situé dans 95.

    alors je suis un naz en programmation, mais je mis colle afin de finir le site de mon groupe!
    je beug sur un truc, j'ai fais un formulaire juste pour récupérer les adresses mails des gens qui souhaitent être au courant des news du groupe
    voici le code ci-dessous:
    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
     
    <!--debut footer-->
    	<div id="footer">
        <div id="retour-top"><a href="#">Retour en haut de page <img src="images/ico-retour.png" /></a></div>
        <div id="news-letter">
     
    <?php
    include('bdd.php');
     
    $req = $bdd->prepare('INSERT INTO news_letter (email) VALUES(?)');
    $req->execute(array($_POST['email']));
    $req->closeCursor();
     
     
    ?>           
                <form  method="post" autocomplete="on">
                <label for="email">S'inscrire à la news-letter</label>
                <input type="email" placeholder="entrez votre email" name="email" id="email"required="required" />
                <input type="submit" value="ok" />
                </form>
     
    </div>
    </div>
    <!--fin footer-->
    et voici la page bdd

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    try
    {
    	$bdd = new PDO('mysql:host=localhost;dbname=fcom', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)) or die(print_r($bdd->errorInfo()));
    	$bdd->exec('SET NAMES utf8');
    }
    catch(Exeption $e)
    {
    	die('Erreur:'.$e->getMessage());
    }
    ?>

    mon footer et bdd sont en include sur mes autres pages et suis avec easy.php
    seulement cela fonctione pas et j'ai ça en erreur en localhost

    Notice: Undefined index: email in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\projects\include\footer.php on line 10
    voilà, je vous remercie d'avance, car ai du mal à comprendre

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    C'est juste une question de logique : au moment où tu affiches ton formulaire pour la première fois, l'utilisateur ne peut pas l'avoir rempli et ton code ne reçoit pas la valeur mail dans $_POST, ce que t'indique le message d'erreur.
    Il faut donc différencier l'affichage du formulaire et son traitement.

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    "Undefined index" signifie que tu essayes d'accéder à un élément d'un tableau qui n'existe pas.
    Dans ton cas particulier, tu essayes d'exploiter un champ de formulaire sans que le formulaire ait été envoyé.

    La correction la plus basique est d'encadrer le code utilisant ce champ par une condition qui vérifie que le champ est bien renseigné. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (!empty($_POST['email'])) {
        include('bdd.php');
     
        $req = $bdd->prepare('INSERT INTO news_letter (email) VALUES(?)');
        $req->execute(array($_POST['email']));
        $req->closeCursor();
    }

  4. #4
    Futur Membre du Club
    Homme Profil pro
    intermittent du spectacle
    Inscrit en
    Août 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : intermittent du spectacle
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2014
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    merci pour vos réponse et dsl d'avoir posté les codes commes ça

    alors j' ai fait ce petit bout de code, effectivement plus d'erreur mais ne fonctionne pas du coup, dans ma table sql j 'ai rien, alors que avant en ayant cette erreur cela enregistré quand même. de plus le simple fait réactualiser la page enregistrait aussi l'adresse en saisie automatique

    avez-vous des solutions?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    intermittent du spectacle
    Inscrit en
    Août 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : intermittent du spectacle
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2014
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    autant pour moi, cela fonctionne,,, super!!!merci beaucoup!!! c'est cool

    juste une chose , comme je l'ai dit j'avais pourtant essayer ce code, au départ l'avais fait au départ avec isset et ensuite !empty et ça ne fonctionnait pas,je ne comprends pas que cela fonctionne d'un coup, j'ai recopier le petit bout de code que tu as ré-écris,alors je me pose la question à part ce petit code !empty, tu as retouché au reste ou pas?

    merci

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    non, j'ai juste ajouté la condition. La différence était peut-être sur ce que tu avais mis à l'intérieur du if.

  7. #7
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Plutot que le empty, je suis plutot d'avis d'utiliser le isset . (car le empty suppose que la variable existe, j'ai déjà chopper des warning à cause de ça).

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_POST["mail"]))

  8. #8
    Futur Membre du Club
    Homme Profil pro
    intermittent du spectacle
    Inscrit en
    Août 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : intermittent du spectacle
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2014
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    bonjour

    j'avais mis le isset mais apparemment quand on actualise la page il m'enregistre un vide dans mysql, et parès recherche le empty m'a résolu le problème, moi je ne suis absolument pas calé dans php, j'essaye de comprendre et apprendre,mais cela reste assez compliqué pour moi de retenir tout ça.


    merci à tous

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par skeud
    car le empty suppose que la variable existe


    Citation Envoyé par php.net
    Détermine si une variable est considérée comme vide. Une variable est considérée comme vide si elle n'existe pas, ou si sa valeur équivaut à FALSE. La fonction empty() ne génère pas d'alerte si la variable n'existe pas.

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

Discussions similaires

  1. erreur undefined index
    Par istreen dans le forum Langage
    Réponses: 8
    Dernier message: 06/01/2006, 13h09
  2. [Librairies] PHPMVC : Undefined index
    Par Benat64 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 30/12/2005, 09h27
  3. [Noob] Undefined index: id
    Par Devil666 dans le forum Langage
    Réponses: 4
    Dernier message: 08/12/2005, 13h00
  4. Undefined index
    Par sebduduf dans le forum Langage
    Réponses: 5
    Dernier message: 02/11/2005, 12h13
  5. Erreur de "Undefined index" sur HTTP_REFERER
    Par guy2004 dans le forum Langage
    Réponses: 4
    Dernier message: 12/10/2005, 12h21

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