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

EDI, CMS, Outils, Scripts et API PHP Discussion :

[osCommerce] Message d'erreur Notice: Undefined index


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut [osCommerce] Message d'erreur Notice: Undefined index
    Bonjour à tous,

    J'ai installé sur un serveur OVH OSCommerce.
    Je ne l'ai pas installé sous le répertoire catalog par défaut, j'ai pris les fichiers et les ai copiés sous la racine.
    L'installation s'est bien passé sauf que j'ai un message d'erreur:

    Notice: Undefined index: SystemRoot in /homez.99/monsite/www/includes/languages/french.php on line 20

    Voici le contenu de cette ligne 20:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (eregi('windows', $_SERVER['SystemRoot'])) @setlocale(LC_TIME, 'fr'); // Page de code pour serveur sous Windows (installation locale)
    Ca vous parle?

  2. #2
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 808
    Points : 912
    Points
    912
    Par défaut
    Bonjour,
    Je ne connaissais pas la possibilité de SystemRoot dans les index de la variable globale $_SERVER.

    Peut-être que ça provient de là.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    Bonjour KabKab,

    Personnellement, je ne connaissais ni globale $_SERVER ni systemRoot...
    T'imagine mon désarroi...

  4. #4
    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 : 39
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Le problème n'est pas tant que ce que nous connaissons que ce qui existe réellement : le seul quelque-chose-root que j'ai trouvé dans la doc de $_SERVER c'est DOCUMENT_ROOT...
    variable superglobale $_SERVER

    Je crois qu'il existe une variable d'environnement windows SystemRoot, c'est peut-être ça que ton script essaye de récupérer.
    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]

  5. #5
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 808
    Points : 912
    Points
    912
    Par défaut
    Bonjour,
    Une comparaison entre un phpinfo() lancé sur un serveur unix et sur un autre windows fait apparaître beaucoup de différences dont SystemRoot qui existe sur windows et pas unix.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    Concrétement, ca veut dire quoi pour moi?

  7. #7
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 808
    Points : 912
    Points
    912
    Par défaut
    Bonjour,
    Normalement, cette ligne ne doit être "exécutée" que si le serveur d'hébergement est sous windows et pas sous unix.
    Est-ce que cette ligne de test n'est pas imbriquée dans un autre test (if) qui vérifie la plate-forme.
    D'après ce que j'ai glané, la variable superglobale $_SERVER avec comme index SERVER_SOFTWARE te permet de repérer le type de système entre parenthèses.
    Je crois me rappeller qu'il y a une procédure pour savoir sur quel type de système le script est hébergé mais je ne l'ai pas pour l'instant. Je la mettrais à la suite dès que je la trouve.

  8. #8
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 808
    Points : 912
    Points
    912
    Par défaut
    Bonjour,
    Il existe une constante php qui permet de vérifier le système d'hébergement.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    echo "Système d'exploitation : ".PHP_OS."<BR>";
    echo "Version Php :".PHP_VERSION;
    ?>

    Donc, avec un peu de gymnastique, tu pourras repérer sur quel système tu es hébergé et passer par cette "fameuse" ligne ou pas.

    Tu pourras mieux cerner les constantes prédéfinies sur ce lien.
    php.net

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    Bonjour Kabkab,

    J'ai donc intégré le code.
    Cela confirme mon hébergement sur serveur Linux.
    Dois-je comprendre que la ligne de code incriminée concerne les hébergements Windows et que dans ce cas, je peux la mettre en commentaire?

    Si c'est le cas, ne trouves tu pas étonnant qu'oscommerce n'ait pas géré ce problème?

  10. #10
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 808
    Points : 912
    Points
    912
    Par défaut
    Bonjour,
    Je ne saurais te dire si oscommerce ont géré ou pas ce problème.
    Je pense qu'il doit y avoir des règles à respecter en ce qui concerne l'hébergement. J'ai vu sur leur site (français) qu'il y avait un fichier configure.php qu'il fallait renseigner. Je ne sais pas s'il y a une directive qui permet de renseigner le script sur le type d'hébergement.

    Autrement juste pour info, lorsque je "créé" un site, je prévoit toujours dans mes scripts une sorte de variable globale pour identifier si mes scripts sont en local ou en distant. ceci, parce qu'il y certaines variables globales qui réagissent de façon différente, qu'il s'agisse d'un environnement Windows (local) ou Unix (Distant).

    Je te conseillerais de bien lire la doc de OsCommerce ou de te tourner directement sur leurs forums.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par kabkab Voir le message
    Bonjour,
    Je ne saurais te dire si oscommerce ont géré ou pas ce problème.
    Je pense qu'il doit y avoir des règles à respecter en ce qui concerne l'hébergement. J'ai vu sur leur site (français) qu'il y avait un fichier configure.php qu'il fallait renseigner. Je ne sais pas s'il y a une directive qui permet de renseigner le script sur le type d'hébergement.
    Je suis en effet sur le forum OSCommerce.
    Je viens ici en parallèle, d'une part parce que je n'ai pas encore de réponse à mon problème mais aussi parce que j'ai du mal à déterminer si ce problème relève de connaissance PHP ou Oscommerce.
    Hors même s'ils passent des coups de main sur le forum OSC, ce n'est pas leur vocation de combler les lacunes de personnes comme moi qui maitrisent pas très bien php et tutti quanti...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Autrement juste pour info, lorsque je "créé" un site, je prévoit toujours dans mes scripts une sorte de variable globale pour identifier si mes scripts sont en local ou en distant. ceci, parce qu'il y certaines variables globales qui réagissent de façon différente, qu'il s'agisse d'un environnement Windows (local) ou Unix (Distant).
    Je comprends le principe.
    C'est compliqué à faire?

  12. #12
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 808
    Points : 912
    Points
    912
    Par défaut
    Bonjour,
    Si tu connais la base du Php c'est facile.
    Tu crée une variable globale du style

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $monsitelocal = true;

    et dans tes scripts tu vérifies le contenu de ta variable. Par exemple:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function bidon()
    {global $monsitelocal;
    if ($monsitelocal)
    {      $lechemin = $_SERVER['DOCUMENT_ROOT'].'/'; }
    else
    {     $lechemin ='/home/user/'; }
     
    #.... reste de la fonction
    }

    J'applique cette astuce partout dans mes script où je dois avoir accès à des fichiers. $_SERVER['DOCUMENT_ROOT'] renseigne normalement sur le chemin où se trouve mon site. Elle devrait fonctionner normalement partout mais dans le cas de mon hébergeur, le php est bridé et cette variable me donne une chaîne vide. Donc, je n'ai qu'à initialiser la variable monsitelocal à False et à "balancer" mes scripts sur l'hébergeur, le reste tu dois le deviner... les fonctions trouvant que la variable monsitelocal est à false, elles prenent comme lechemin celui que je leur ai indiqué au lieu de prendre la valeur de $_SERVER['DOCUMENT_ROOT'].

    Je pense avoir été clair, sinon n'hésites pas à poser plus de questions.

Discussions similaires

  1. erreur : Notice: Undefined index: ::1
    Par pmthelord dans le forum Langage
    Réponses: 2
    Dernier message: 30/10/2016, 21h10
  2. erreur Notice: Undefined index
    Par timboy11 dans le forum Langage
    Réponses: 4
    Dernier message: 22/01/2010, 11h37
  3. Message d'erreur Notice: Undefined index:
    Par helene38250 dans le forum Langage
    Réponses: 13
    Dernier message: 27/10/2008, 13h04
  4. [Tableaux] Erreur => 'Notice :Undefined index'
    Par leduc26 dans le forum Langage
    Réponses: 1
    Dernier message: 06/06/2007, 10h13
  5. Pb erreur Notice: Undefined index: pseudo
    Par PAINCO dans le forum Langage
    Réponses: 15
    Dernier message: 19/02/2007, 18h20

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