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 :

erreur : undefined offset


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 45
    Points : 37
    Points
    37
    Par défaut erreur : undefined offset
    Bonjour à tous,

    J'ai un petit td à faire pour l'iut info mais je sèche un peu.
    Tout d'abord voici la consigne :
    "Le but est de faire un formulaire qui permet de faire une multiplication de deux nombres. Le formulaire doit s'afficher avec deux champs texte. Si on appelle ce formulaire directement, c'est tout. Si les deux textes soumis sont des nombres, on affiche le résultat de la multiplication. Sinon, on réaffiche les valeurs entrées en disant le(s)quel(s) n'est pas un nombre."

    Mon code :
    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
    25
    26
    27
    <?php
     
    function validation($a) {
        if ( ($_GET[0]!= strval(intval($_GET[0]))) || ($_GET[1]!= strval(intval($_GET[1]))) ) {
    	$errors[] = 'au moins un des nombre n\'est pas un entier';
    	$result['erreur']="<p>au moins un des nombre n\'est pas un entier</p>";
    	}
        else { 
    	$result->append($_GET[0],$_GET[1]);
    	return $result;
    	}
    }
     
    if (array_key_exists('$a',$_GET)) {
        $premiernombre="$_GET[0]";
        $deuxiemenombre="$_GET[1]";
    } else {
        $result=validation($_GET);
        // Soumission
        $premiernombre=$result["$_GET[0]"];
        $deuxiemenombre=$result["$_GET[1]"];
        if ($result['erreur']) {
            $text=$result['erreur'];
        } else {
            $text="<p>Le résultat de $_GET[0]*$_GET[1] est ".($_GET[0]*$_GET[1])."</p>";
        }
    }
    Puis le html :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <!DOCTYPE html>
    <html><head><title>TD 1</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="Content-Type" content="text/html;charset=utf8" /></head><body>
    <h1>Multiplication</h1>
    <form action="tp1Modif.php" method="$_SERVER[’PHP_SELF’]">
        <?php if (isset($text)) { echo $text;} ?>
         <p>Le premier nombre est: <input type="text" name="premiernombre" value="<?php echo XXX; ?>" /></p>
         <p>Le deuxi&egraveme nombre est: <input type="text" name="deuxiemenombre" value="<?php echo XXX; ?>" /></p>
         <p><input type="submit" /></p>
    </form></body></html>
    Je tiens à préciser que le prof nous a donné un code existant d'ou partir, il est à modifier par endroits et il faut ajouter du code ailleurs.
    Pour ne pas surcharger mon post je ne le met pas, mais si vous pensez que cela vous serait utile, il suffit de demander.

    Enfin voici mon erreur : Notice: Undefined offset: 0 in C:\wamp\www\s3d\tp1Modif.php on line 4

    Idem pour les lignes ou j'ai mis des $_GET[0] et $_GET[1].

    Je pense que c'est parce qu'au départ rien n'est entré dans les champs, mais je souhaiterai pouvoir afficher mes propres messages d'erreur dans ce cas, et donc surtout faire en sorte que le programme attende que je click sur valider

    Une dernière chose : je souhaite utiliser htmlspecialchars pour enlever les values du formulaire html afin que le code n'apparaisse pas dans les champs à l'affichage (j'ai essayer plusieurs solutions mais je suis à chaque fois embêté par les échappements, j'ai pourtant utiliser les anti slash avant les guillemets du premier argument tel que : htmlspecialchars(\"<a href='test'>Test</a>\", ENT_QUOTES); par exemple afin de ne pas être gêné par les guillemet de value="...." mais rien n'y fait).

    J'espère avoir été le plus clair possible et que mon problème vaut le coup de main

  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 : 53
    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
    $_GET[0] ?
    Tu devrais peut-être réviser un peu la gestion des formulaire et la structure du tableau $_GET
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 45
    Points : 37
    Points
    37
    Par défaut
    Effectivement grosse gaffe de ma part, d'une part car ce n'est pas comme cela que l'on fait mais aussi car à la ligne 18 je récupère les valeurs tapées par l'utilisateurs (si il a au moins entré le 1er nombre), il s'agit donc de mettre $premiernombre à la place de 0 et $deuxiemenombre à la place de 1.

    La correction est tombée, j'ai donc finis par comprendre le reste du code à correctement implémenter ensuite.

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

Discussions similaires

  1. [PHP 5.3] Message d'erreur Undefined offset 1
    Par dreamerforever dans le forum Langage
    Réponses: 1
    Dernier message: 24/02/2011, 11h26
  2. Erreur Undefined offset dans un tableau
    Par pasc06 dans le forum Langage
    Réponses: 26
    Dernier message: 26/11/2008, 16h04
  3. Réponses: 2
    Dernier message: 05/05/2008, 22h19
  4. Réponses: 1
    Dernier message: 28/01/2008, 16h33
  5. erreur Undefined offset
    Par wbagg2 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 01/12/2005, 14h16

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