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

PHP & Base de données Discussion :

Notice: Undefined index: num_client


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 11
    Par défaut Notice: Undefined index: num_client
    Voici 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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Antivirus</title>
     
    </head>
     
    <body>
     
    <?php
    session_start();
     
    if (@$_SESSION['auth'] != "yes")
    {
    	header("Location: login.php");
    	exit();
    }
     
     include("chiens.inc");
    $cxn = mysqli_connect($host, $user, $password, $database) or die ("Connexion en échec");
    $sql = "SELECT firstName,lastName FROM member WHERE loginName='{$_SESSION['logname']}'";
    $result = mysqli_query($cxn,$sql) or die ("Requete SELECT en échec dans Nouveau_Membre");
    $row = mysqli_fetch_assoc($result);
    extract($row);
    echo "<html>
    	  <head><title>Fiche</title></head>
    	  <body>
    	  <h2 style='margin-top: .7in; text-align: left'>
    	  $firstName $lastName</h2>\n";
    ?>
     
     
    <h1 align="center"><strong><u>Donnees client pour antivirus :</u></strong></h1>
    <p align="center">&nbsp;</p>
     
    <h1><u><strong>Client :</strong></u></h1>
    <h3>Numéro : <?php echo $_POST['num_client']; ?> </h3>
    <h3>Nom : <?php echo $_POST['nom_client']; ?> </h3>
    <h3>Prénom : <?php echo $_POST['prenom_client']; ?> </h3>
    <h3>Adresse : <?php echo $_POST['adresse_client']; ?> </h3>
    <h3>Téléphone : <?php echo $_POST['tel_client']; ?> </h3>
    <h3>Mail : <?php echo $_POST['mail_client']; ?> </h3>
    <h3>Date d'achat : <?php echo $_POST['date_achat_client']; ?> </h3>
    <h3>Date d'expiration : <?php echo $_POST['date_expir_client']; ?> </h3>
     
     
    <div id="corps">
     
    		<?php
     
    			try
                {
                	$bdd = new PDO('mysql:host=localhost;dbname=antivirus','root','');
    			}
    			catch(Exception $e)
    			{
    				die('Erreur : ' .$e->getMessage());
    			}
     
    			$num_client = $_POST["num_client"];
    			$nom_client = $_POST["nom_client"];
    			$prenom_client = $_POST["prenom_client"];
    			$adresse_client = $_POST["adresse_client"];
    			$tel_client = $_POST["tel_client"];
    			$mail_client = $_POST["mail_client"];
    			$date_achat_client = $_POST["date_achat_client"];
    			$date_expir_client = $_POST["date_expir_client"];
     
    			try
    			{
    				$resultat1 = $bdd->prepare("insert into  client (num_client, nom_client, prenom_client, adresse_client, tel_client, mail_client, date_achat_client, date_expir_client) values(:num_client, :nom_client , :prenom_client , :adresse_client, :tel_client, :mail_client, :date_achat_client, :date_expir_client)") or die(print_r($bdd->errorInfo()));
    				$resultat1->execute(array(
    											'num_client' => $_POST['num_client'],
    											'nom_client' => $_POST['nom_client'],
    											'prenom_client' => $_POST['prenom_client'],
    											'adresse_client' => $_POST['adresse_client'],
    											'tel_client' => $_POST['tel_client'],
    											'mail_client' => $_POST['mail_client'],
    											'date_achat_client' => $_POST['date_achat_client'],
    											'date_expir_client' => $_POST['date_expir_client'],
    											))  or die(print_r($bdd->errorInfo()));
    			}
    			catch(Exception $e)
    			{
    				('Erreur1 : ' .$e->getMessage());
    			}
     
     
    			?>
    </div>
     
     
    </body>
    </html>
    Le problème que j'ai c'est qu'il m'affiche le message d'erreur suivant :


    Notice: Undefined index: num_client in C:\wamp\www\antivirus\donnees.php on line 61

    et ce pour chaque variable.

    Merci de m'aider!!!!!!!!

  2. #2
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Notice: Undefined index: num_client in C:\wamp\www\antivirus\donnees.php on line 61
    Ca veux dire que l'élément 'num_client' n'existe pas dans la tableau $_POST.

    Soit le formulaire de l'étape précédente n'a pas transmis cette donnée, soit ça n'a pas encore été effectué.

    Toujours est il qu'il faut vérifier ces données transmises par GET ou POST, c'est le minimum.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (isset($_POST['num_client'])) && !empty($_POST['num_client'])) {
    	// Ok la donnée à bien été transmise
    }
    else {
    	// Pas de donnée
    }
    Prend l'habitude de faire des print_r($_POST) ou var_dump($_POST) ou autre echo pour vérifier certaines données.
    C'est hyper pratique (voir indispensable).

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 11
    Par défaut Parse error: parse error in C:\wamp\www\antivirus\donnees.php on line 39
    Merci. Voilà l'erreur que j'ai lorsque je modifie le code comme tu me le dit :

    Parse error: parse error in C:\wamp\www\antivirus\donnees.php on line 39

    Revoici 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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Antivirus</title>
     
    </head>
     
    <body>
     
    <?php
    session_start();
     
    if (@$_SESSION['auth'] != "yes")
    {
    	header("Location: login.php");
    	exit();
    }
     
     include("chiens.inc");
    $cxn = mysqli_connect($host, $user, $password, $database) or die ("Connexion en échec");
    $sql = "SELECT firstName,lastName FROM Member WHERE loginName='{$_SESSION['logname']}'";
    $result = mysqli_query($cxn,$sql) or die ("Requete SELECT en échec dans Nouveau_Membre");
    $row = mysqli_fetch_assoc($result);
    extract($row);
    echo "<html>
    	  <head><title>Fiche</title></head>
    	  <body>
    	  <h2 style='margin-top: .7in; text-align: left'>
    	  $firstName $lastName</h2>\n";
    ?>
     
     
    <form action="deco.php" method="POST">
    	  <input type="submit" value="Deconnexion">
    </form>
     
    <?php
    if (isset($_POST['num_client'])) && !empty($_POST['num_client'])) {
    	print_r(OK);
    }
    else {
    	print_r(non OK);
    }
    ?>
     
    <h1 align="center"><strong><u>Donnees client pour antivirus :</u></strong></h1>
    <p align="center">&nbsp;</p>
     
    <h1><u><strong>Client :</strong></u></h1>
    <h3>Numero : <?php echo $_POST['num_client']; ?> </h3>
    <h3>Nom : <?php echo $_POST['nom_client']; ?> </h3>
    <h3>Prenom : <?php echo $_POST['prenom_client']; ?> </h3>
    <h3>Adresse : <?php echo $_POST['adresse_client']; ?> </h3>
    <h3>Téléphone : <?php echo $_POST['tel_client']; ?> </h3>
    <h3>Mail : <?php echo $_POST['mail_client']; ?> </h3>
    <h3>Date d'achat : <?php echo $_POST['date_achat_client']; ?> </h3>
    <h3>Date d'expiration : <?php echo $_POST['date_expir_client']; ?> </h3>
     
     
    <div id="corps">
     
    		<?php
     
    			try
                {
                	$bdd = new PDO('mysql:host=localhost;dbname=antivirus','root','');
    			}
    			catch(Exception $e)
    			{
    				die('Erreur : ' .$e->getMessage());
    			}
     
     
    			$num_client = $_POST["num_client"];
    			$nom_client = $_POST["nom_client"];
    			$prenom_client = $_POST["prenom_client"];
    			$adresse_client = $_POST["adresse_client"];
    			$tel_client = $_POST["tel_client"];
    			$mail_client = $_POST["mail_client"];
    			$date_achat_client = $_POST["date_achat_client"];
    			$date_expir_client = $_POST["date_expir_client"];
     
    			try
    			{
    				$resultat1 = $bdd->prepare("insert into  client (num_client, nom_client, prenom_client, adresse_client, tel_client, mail_client, date_achat_client, date_expir_client) values(:num_client, :nom_client , :prenom_client , :adresse_client, :tel_client, :mail_client, :date_achat_client, :date_expir_client)") or die(print_r($bdd->errorInfo()));
    				$resultat1->execute(array(
    											'num_client' => $_POST['num_client'],
    											'nom_client' => $_POST['nom_client'],
    											'prenom_client' => $_POST['prenom_client'],
    											'adresse_client' => $_POST['adresse_client'],
    											'tel_client' => $_POST['tel_client'],
    											'mail_client' => $_POST['mail_client'],
    											'date_achat_client' => $_POST['date_achat_client'],
    											'date_expir_client' => $_POST['date_expir_client'],
    											))  or die(print_r($bdd->errorInfo()));
    			}
    			catch(Exception $e)
    			{
    				('Erreur1 : ' .$e->getMessage());
    			}
     
     
    			?>
    </div>
     
     
    </body>
    </html>

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (isset($_POST['num_client'])) && !empty($_POST['num_client'])) {
    	print_r(OK);
    }
    else {
    	print_r(non OK);
    }
    Mais non
    Faut pas faire un print_r() avec un OK ou non Ok, ceci n'a aucun sens.
    Comme toutes fonctions Php, une fonction attend des paramètres. Un print_r attend un tableau.

    J'ai l'impression que tu n'a pas compris la démarche, la logique dans tout ça.
    Si tu fait directement un echo sur quelque chose (une variable, etc ...) et que ce quelque chose n'existe pas, alors il est normal que ça provoque une erreur.
    L'élément n'existe pas : Erreur.

    Du coup, il faut prendre certaines précautions AVANT de faire le echo.
    Ceci est particulièrement le cas pour des données extérieurs, comme les $_POST ou $_GET.
    Par définition, on ne sais pas si elle ont été transmise ou pas.
    De même qu'il faut bien souvent vérifier si sa valeur est bien celle attendue.
    Sinon, c'est du "ça passe" ou "ça casse".

    Je te donne donc un exemple simple d'une démarche (ça en est une parmi d'autres).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    // J'initialise la variable AVANT, en 1er
    $num_client = NULL;
     
    // On vérifie la présence de la donnée extérieurs via POST
    if (isset($_POST['num_client'])) && !empty($_POST['num_client'])) {
    	$num_client = $_POST['num_client'];
    }
    ?>
     
    <!-- // J'exploite $num_client (et non $_POST['num_client']) -->
    <h3>Numero : <?php echo $num_client; ?> </h3>
    Comme tu peux voir, il n'y pas de print_r().
    Par contre, un print_r() est utile pour débugger son code en cas d'erreur.
    Ce n'est que provisoire, juste pour comprendre.
    Tu aurais fait exactement un print_r($_POST) en tout 1er, au plus haut de ta page, tu verrais ce que contient le tableau $_POST (ou ce qu'il devrait contenir).

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 11
    Par défaut Parse error: parse error in C:\wamp\www\antivirus\donnees.php on line 43
    Non en effet je n'ai pas tout compris je débute en php et comme j'apprend seule ce n'est pas si simple.
    Désormais j'ai l'erreur suivante :


    Parse error: parse error in C:\wamp\www\antivirus\donnees.php on line 43

    qui es la ligne suivante :

    if (isset($_POST['num_client'])) && !empty($_POST['num_client'])) {

  6. #6
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Citation Envoyé par aquievreux Voir le message
    Non en effet je n'ai pas tout compris je débute en php et comme j'apprend seule ce n'est pas si simple.
    D'accord, tu débute, mais si tu ne saisie pas, alors c'est l'impasse ... malheureusement.

    Je ne vois pas comment t'expliquer ça autrement.
    Je ne suis pas prof malheureusement.
    Faudrait peut être peaufiner les bases de Php, mieux maitriser la syntaxe. C'est le BaBa.

    En tout cas, supprime les print_r() que tu as mis.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 11
    Par défaut
    C'est deja gentil de m'expliquer.

    J'ai bien suprimé le print_r() comme tu me l'as dit cependant l'erreur persiste je ne trouve pas de solution.

    Et je n'ai pas d'autre choix que d'y arriver étant donné que cela est pour mon stage.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Par défaut
    Citation Envoyé par aquievreux Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_POST['num_client'])) && !empty($_POST['num_client'])) {
    Il y a un ")" en trop après "$_POST['num_client']"

    De manière générale une "parse error" signifie qu'un caractère manque, est en trop, ou mal placé.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 11
    Par défaut
    Merci !!!

    Cependant il me laisse l'erreur sur :

    if (isset($_POST['num_client'])) && !empty($_POST['num_client']) {

    avec :

    Parse error: parse error in C:\wamp\www\antivirus\donnees.php on line 45

    code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    print_r($_POST);
     
    // J'initialise la variable AVANT, en 1er
    $num_client = NULL;
     
    // On vérifie la présence de la donnée extérieurs via POST
    if (isset($_POST['num_client'])) && !empty($_POST['num_client']) {
    	$num_client = $_POST['num_client'];
    }
    ?>

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 11
    Par défaut
    bon je n'ai plus cette erreur ci (il manqué des paranthéses) cependant j'ai toujours l'erreur initiale :

    Notice: Undefined index: num_client in C:\wamp\www\antivirus\donnees.php on line 54

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Par défaut
    La parenthèse de trop était au niveau du isset(), pas du if() dans son ensemble.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_POST['num_client']) && !empty($_POST['num_client'])) {

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 11
    Par défaut
    Cela ne change rien je garde toujours la meme erreur

  13. #13
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Il y a eu du renfort. Tant mieux, et désolé pour la petite parenthèse de trop.

    Cela ne change rien je garde toujours la meme erreur
    As tu compris le pourquoi du comment de cette alternative ? (celle la même de la parenthèse de trop).
    A quoi pourrait elle te servir ?
    En gros ... Où est la logique. Tout ça selon les explication que je t'ai déjà donné.
    On parle bien de logique, juste de la logique.

    Aussi, donne la raison, les explications du pourquoi tu fais un echo $_POST['num_client'] ?
    Mais encore ... pour quelle raison selon toi Php te retourne cette erreur.

    Il te faut absolument répondre à ce genre de question, et surtout comprendre, sinon tu vas bloquer tout le temps, autant dire des séances de tortures.

Discussions similaires

  1. Réponses: 8
    Dernier message: 03/04/2007, 10h01
  2. Notice: Undefined index method post
    Par vanou dans le forum Langage
    Réponses: 8
    Dernier message: 07/03/2007, 09h33
  3. Pb erreur Notice: Undefined index: pseudo
    Par PAINCO dans le forum Langage
    Réponses: 15
    Dernier message: 19/02/2007, 18h20
  4. Notice: Undefined index
    Par abusatif dans le forum Langage
    Réponses: 4
    Dernier message: 08/02/2007, 09h03
  5. Réponses: 9
    Dernier message: 01/05/2006, 00h02

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