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 :

Notice: Undefined index:


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 16
    Par défaut Notice: Undefined index:
    Bonsoir a tous,

    Je me retrouve face a des problèmes que la je peux plus rien faire..
    J'ai un site E-Commerce que je fait tournée en local sous wampserver.

    Ce site marcher encore très bien hier sur le web, puis j'ai stop mon hébergement en le mettant en local, et maintenant il m'affiche ces erreurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Notice: Undefined index: err in C:\wamp\www\SITEserveur\init.php on line 44
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Notice: Undefined index: bdd in C:\wamp\www\SITEserveur\modele\classes\head.classe.php on line 24
    Les fichiers cible : init.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $GLOBALS['head'] = new head;
    if($_GET['err'])
    {
    	$GLOBALS['head']->gen_page("erreur");
    	$GLOBALS['head']->inclure_page("erreur");
    	exit;
    }
    Fichier : head.classe.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	public function set_classe($nom, $classe, $id="")
    	{
    		if(!$this->classes[$nom . $id])
    			$this->classes[$nom . $id] = $classe;
    		return $classe;
    	}
    Ce que je comprend pas c'est qu'il marchait très bien sur mon hébergement sur le web, et en local il m'affiche ces erreur..

    Je sais pas si j'ai des extension a activé ou pas.

    Si vous pourriez m’aider face a ce problème.

    Je vous remercie.

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Les niveaux d'erreurs ne sont pas identiques sur ton hébergement et en local. Compare la directive error_reporting des deux php.ini
    le local est configuré pour afficher toutes les erreurs (en l'occurence ici des variables non initialisées).

  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 : 40
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Pour le test, je te conseille d'utiliser isset et empty :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_GET['err']) && !empty($_GET['err']))
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2011
    Messages : 32
    Par défaut
    Citation Envoyé par Celira Voir le message
    Pour le test, je te conseille d'utiliser isset et empty :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_GET['err']) && !empty($_GET['err']))
    Je vais surement dire une bêtise mais ça sert à quelquechose de faire les deux?
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!empty($_GET['err']){
    Ce code n'est-il pas suffisant puisque la fonction empty test si la variable n'est pas nulle?

  5. #5
    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 : 40
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Non, isset vérifie si la variable existe et empty si elle est vide. Évidemment, si elle n'existe pas, elle est forcément vide, mais l'inverse n'est pas vrai.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $var = "";
    isset($var) // renvoie true
    !empty($var) // renvoie false
    En plus, utiliser un index inexistant dans isset ne renverra pas de notice (vu que la fonction est faite pour ça) En revanche, dans une autre fonction, tu risques d'avoir le fameux undefined index...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2011
    Messages : 32
    Par défaut
    Citation Envoyé par Celira Voir le message
    Non, isset vérifie si la variable existe et empty si elle est vide. Évidemment, si elle n'existe pas, elle est forcément vide, mais l'inverse n'est pas vrai.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $var = "";
    isset($var) // renvoie true
    !empty($var) // renvoie false
    Justement dans ce cas la fonction isset ne sert pas puisque la comparaison isset AND !empty renverra toujours la valeur de !empty :
    (isset = true) AND (!empty = false) => false
    (isset = true) AND (!empty = true) => true

    Citation Envoyé par Celira Voir le message
    En plus, utiliser un index inexistant dans isset ne renverra pas de notice (vu que la fonction est faite pour ça) En revanche, dans une autre fonction, tu risques d'avoir le fameux undefined index...
    Je ne comprends pas trop, quand j'utilise ce code, il ne me renvoie aucune notice :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    error_reporting(E_ALL);
    $array = array("azerty"=>1);
     
    echo isset($array["azerty"]); //return true
    echo (!empty($array["azerty"])); //return true
     
    echo isset($array["qwerty"]); //return false
    echo (!empty($array["qwerty"]);//return false

  7. #7
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Citation Envoyé par Celira Voir le message
    Pour le test, je te conseille d'utiliser isset et empty :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_GET['err']) && !empty($_GET['err']))
    empty se comporte comme isset en plus de vérifier que la variable est vide, il n'est pas nécéssaire de l'utiliser avec isset.

    Cette condition peut se résumer à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!empty($_GET['err']))
    et ce sera toujours E_STRICT compliant.

  8. #8
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 16
    Par défaut
    Merci pour vos réponses, j'ai ajouté ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(isset($_GET['err']) && !empty($_GET['err']))
    Il ne m’affiche plus cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Notice: Undefined index: err in C:\wamp\www\SITEserveur\init.php on line 44
    Mais l'autre reste toujours :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Notice: Undefined index: bdd in C:\wamp\www\SITEserveur\modele\classes\head.classe.php on line 24
    Call Stack
    #	Time	Memory	Function	Location
    1	0.0012	398992	{main}( )	..\index.php:0
    2	0.0022	439392	include( 'C:\wamp\www\SITEserveur\init.php' )	..\index.php:3
    3	0.0079	577320	head->set_classe( )	..\init.php:52

  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
    Billets dans le blog
    20
    Par défaut
    Undefined index: bdd
    On doit deviner la partie de code qui fait appel à cette variable ?
    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

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