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 :

[PHP-JS] Notice: Undefined index: ? un @ règle le problème - Pourquoi?


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Points : 117
    Points
    117
    Par défaut [PHP-JS] Notice: Undefined index: ? un @ règle le problème - Pourquoi?
    Pourquoi le signe '@' devant ma fonction $_POST regle mon soucis ?

    Je ne comprends pas pourquoi mon code genere cette erreur (Notice: Undefined index: )?

    Avez vous une idée?

    Merci.

    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
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    <?php
    require("cnx/login_sql.php");
    
    //Connexion à la base de données
    $db = mysql_connect('localhost', 'root', '') or die ("Erreur de connexion");
    
    //Selection de la base
    mysql_select_db('alliance',$db);
    
    //Recupération de la variable id
    $id=$_GET['id'];
    
    $req_pr="SELECT * FROM spare WHERE id_spare='$id'";
    
    $sql_pr=mysql_query($req_pr) or die ('Erreur SQL !<br>'.$req.'<br>'.mysql_error());
    echo '<IMG src="image/fiche_sp.png" align="left" border=0>';
    while($data=mysql_fetch_assoc($sql_pr))
    	{
    	
    	echo '<DIV align="left"><strong><u><font face="verdana" size="3">'.$data['nom_spare'].'</font></u></strong></br></br>';
    	
     	if($data['modele'] == "ACER")
    	{
    	echo '<table style="border-color:#000000;border-width:1;border-style:dotted">';
    	echo '<tr>';
    	echo '<td align="center">';
    	echo '<IMG src="image/logo-acer.png" border=0>';
    	echo '</td>';
    	echo '<td>';
    	echo '<a href="http://support.acer-euro.com/">Support [www]</a>';
    	echo '</td>';
    	echo '</tr>';
    	echo '</table>';
    	}
    	elseif($data['modele'] == "DELL")
    	{
    	echo '<table style="border-color:#000000;border-width:1;border-style:dotted">';
    	echo '<tr>';
    	echo '<td align="center">';
    	echo '<IMG src="image/logo-dell.png" border=0>';
    	echo '</td>';
    	echo '<td>';
    	echo '<a href="http://support.euro.dell.com/">Support [www]</a>';
    	echo '</td>';
    	echo '</tr>';
    	echo '</table>';
    	}
    	elseif($data['modele'] == "NEC")
    	{
    	echo '<table style="border-color:#000000;border-width:1;border-style:dotted">';
    	echo '<tr>';
    	echo '<td align="center">';
    	echo '<IMG src="image/logo-nec.png" border=0>';
    	echo '</td>';
    	echo '<td>';
    	echo '<a href=" http://www.nec-display-solutions.fr/">Support [www]</a>';
    	echo '</td>';
    	echo '</tr>';
    	echo '</table>';
    	
    	}
    	
    	echo'</br>';
    	echo'</br>';
    	echo '<table border=1 align=center width="80%">';
    	echo '<tr>';
    	echo '<td style="background-image:url(image/bg6box.gif)">Information Matériel</td>';
    	echo '</tr>';
    	echo '</table>';
    	echo '&nbsp';
    	echo '<table style="border-color:#000000;border-width:1;border-style:dashed" width="80%" align=center>';
    	echo '<tr>';
    	echo '<td class="largeur" style="border-color:#000000;border-width:1;border-style:dotted"><strong><font size="1">Modèle</td>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted">eeee</td>';
    	echo'</tr>';
    	echo '<tr>';
    	echo '<td class="largeur" style="border-color:#000000;border-width:1;border-style:dotted"><strong><font size="1">N° série Machine</td>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted">eeee</td>';
    	echo'</tr>';
    	echo '<tr>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted"><strong><font size="1">N° Inventaire [A.H]</td>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted">eeee</td>';
    	echo'</tr>';
    	if($data['os'] == '')
    	{
    	$os = $_POST['os'];
    	echo '<tr>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted"><strong><font size="1">Système Exploitation</td>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted"><form name="maj_os" method="post" Action="index.php?numlien=fich_spare&id='.$id.'"><input type="text" name="os" value="'.$_POST['os'].'">&nbsp&nbsp <IMG src="image/stylo.png" border="0" onclick="javascript:document.forms.maj_os.submit();">';
    	$sql_os="UPDATE spare SET os='$os' WHERE id_spare='$id'";
    	$exe_sqlos = mysql_query($sql_os) or die('Erreur SQL !');
    	echo'</form></td>';
    	
    	}
    	else
    	{
    	echo '<tr>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted"><strong><font size="1">Système Exploitation</td>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted">'.$data['os'].'</td>';
    	echo'</tr>';
    	}
    	echo '<tr>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted"><strong><font size="1">Mémoire vive [R.A.M]</td>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted">eeee</td>';
    	echo'</tr>';
    	echo '<tr>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted"><strong><font size="1">Disque Dur [H.D]</td>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted">eeee</td>';
    	echo'</tr>';
    	echo '<tr>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted"><strong><font size="1">Vidéo [Carte Graphique]</td>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted">eeee</td>';
    	echo'</tr>';
    	echo '<tr>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted"><strong><font size="1">Sans Fil [Wifi]</td>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted">eeee</td>';
    	echo'</tr>';
    	echo '<tr>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted"><strong><font size="1">Carte réseau [LAN]</td>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted">eeee</td>';
    	echo'</tr>';
    	echo'</table>';
    	  	
    	}
    	 
    	
    mysql_close();
    ?>

  2. #2
    En attente de confirmation mail

    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2003
    Messages : 253
    Points : 637
    Points
    637
    Par défaut
    Ca veut tout simplement dire qu'il n'y a pas de clef portant le nom 'os' dans ton tableau $_POST. Le @ ne corrige en rien l'erreur, simplement il "l'étouffe", celle-ci ne s'affiche donc pas.

  3. #3
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    un moyen plus propre de faire serait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (isset($_POST['os'])) {
       $os = $_POST['os'];
    } else {
       $os = '';
    }
    Ou de maniere réduite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $os = (isset($_POST['os']))?$_POST['os']:'';

  4. #4
    Membre régulier Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Points : 117
    Points
    117
    Par défaut
    Ca marche beaucoup mieux !

    Merci les mecs ...

    Par contre, j'ai un autre petit soucis mais pas grand chose ... quand je valide sur mon image permettant de valider ce que je viens de saisir ... je suis obligé de cliquer a 2 reprises sur mon image pour faire apparaitre ce que je viens d'UPDATER dans ma table ... ?

    Avez vous une idée ?

    Thks

  5. #5
    Membre habitué Avatar de Azazel.fr
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 170
    Points : 196
    Points
    196
    Par défaut
    je dirais que c'est surement parce que tu fais ton traitement (insertion bdd) sous ton code qui permet d'afficher.
    la page est lue de haut en bas ; si tu affiches d'abord tes données et insère ensuite, ton navigateur n'est pas devin et ne peut afficher ce qui n'est pas encore inséré en base.

    et le @ sert à cacher les messages d'erreur... ce n'est pas une solution...

  6. #6
    Membre régulier Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Points : 117
    Points
    117
    Par défaut
    Tu n'as pas une astuce via Javascript ou autre ?

    Merci en tout cas pour ta réponse.

  7. #7
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Points : 958
    Points
    958
    Par défaut
    Tu peux faire une redirection après ton update, du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    mysql_query("UPDATE mon update");
    $redirection = "Location: http://".$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME'];
    header($redirection);
    exit;

  8. #8
    Membre régulier Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Points : 117
    Points
    117
    Par défaut
    Je suis parvenu a trouver une solution grace a quelques compéres de la section javascript !!!!!!

    Merci a vous encore une fois .... Ce forum est d'enfer !!!!!! !!!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function fct1()
    {
        document.forms.maj_os.submit(); 
    }
     
    function refresh()
    {
        location.reload();
    }
    </script>
    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
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    <?php
    require("cnx/login_sql.php");
     
    //Connexion à la base de données
    $db = mysql_connect('localhost', 'root', '') or die ("Erreur de connexion");
     
    //Selection de la base
    mysql_select_db('alliance',$db);
     
    //Recupération de la variable id
    $id=$_GET['id'];
     
    $req_pr="SELECT * FROM spare WHERE id_spare='$id'";
     
    $sql_pr=mysql_query($req_pr) or die ('Erreur SQL !<br>'.$req.'<br>'.mysql_error());
    echo '<IMG src="image/fiche_sp.png" align="left" border=0>';
    while($data=mysql_fetch_assoc($sql_pr))
    	{
     
    	echo '<DIV align="left"><strong><u><font face="verdana" size="3">'.$data['nom_spare'].'</font></u></strong></br></br>';
     
     	if($data['modele'] == "ACER")
    	{
    	echo '<table style="border-color:#000000;border-width:1;border-style:dotted">';
    	echo '<tr>';
    	echo '<td align="center">';
    	echo '<IMG src="image/logo-acer.png" border=0>';
    	echo '</td>';
    	echo '<td>';
    	echo '<a href="http://support.acer-euro.com/">Support [www]</a>';
    	echo '</td>';
    	echo '</tr>';
    	echo '</table>';
    	}
    	elseif($data['modele'] == "DELL")
    	{
    	echo '<table style="border-color:#000000;border-width:1;border-style:dotted">';
    	echo '<tr>';
    	echo '<td align="center">';
    	echo '<IMG src="image/logo-dell.png" border=0>';
    	echo '</td>';
    	echo '<td>';
    	echo '<a href="http://support.euro.dell.com/">Support [www]</a>';
    	echo '</td>';
    	echo '</tr>';
    	echo '</table>';
    	}
    	elseif($data['modele'] == "NEC")
    	{
    	echo '<table style="border-color:#000000;border-width:1;border-style:dotted">';
    	echo '<tr>';
    	echo '<td align="center">';
    	echo '<IMG src="image/logo-nec.png" border=0>';
    	echo '</td>';
    	echo '<td>';
    	echo '<a href=" http://www.nec-display-solutions.fr/">Support [www]</a>';
    	echo '</td>';
    	echo '</tr>';
    	echo '</table>';
     
    	}
     
    	echo'</br>';
    	echo'</br>';
    	echo '<table border=1 align=center width="80%">';
    	echo '<tr>';
    	echo '<td style="background-image:url(image/bg6box.gif)">Information Matériel</td>';
    	echo '</tr>';
    	echo '</table>';
    	echo '&nbsp';
    	echo '<table style="border-color:#000000;border-width:1;border-style:dashed" width="80%" align=center>';
    	echo '<tr>';
    	echo '<td class="largeur" style="border-color:#000000;border-width:1;border-style:dotted"><strong><font size="1">Modèle</td>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted">eeee</td>';
    	echo'</tr>';
    	echo '<tr>';
    	echo '<td class="largeur" style="border-color:#000000;border-width:1;border-style:dotted"><strong><font size="1">N° série Machine</td>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted">eeee</td>';
    	echo'</tr>';
    	echo '<tr>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted"><strong><font size="1">N° Inventaire [A.H]</td>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted">eeee</td>';
    	echo'</tr>';
     
    	if($data['os'] == '')
    	{
    	echo '<tr>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted"><strong><font size="1">Système Exploitation</td>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted">';
     
    	if (isset($_POST["os"])) {
    	$sql_os="UPDATE spare SET os='".$_POST["os"]."' WHERE id_spare='$id'";
    	$exe_sqlos = mysql_query($sql_os) or die('Erreur SQL !');
    							}
     
    	echo '<form name="maj_os" method="POST" Action="index.php?numlien=fich_spare&id='.$id.'">';
    	echo '<input type="text" name="os" value="'.$data['os'].'">&nbsp&nbsp <IMG src="image/stylo.png" style="border:none;" onclick="fct1();refresh();" />';
    	echo'</form></td>';
    	}
    	else
    	{
    	echo '<tr>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted"><strong><font size="1">Système Exploitation</td>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted">'.$data['os'].'</td>';
    	echo'</tr>';
    	}
    	echo '<tr>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted"><strong><font size="1">Mémoire vive [R.A.M]</td>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted">eeee</td>';
    	echo'</tr>';
    	echo '<tr>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted"><strong><font size="1">Disque Dur [H.D]</td>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted">eeee</td>';
    	echo'</tr>';
    	echo '<tr>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted"><strong><font size="1">Vidéo [Carte Graphique]</td>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted">eeee</td>';
    	echo'</tr>';
    	echo '<tr>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted"><strong><font size="1">Sans Fil [Wifi]</td>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted">eeee</td>';
    	echo'</tr>';
    	echo '<tr>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted"><strong><font size="1">Carte réseau [LAN]</td>';
    	echo '<td style="border-color:#000000;border-width:1;border-style:dotted">eeee</td>';
    	echo'</tr>';
    	echo'</table>';
     
    	}
     
     
    mysql_close();
    ?>

  9. #9
    Membre habitué Avatar de Azazel.fr
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 170
    Points : 196
    Points
    196
    Par défaut
    tant mieux que tu es trouvé la réponse.

    cependant plusieurs autres solutions s'offrent à toi, dont la plus propre est certainement :
    - une page (formulaire.php) qui envoi les données vers :
    - une page (traitement.php : insertion bdd, etc...) qui redirige vers :
    - la page (formulaire.php), qui du coup peut récupérer les données insérées.

    c'est beaucoup plus propre que de faire son affichage ET son traitement de données dans la meme page. sans compter que l'astuce du javascript ne marchera pas pour les navigateurs dont le javascript est désactivé... mais ceci est un autre débat !

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

Discussions similaires

  1. aide pour facture sous php : Notice: Undefined index
    Par le beauceron dans le forum Langage
    Réponses: 3
    Dernier message: 19/08/2012, 23h15
  2. php Notice: Undefined index:
    Par DaYonyon dans le forum Langage
    Réponses: 5
    Dernier message: 20/01/2010, 12h17
  3. [PHP-JS] Problème Notice: Undefined index
    Par Sniper94-2 dans le forum Langage
    Réponses: 1
    Dernier message: 19/04/2007, 16h45
  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