[RESOLU] message d'erreur bisare après activation des erreurs php

Eléphant du PHP | 63 Messages

14 août 2016, 00:31

bonjour,
dans /etc/php5/apach2/php.ini
j'ai modifié la ligne 466 display_errors =off en on et de faire un restart d'apache2 pour activer les messages d'erreurs (ce qui m'a bien servi pour qqes trucs) mais maintenant même si mon site est fonctionnel il me claque quand même des messages d'erreurs.
les erreurs indiqué sont sur cette partie de code

Code : Tout sélectionner

if($_GET["action"]=="suppr") { $sql="DELETE FROM registre_client WHERE client_id=$_GET[client_id]"; mysql_query($sql) or die(mysql_error()); } elseif($_GET["action"]=="modif") { $sql="UPDATE registre_client SET client_nom='$_POST[client_nom]', client_prenom='$_POST[client_prenom]', client_cat='$_POST[client_cat]', client_siret='$_POST[client_siret]', client_email='$_POST[client_email]', client_telephone_pro='$_POST[client_telephone_pro]', client_telephone='$_POST[client_telephone]', client_adresse='$_POST[client_adresse]', client_cp='$_POST[client_cp]', client_ville='$_POST[client_ville]', client_localisation='$_POST[client_localisation]', client_siteweb='$_POST[client_siteweb]', client_cat_probleme='$_POST[client_cat_probleme]' WHERE client_id='$_GET[client_id]'"; mysql_query($sql) or die(mysql_error()); } elseif($_GET["action"]=="insert") { $sql="INSERT INTO registre_client SET id='', client_id='$_POST[client_id]', client_nom='$_POST[client_nom]', client_prenom='$_POST[client_prenom]', client_cat='$_POST[client_cat]', client_siret='$_POST[client_siret]', client_email='$_POST[client_email]', client_telephone_pro='$_POST[client_telephone_pro]', client_telephone='$_POST[client_telephone]', client_adresse='$_POST[client_adresse]', client_cp='$_POST[client_cp]', client_ville='$_POST[client_ville]', client_localisation='$_POST[client_localisation]', client_siteweb='$_POST[client_siteweb]', client_cat_probleme='$_POST[client_cat_probleme]', client_inscrit='$_POST[client_inscrit]'"; mysql_query($sql) or die(mysql_error()); } elseif($_GET["action"]=="insert-c-rendu") { $sql = "INSERT INTO c_rendu SET id='', client_id='$_POST[client_id]', crendu='$_POST[crendu]', date='$_POST[date]'"; mysql_query($sql) or die(mysql_error()); } elseif($_GET["action"]=="modif-c-rendu") { $sql="UPDATE c_rendu SET crendu='$_POST[crendu]' WHERE client_id=$_GET[client_id]"; mysql_query($sql) or die( mysql_error());
un des messages d'erreur est:
Notice: Undefined index: action in /home/juju/www/intranet/liste.php on line 10
pouvez vous me dire pourquoi?
pourtant mon site fonctionne tres bien...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

14 août 2016, 14:22

Bonjour,

Cela veut dire qu'à la ligne 10 de ton code, tu fais appel à un tableau en indiquant la clé "action" mais que cette clé n'existe pas dans ce tableau.
La solution pour éviter ce message d'erreur est de tester d'abord son existence :
if(isset($_GET["action"]) && $_GET["action"]=="truc") { ...
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 63 Messages

15 août 2016, 13:52

merci
en effet ça ne me met plus de message d'erreur.
en revanche, pourquoi tester si la clé est existante si elle l'ai? j'ai pas bien compris.

Eléphant du PHP | 176 Messages

15 août 2016, 14:05

Bonjour,

Ce message d'erreur :

Code : Tout sélectionner

Notice: Undefined index: action in /home/juju/www/intranet/liste.php on line 10
Veut dire que justement à un moment précis ta clé n'existe pas.
Cordialement
Naroth

Eléphant du PHP | 63 Messages

17 août 2016, 21:00

ok merci à tous