Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/02/2011, 18h06   #1
Nouveau Membre du Club
 
Avatar de Gizmil
 
Inscription : août 2007
Messages : 143
Détails du profil
Informations personnelles :
Âge : 34
Localisation : Belgique

Informations forums :
Inscription : août 2007
Messages : 143
Points : 29
Points : 29
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 :
Citation:

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 :
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 :
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 :
1
2
3
4
<?php
$consulter="messages.txt";
readfile($consulter);
?>
Gizmil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 18h13   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

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

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 014
Points : 5 014
Citation:
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.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 20h09   #3
Nouveau Membre du Club
 
Avatar de Gizmil
 
Inscription : août 2007
Messages : 143
Détails du profil
Informations personnelles :
Âge : 34
Localisation : Belgique

Informations forums :
Inscription : août 2007
Messages : 143
Points : 29
Points : 29
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/
Gizmil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 23h33   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

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

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 014
Points : 5 014
Tu utilise un WAMP ou un LAMP ? En d'autres termes tu es sous Linux ou Windows ?
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 23h42   #5
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Citation:
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 :
error_reporting(E_ALL);
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2011, 13h07   #6
Nouveau Membre du Club
 
Avatar de Gizmil
 
Inscription : août 2007
Messages : 143
Détails du profil
Informations personnelles :
Âge : 34
Localisation : Belgique

Informations forums :
Inscription : août 2007
Messages : 143
Points : 29
Points : 29
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é !
Gizmil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h24.


 
 
 
 
Partenaires

Hébergement Web