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 :

Script php bloqué par serveur


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Gizmil
    Profil pro
    Inscrit en
    Août 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 163
    Par défaut Script php bloqué par serveur
    Hello,

    je m'y connais peu en php et en programmation web ! Habituellement, je me cantonne au html, css et ActionScript! Je fais juste un peu de php pour charger les pages de mon site !

    Mais là, j'ai besoin d'installer un livre d'or sur mon site web alors pour éviter d'avoir en plus à me plonger la tête de le MYSQL, j'ai téléchargé plusieurs scripts de livres d'or n'exigeant pas de base de donnée.
    Je les teste un à un et qu'est-ce que je constate ? Pour cahque version que j'ai testé, chaque fois que je veux exécuter un script php, le serveur bloque celui-ci ! Enfin, apparemment...

    En tous cas, à tous les coups, je reçois ce message :

    Internal Server Error

    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Please contact the server administrator, postmaster@www.monsite.com 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.
    Cependant, j'ai dans les pages de mon site des scripts php qui fonctionnent très bien.

    Je me demande si ça ne pourrait pas avoir un rapport avec la création du fichier texte qui doit récupérer le contenu des messages (puisque pas de recours au MYSQL)... Une question d'autorisation, qqch comme ça ! Je précise que le répertoire qui contient mes fichiers du livre d'or est en chmod 777.

    A votre avis, d'où peut venir ce problème ?

    Je ne pense pas que le problème vienne du script en lui-même étant donné que j'ai eu systématiquement le problème avec divers livres fournis par des auteurs différents mais je vous met quand même les scripts du dernier livre en date que j'ai testé ! On ne saist jamais, si ça peut aider à comprendre d'où vient le problème...

    • Fichier "livredor.html"

    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
    <html>
    <head>
    <title>Livre d'or</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
     
    <h1>Livre d'or</h1>
     
    <!-- On commence le formulaire, pour le resultat on invoquera la page "message.php" gâce à l'attribut action de la balise form -->
    <form action="message.php" method="post">
    	<div>
    		<fieldset><legend>Votre Nom</legend>
    		<input type="text" name="pseudo" />
    		</fieldset>
    		<fieldset><legend>Postez un message pour le livre d'or</legend>
    		<textarea cols="70" rows="4" name="message"></textarea>
    		</fieldset>
    		<input type="submit" />
    		<!-- On va créer un lien pour ceux qui veulent consulter le livre d'or sans poster dedans -->
    		<p>
    		Pour consultez simplement le livre d'or <a href="consultezlo.php">cliquez ici</a>
    		</p>
    	</div>
    </form>
    <!-- Notre formulaire est fini on ferme la balise form -->
     
     
    </body>
    </html>

    • Fichier "message.php"

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <?php /* Date de création: 10/10/2010 par Vocos */ ?>
    <html>
    <body>
    <?php
    // Pour éviter qu'une unique personne poste 50 fois dans le livre d'or, on va insérer un cookie
    setcookie("ip",$_SERVER['REMOTE_ADDR'],time()+.3600*60*90);
     
    // Si le cookie est égale à l'ip du client alors on le stoppe
    if(isset($_COOKIE['ip']) && $_COOKIE['ip']==$_SERVER['REMOTE_ADDR'])
    {
            echo "<h1>Vous ne pouvez émettre qu'un seul avis et vous l'avez déjà donné !</h1>";
     
            // On stoppe le script
            exit;
    }
    // Mettons le (futur) fichier dans une variable
    $commentaires="messages.txt";
     
    // assignons nos 2 variables du formulaire et on en profite pour les protégers des balises HTML
    $pseudo=htmlentities($_POST['pseudo']);
    $message=htmlentities($_POST['message']);
     
    // Pensons au retour à la ligne et au stripslashes pour la variable $message
    $message=stripslashes(nl2br($message));
     
    // On met en place quelques conditions pour les cellules (nom et message)
    // On vérifie avant tout si le fichier existe si ce n'est pas le cas on le crée
    if(!is_file($commentaires))
          {
            $verif=@fopen($commentaires,"w+");
          }
     
    // On vérifie que le login ou le message ne soient pas vide
    elseif (trim($message)=="" || trim($pseudo)=="")
        {
            echo "Vous devez remplir tous les champs ! <a href=\"livredor.htm\">Retour sur le livre d'or</a>";
     
            // On sort du script !
            exit;
          }
     
     
    // Après ces quelques vérification d'usage on passe à l'exécution de ce formulaire
     
     
            // Si ok on ouvre en écirture-enregistrement du fichier message.txt
            $verif=@fopen($commentaires,"r+");
     
            // On analyse les anciennes données et on les stockent
            $stock=@fread($verif,filesize($commentaires));
     
            // On met la date dans une varialbe
            $date=date ("d/m/Y à H:i");
     
            // On paramère le tout dans la variable $opinion
            $opinion="<b>".$pseudo."</b> a écrit le : ".$date."<br />\n".$message."<br />\n<hr />";
     
            // On remet le curseur du fichier en début de ligne
            rewind($verif);
     
            // On insère le nouveau commentaire
            fputs($verif,$opinion." \n".$stock);
     
            // On clore le fichier
            fclose($verif);
     
            // On affiche le tout
            readfile($commentaires);
     
     
    ?>
    </body>
    </html>

    • Fichier "consultezlo.php"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $consulter="messages.txt";
    readfile($consulter);
    ?>

  2. #2
    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
    A votre avis, d'où peut venir ce problème ?
    Ce genre d'erreur est dû à Apache et non à PHP. Vérifie la configuration d'apache dans /etc/httpd/conf/httpd.conf ou /etc/apache2/conf/ et vérifie les .htaccess dans le répertoire ou tu mets ces scripts.

    Regarde l'error log d'apache, et donne nous ce qui est produit lors de l'affichage d'une page.

  3. #3
    Membre confirmé Avatar de Gizmil
    Profil pro
    Inscrit en
    Août 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 163
    Par défaut
    Salut, Benjamin ! Merci pour ta réponse !

    Cela dit, c'est un peu chinois pour moi !

    A quoi correspondent ces chemins ?

    Citation Envoyé par Benjamin Delespierre Voir le message
    /etc/httpd/conf/httpd.conf ou /etc/apache2/conf/

  4. #4
    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
    Tu utilise un WAMP ou un LAMP ? En d'autres termes tu es sous Linux ou Windows ?

  5. #5
    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
    Par défaut
    Ce genre d'erreur est dû à Apache et non à PHP.
    Le serveur peut renvoyer une erreur 500 lorsque l'affichage des erreurs PHP est desactivé.

    ajoute au début de ton/tes fichiers php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error_reporting(E_ALL);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre confirmé Avatar de Gizmil
    Profil pro
    Inscrit en
    Août 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 163
    Par défaut
    Je suis sous Windows !

    Merci pour l'astuce, Sabotage !

    J'ai fini par résoudre mon problème en changeant le niveau de sécurité de mon répertoire conteneur par 705 plutôt que 777 !

    Je ne sais malheureusement pas vraiment tirer de conclusions de cette modification ! Pourquoi 705 plutôt que 777 ?

    A noter que j'avais également un problème de script, la vérification de l'IP devant par convention se faire avant les premières balises HTML et non après, ce qui n'était pas le cas dans le script que j'ai récupéré !

Discussions similaires

  1. Script PHP Upload fichier serveur FTP
    Par younes371 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 20/10/2008, 19h58
  2. [Forum] Script php sur un serveur irc
    Par Patrice331 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 03/06/2008, 00h24
  3. Réponses: 0
    Dernier message: 27/11/2007, 14h37
  4. Réponses: 6
    Dernier message: 15/11/2007, 13h52
  5. Script php exécuté par crontab
    Par Shenron114 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 05/11/2007, 16h54

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