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 :

Internal Server Error a la creation d'un dossier et 2 fichiers


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 64
    Points : 38
    Points
    38
    Par défaut Internal Server Error a la creation d'un dossier et 2 fichiers
    Bonjour,
    pour créer une petite application php je rencontre un problème côté serveur (comme l'indique le titre) :
    Il sagit de créer un dossier puis un index.php, puis un formulaire.php dans le dossier.
    -La création du dossier ne pose pas de prob
    -La création du 1er fichier passe
    -A la demande php de création du 2ème fichier j'ai cette erreur :

    Internal Server Error
    The server encountered an internal error or misconfiguration and was unable to complete your request.
    Please contact the server administrator, postmaster@xxx.fr and inform them of the time the error occurred, and anything you might have done that may have caused the error.
    More information about this error may be available in the server error log.

    (Le script "commande.php" qui doit être inclus est ok, je l'emploi depuis 2 ans dans différentes petites applications, je suis sûr que ce n'est pas ce script qui peut causer le bug.)
    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
     
    <?php
    // création du dossier conteneur
    if(isset($_POST['dossier'])){
    	$dossier=htmlspecialchars($_POST['dossier'],ENT_QUOTES);
    	$chemincomplet="p/".$dossier;
    if (!file_exists ( $dir )) {
    	mkdir($chemincomplet, 0777); 
    	echo  "Le dossier existe<br />"; 
     }
     else { 
         echo "Erreure";
    }
    // On va créer le fichier d'index dans $dossier et y inscrire quelques mots
    }
    if(isset($_POST['dossier']))
    {
    $fichier = "index.html";
    $file = fopen($chemincomplet."/".$fichier,"a+"); fwrite($file,"Hello World. Testing !"); fclose($file);
    }
     else { 
         echo "Erreur_2";
    }
      if (!file_exists ( $file )) {
    	echo "Recommencez";
    	$fichier2 = "formZ1.php";
    $file2 = fopen($chemincomplet."/".$fichier2,"a+"); fwrite($file2,"<?php include('commandes.php' ?>"); fclose($file2);
    	}
     else { 
         echo "le fichier n\'a pas pu être créé";
    	 }
    //On inclus le code php dans le fichier2 du dossier qui vient d'être créé
    ?>
    J'ajoute que mon serveur est "NUXIT" et que d'habitude je n'ai pas de problème avec php.
    J'ai le même bug chez eux avec la fonction php @copy

    Coté NUXIT voila ce qui est écrit sur leurs page à ce sujet :
    --Plusieurs paramètres sont surveillés par ces moniteurs et peuvent occasionner l'arrêt de votre script PHP :
    Un temps d'exécution trop long : si votre script PHP dure plus de 30 secondes, ===> (Non, ça prend 1 seconde)
    --Trop de mémoire consommée : dès lors que votre script PHP consomme plus de 96 Mo de RAM, il risque d'être stoppé par le système (Je ne pense pas que ma petite commande soit si lourde)
    --Trop de CPU consommé (Non)
    --Trop de processus PHP simultanés ( Non plus)
    --Un fichier .htaccess malformé (il n'y en a pas dans ce dossier ni a la racine)

    Si vous savez un grand merci par avance...

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    "Internal Server Error" ou "Erreur 500" est aussi ce qu'on obtient quand PHP est configuré pour ne pas afficher les erreurs (et qu'il y a une erreur).
    Consulte tes logs PHP.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 64
    Points : 38
    Points
    38
    Par défaut
    Bah, j'ai fait un fichier logs.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
        phpinfo();
    	?>
    mais là il y a toute la config php du serveur, je vais pas savoir comment me repérer et quoi chercher.

    NUXIT annonce // PHP Version 5.2.17 //

    Quand aux erreurs php il les annonce toujours quand j'en fait d'habitude T_strings, ";" ")" par exemple... Il y aurait un type d'erreur qui ne serait pas prévue d' afficher ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    phpinfo() c'est effectivement la configuration du serveur, ça ne contient pas les erreurs.
    Tu y verras par contre justement comment est configuré le serveur concernant les erreurs.
    Mais on peut supposer que tu as accès à un fichier de log des erreurs PHP.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 64
    Points : 38
    Points
    38
    Par défaut
    Merci et bonjour @Sabotage.
    Je n'ai pas pratiqué ce teste à ce jour, peux tu me conseiller stp ?
    Par exemple ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        <?php
        // Afficher les erreurs à l'écran
        ini_set('display_errors', 1);
        // Enregistrer les erreurs dans un fichier de log
        ini_set('log_errors', 1);
        // Nom du fichier qui enregistre les logs (attention aux droits à l'écriture)
        ini_set('error_log', dirname(__file__) . '/log_error_php.txt');
        // Afficher les erreurs et les avertissements
        error_reporting(e_all);
        ?>

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 64
    Points : 38
    Points
    38
    Par défaut
    B'in j'ai juste remplacé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (!file_exists ( $file2 )) { ...
    Par une seconde fois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(isset($_POST['dossier'])) { ...
    et ça fonctionne...
    d'un autre côté ça ne sert à rien de faire 2 fois la même vérification (if(isset($_POST['dossier'])) { ...)...
    Apparemment il faut que je m'améliore dans mes vérifications... :-(
    Toutefois, même si ça marche depuis ça, je reste prudent car hier ça a fonctionné une heure et l'erreur 500 est revenue sans raison, puisque je n'avais pas touché au code... Je ettrais "résolu" après quelques testes...

  7. #7
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 275
    Points
    3 275
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
        // Afficher les erreurs à l'écran
        ini_set('display_errors', 1);
        // Enregistrer les erreurs dans un fichier de log
        ini_set('log_errors', 1);
        // Nom du fichier qui enregistre les logs (attention aux droits à l'écriture)
        ini_set('error_log', dirname(__file__) . '/log_error_php.txt');
        // Afficher les erreurs et les avertissements
        error_reporting(e_all);
        ?>
    Ce code est une bonne idée pour logguer et afficher l'ensemble des erreurs (attention, à n'utiliser que sur un serveur de développement bien entendu). De plus les constantes sont sensibles à la casse comme les variables, autrement dit c'est "E_ALL" et non "e_all".
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 64
    Points : 38
    Points
    38
    Par défaut
    Merci @Spartacusply de nous avoir rejoint sur ce poste, je vais tester ton script qui peut être effectivement très utile !
    D'un autre côté, depuis que j'ai ouvert un tiket chez l'hébergeur, les choses vont mieux... Aléas des serveurs dédiés ?...
    Deux choses, je ne voit pas ce qui est incorrect a la vérif :
    1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!file_exists ( $file2 )) { ...
    2) Et pourquoi mes scripts tournaient bien pendant quelques heures puis bugaient sans raison avec l'erreur 500...
    Mystery...

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

Discussions similaires

  1. Internal Server Error
    Par johanlft dans le forum Web
    Réponses: 3
    Dernier message: 09/10/2006, 22h59
  2. Internal Server Error : Script CGI
    Par DarkBlue3000 dans le forum Apache
    Réponses: 7
    Dernier message: 11/08/2006, 14h27
  3. Internal Server Error Perl
    Par mercenaire_bis dans le forum Web
    Réponses: 2
    Dernier message: 12/07/2006, 16h16
  4. [SERVLET][STRUTS]Error 500--Internal Server Error
    Par Devil666 dans le forum Struts 1
    Réponses: 7
    Dernier message: 27/06/2005, 13h07
  5. [RegEx] [regex][serveur] Internal server error
    Par Maxoo dans le forum Langage
    Réponses: 8
    Dernier message: 29/12/2004, 15h40

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