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

AJAX Discussion :

500 (Internal Server Error)


Sujet :

AJAX

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 33
    Points : 48
    Points
    48
    Par défaut 500 (Internal Server Error)
    Bonjour,

    J'ai un problème avec mon Ajax pour rafraîchir un formulaire via une liste déroulante. Cela fonctionne parfaitement en Local, par contre quand j'intègre le projet sur l'intranet de l'entreprise, j'obtiens l'erreur suivante :

    POSThttp://172.22.22.5/nouveautdb/Direction/Administration/AdministrationPolyvalence/process.php 500 (Internal Server Error)
    k.cors.a.crossDomain.send @ jquery-2.1.4.min.js:4
    n.extend.ajax @ jquery-2.1.4.min.js:4
    postData @ infoSalarie.js:18
    (anonymous function) @ infoSalarie.js:12
    n.event.dispatch @ jquery-2.1.4.min.js:3
    r.handle @ jquery-2.1.4.min.js:3
    ListPicker._handleMouseUp @ about:blank:538

    Je ne sais pas du tout quoi faire. J'ai lu de la documentation sur l'erreur sans trouver de solution. :/

    Quelqu'un a une idée ?

    Cordialement

  2. #2
    Membre expérimenté
    Avatar de Gnuum
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 215
    Points : 1 715
    Points
    1 715
    Billets dans le blog
    1
    Par défaut
    Ca peut être tellement de chose (une version de PHP différente de ton local, un problème d'installation/de configuration du serveur, ...)!
    Déjà, tu fais une requête AJAX cross domain, ce qui peut impliquer pas mal de problème, même si on a l'impression que c'est plutôt un problème serveur en l'occurrence (puisque c'est une erreur 500).
    Une solution simple pour en savoir plus, aller voir les logs d'apache ou d'nginx pour avoir le détail (la stack) de l'erreur.

    En tout cas, il faut que tu nous donnes plus d'informations: ta requête AJAX en local et sur l'intranet, si tu as un ou plusieurs serveurs web différents (requête AJAX vers un domaine différent), l'OS que tu utilise en local et qui tourne sur l'intranet (debian, windows, ...), le code de ton process.php qui est censé être appelé et, comme je le disais plus haut, le détail de l'erreur.

    Il faut que tu apprennes à faire ça par toi même car sinon tu vas tout le temps être bloqué par ce genre de problème.
    {gnu: ["um", "cki"]}

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 33
    Points : 48
    Points
    48
    Par défaut
    La version PHP de l'intranet et 5.3 tandis que celle de mon local est 5.5. C'est un serveur IIS pour être précis.
    J'utilise windows en local, pareil pour l'intranet.

    L'erreur en question :

    "Le site Web a rencontré une erreur lors de l'extraction de http://172.22.22.5/nouveautdb/Direct...ce/process.php. Cela peut être dû à une opération de maintenance ou à une configuration incorrecte."

    Le code du process en question (pas faire attention au nom des variables, je changerai ça lol)
    Code php : 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
    <?php
     
    include('modele/bdd.php');
     
    if(isset($_POST['nomSal']))
    {
     
    }
     
    else
    {
    	echo "<h1>Ressources Inacsessibles</h1>";
    	exit;
    }
     
     
    $nomSal = $_POST['nomSal'];
    $infoSal = $db->prepare("SELECT prenom, nom, agence, typeContrat, dateDebutContrat, dateFinContrat
    						FROM personnel 
    						WHERE id_Personnel = '".$nomSal."'");
    $infoSal->execute();
    $resultat = $infoSal->fetch();
     
    $array = array(array_values($resultat)[0], array_values($resultat)[1], array_values($resultat)[2], array_values($resultat)[3], array_values($resultat)[4], array_values($resultat)[5]);
    echo json_encode($array);
    ?>

    Pour ce qui est des logs, j'ai regardé les fichiers journaux IIS à l'emplacement "C:\inetpub\logs\LogFiles\W3SVC1\" ainsi que les fichiers journaux HTTPERR à l'emplacement %WinDir%\system32\LogFiles\HTTPERR\ d'après une aide online. Je ne sais pas quoi chercher exactement?

    De plus j'ai lu que le souci pouvait également venir des fichiers '.htaccess', néanmoins sous IIS, du moins je crois, c'est sous web.config trouvé à la racine du site, mais y a pas grand chose dedans.
    J'ai fait des recherches par ci par là, mais toujours pas de solution, va quand même falloir que je bosse un peu sur ce genre de chose...

    Merci pour ta réponse précédente

  4. #4
    Membre expérimenté
    Avatar de Gnuum
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 215
    Points : 1 715
    Points
    1 715
    Billets dans le blog
    1
    Par défaut
    C'est original d'utiliser un IIS pour faire fonctionner PHP.

    Je miserais sur le fait qu'il me semble que:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array_values($resultat)[0]
    n'est valide qu'à partir de PHP 5.4. Ce qui expliquerait ton problème entre ton local et ton intranet.
    Si je peux me permettre de refactoriser ton code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $resultat = $infoSal->fetch();
     
    $array = array(array_values($resultat)[0], array_values($resultat)[1], array_values($resultat)[2], array_values($resultat)[3], array_values($resultat)[4], array_values($resultat)[5]);
    en:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $resultat = array_values($infoSal->fetch());
     
    $array = array_slice($resultat, 0, 5);
    Outre le fait que ça devrait résoudre ton problème, rappeler array_values pour chaque valeur du tableau n'est ni très élégant ni très performant.

    Aparté performance/stabilité:
    Si tu voulais gagner en performance et stabilité (et en vitesse de développement car tout s'installe plus vite et plus facilement), je te conseillerais de travailler sous un bon vieux linux (ubuntu est bien pour commencer) et d'installer PHP en mode FAST-CGI (PHP FPM) avec un petit nginx à la place de ton IIS.
    {gnu: ["um", "cki"]}

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 33
    Points : 48
    Points
    48
    Par défaut
    Merci pour ton retour.

    Je vais mettre PHP à jour du coup, malheureusement pour moi leur intranet est codé avec l'extension mysql qui est donc devenu obsolète, va falloir que je me modifie tout ça du coup :-)

    Si jamais l'erreur n'est pas résolue je reviendrai sur ce sujet.
    Merci pour les explications sur array_values et pour la refactorisation, en ce qui concerne IIS je n'ai pas vraiment le choix, c'est ce qu'ils utilisent. :/

    Je te remercie.

  6. #6
    Membre expérimenté
    Avatar de Gnuum
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 215
    Points : 1 715
    Points
    1 715
    Billets dans le blog
    1
    Par défaut
    Oui dis moi, si ça ne fonctionne pas (et si ça fonctionne).

    Aparté sécurité:
    Tu devrais vraiment corriger le code suivant qui est vulnérable aux injections SQL:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $infoSal = $db->prepare("SELECT prenom, nom, agence, typeContrat, dateDebutContrat, dateFinContrat
    						FROM personnel 
    						WHERE id_Personnel = '".$nomSal."'");

    Pour en savoir plus, 2 liens:
    https://fr.wikipedia.org/wiki/Injection_SQL
    http://php.net/manual/fr/security.da...-injection.php
    {gnu: ["um", "cki"]}

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 33
    Points : 48
    Points
    48
    Par défaut
    Hm, je n'ai qu'une alternative pour cela mais je ne suis pas sûr :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $infoSal = $db->prepare("SELECT prenom, nom, agence, typeContrat, dateDebutContrat, dateFinContrat
    						FROM personnel 
    						WHERE id_Personnel = ':id_Personnel'");
    $infoSal->execute(array(':id_Personnel' => $nomSal));

  8. #8
    Membre expérimenté
    Avatar de Gnuum
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 215
    Points : 1 715
    Points
    1 715
    Billets dans le blog
    1
    Par défaut
    Oui, c'est bien mieux comme ça!
    {gnu: ["um", "cki"]}

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 33
    Points : 48
    Points
    48
    Par défaut
    Hello Gnuum, juste un petit retour pour te dire que cela fonctionne, merci, j'avais presque oublié!

  10. #10
    Membre expérimenté
    Avatar de Gnuum
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 215
    Points : 1 715
    Points
    1 715
    Billets dans le blog
    1
    Par défaut
    Super! Merci de m'avoir tenu au courant!
    {gnu: ["um", "cki"]}

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/07/2007, 23h29
  2. 500 Internal Server Error
    Par wallawalla dans le forum Free
    Réponses: 4
    Dernier message: 18/06/2007, 14h03
  3. 500 Internal Server Error [OVH]
    Par Woufeigh dans le forum Apache
    Réponses: 1
    Dernier message: 08/04/2007, 01h15
  4. Error 500 - Internal server error
    Par Amrac dans le forum Serveurs (Apache, IIS,...)
    Réponses: 1
    Dernier message: 04/04/2007, 14h20
  5. [SERVLET][STRUTS]Error 500--Internal Server Error
    Par Devil666 dans le forum Struts 1
    Réponses: 7
    Dernier message: 27/06/2005, 13h07

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