Se connecter / S'enregistrer
Votre question

[EasyPHP+mysql] - Les pages php ne s'affichent pas

Tags :
  • Free
  • Programmation
Dernière réponse : dans Programmation
5 Janvier 2010 17:12:33

Bonjour, actuellement étudiant en iut informatique et n'ayant pas de connexion internet chez moi, je me suis installer easyPhp sur mon ordinateur et j'ai reproduis exactement la même base de donnée que sur free (j'héberge mon site chez free).J'ai mis exactement les mêmes tables dans une base qui porte le même nom et assigné a un utilisateur qui à les mêmes identifiants que sur free.

Vus que mes pages PHP se connectent en localhost, le site devrais fonctionné pareil, pourtant, mon site qui fonctionne parfaitement sur free, ne marche pas chez moi sur easyPHP.

certaines de mes pages sont en HTML, la je n'est aucun souci sa marche parfaitement, mais dés que j'essaye d'accéder à une page en PHP qui se connecte à la base mysql, firefox me dis :
Citation :
Connexion réinitialisée


La connexion avec le serveur a été réinitialisée pendant le chargement de la page.



* Le site est peut-être temporairement indisponible ou surchargé. Réessayez plus
tard ;

* Si vous n'arrivez à naviguer sur aucun site, vérifiez la connexion
au réseau de votre ordinateur ;

* Si votre ordinateur ou votre réseau est protégé par un pare-feu ou un proxy,
assurez-vous que Firefox a l'autorisation d'accéder au Web.


Pourquoi?
Que dois-je faire?

Merci d'avance pour vos réponses
@++ fab

Autres pages sur : easyphp mysql pages php affichent

6 Janvier 2010 16:06:01

En l'occurence là, je doute beaucoup qu'il tente même une connexion à la base de donnée en local. Il semble que ton problème vienne d'Apache qui coupe durant l'exécution.

Normalement, il y a un fichier de log Apache, sous Windows et EasyPHP je ne sais pas où ils l'ont mis mais il existe. Dans ce fichier tu devrais avoir le message d'erreur à la fin.

Une fois que tu l'as trouvé, colle le ici. Sans message d'erreur il y a des centaines et des centaines de possibilité.
m
0
l
6 Janvier 2010 16:13:41

Voila les quelques dernières lignes du log de apache et j'ai effectivement l'impression qu'il plante, pourtant j'ai mis les mêmes pages dans mon serveur free, et la sa marche sans problème, donc le problème ne viens pas de mes pages ...
  1. [Wed Jan 06 16:07:58 2010] [error] [client 127.0.0.1] File does not exist: D:/sites/img, referer: http://localhost/Techno%20Land/accueil.html
  2. [Wed Jan 06 16:07:58 2010] [error] [client 127.0.0.1] File does not exist: D:/sites/favicon.ico
  3. [Wed Jan 06 16:08:00 2010] [error] [client 127.0.0.1] File does not exist: D:/sites/Techno Land/materiel.html, referer: http://localhost/Techno%20Land/index_page.html
  4. [Wed Jan 06 16:08:00 2010] [error] [client 127.0.0.1] File does not exist: D:/sites/favicon.ico
  5. [Wed Jan 06 16:09:22 2010] [error] [client 127.0.0.1] File does not exist: D:/sites/img, referer: http://localhost/Techno%20Land/accueil.html
  6. [Wed Jan 06 16:09:22 2010] [error] [client 127.0.0.1] File does not exist: D:/sites/favicon.ico
  7. [Wed Jan 06 16:09:24 2010] [error] [client 127.0.0.1] File does not exist: D:/sites/img, referer: http://localhost/Techno%20Land/accueil.html
  8. [Wed Jan 06 16:09:24 2010] [error] [client 127.0.0.1] File does not exist: D:/sites/favicon.ico
  9. [Wed Jan 06 16:09:25 2010] [error] [client 127.0.0.1] File does not exist: D:/sites/img, referer: http://localhost/Techno%20Land/accueil.html
  10. [Wed Jan 06 16:09:25 2010] [error] [client 127.0.0.1] File does not exist: D:/sites/favicon.ico
  11. [Wed Jan 06 16:10:09 2010] [error] [client 127.0.0.1] File does not exist: D:/sites/img, referer: http://localhost/Techno%20Land/accueil.html
  12. [Wed Jan 06 16:10:10 2010] [error] [client 127.0.0.1] File does not exist: D:/sites/favicon.ico
  13. [Wed Jan 06 16:10:17 2010] [error] [client 127.0.0.1] PHP Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in D:\\sites\\Techno Land\\index_page.php on line 23
  14. [Wed Jan 06 16:10:17 2010] [error] [client 127.0.0.1] PHP Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in D:\\sites\\Techno Land\\index_page.php on line 25
  15. [Wed Jan 06 16:10:18 2010] [notice] Parent: child process exited with status 3221225477 -- Restarting.
  16. [Wed Jan 06 16:10:18 2010] [notice] Apache/2.2.13 (Win32) PHP/5.3.0 configured -- resuming normal operations
  17. [Wed Jan 06 16:10:18 2010] [notice] Server built: Aug 6 2009 15:50:50
  18. [Wed Jan 06 16:10:18 2010] [notice] Parent: Created child process 832
  19. [Wed Jan 06 16:10:18 2010] [notice] Child 832: Child process is running
  20. [Wed Jan 06 16:10:18 2010] [notice] Child 832: Acquired the start mutex.
  21. [Wed Jan 06 16:10:18 2010] [notice] Child 832: Starting 64 worker threads.
  22. [Wed Jan 06 16:10:18 2010] [notice] Child 832: Starting thread to listen on port 80.

m
0
l
Contenus similaires
6 Janvier 2010 16:46:53

Ton phpmyadmin installé en local fonctionne ?
Ta page plante lorsque tu lances l'exécution de index_page.php ? tu noteras d'ailleurs l'erreurs PHP. Une erreur supoer basique montrant le plus souvent qu'une requête sql n'a pas été correctement exécutée. Il faudrait vérifier au niveau des droits utilisateurs etc au niveau du MySQL. Enfin le problème n'est peut être pas là, car en général, et cela ne devrait pas être le cas, Apache ne plante pas.

Dans tous les cas j'aurais corrigé le message en ligne 13 digne d'une mauvaise pratique de codage.

Tu fais en gros :

  1. $result = mysql_query("SELECT truc ...");
  2. $data = mysql_fetch_array($result);


En gros tu programmes en partant du principe que tout est beau et rose sans vérification. mysql_query() en cas de mauvaise exécution renvoie false. En paramètre de fetch_array() tu ne dois pas avoir de booléen. Donc il faur rajouter un test.

  1. $sql = "SELECT truc ..."
  2. $result = mysql_query($sql);
  3. if($result === false) {
  4. trigger_error("La requête SQL $sql ne s'est pas exécutée correctement, E_USER_ERROR);
  5. /* entraine la fin d'éxecution non visible au besoin.
  6. * mieux que die() utilisé à outrance
  7. * Affichage dans les log, donc sur un site public, tu remarques si il y a des crash
  8. * pour qqpersonne mais toi jamais. Pas avec die
  9. */
  10. }
  11. $data = mysql_fetch_array($result);


A noter qu'il y a une différence majeur entre ton hébergement et celui de chez free. Déjà au niveau configuration sans doute et puis tu utilises PHP 5.3. Bref, avec de tel différence, il est possible que du code marche chez free mais pas chez toi.

m
0
l
6 Janvier 2010 17:19:34

Effectivement, j'ai bien l'impression que c'est mon code qui coule apache, mais pourquoi mon code fonctionne t'il sans erreur sur les serveurs free?
m
0
l
6 Janvier 2010 17:29:46

Il peut y avoir des tonnes de raison. La configuration en est une. Par contre je modifierais ma ligne de message d'erreur pour :

  1. trigger_error("La requête SQL $sql ne s'est pas exécutée correctement ".mysql_error(), E_USER_ERROR);


Histoire de voir un peu mieux le problème au niveau de la base de donnée. Bien évidement tu peux coller le message d'erreur ici si tu ne trouves pas d'explication par tes propres moyens. ;) 
m
0
l
6 Janvier 2010 19:01:25

Salut,
Aurais-tu des programmes du style Skype? Ce genre de site utilisent les même ports que MySQL. Si un autre programme utilise le même port, tu peux reconfigurer ton php.

m
0
l
6 Janvier 2010 19:36:45

non je n'est rien qui utilise le port 80, la preuve, mes pages HTML passent sans problème !!

et en fait c'est littéralement insupportable, même des scripts copiés collés font plantés apache, vous auriez pas une solution pour empêcher qui plantes pour ce genre de connerie?
m
0
l
6 Janvier 2010 19:46:36

Il n'y a qu'une seule page PHP qui marche que je viens de faire et que j'ai soigné le mieux possible, elle s'exécute mais me retourne une erreur lorsque le script est censé insérer les valeurs dans la base de donnée...

Voila l'erreur retournée grâce à la ligne de SiM07 :
  1. Fatal error: La requête SQL INSERT INTO utilisateurs VALUES('','LEGE','Fabien','fabienlege','202cb962ac59075b964b07152d234b70') ne s'est pas exécutée correctement Column count doesn't match value count at row 1 in C:\www\valid.php on line 26


et si sa peut aider, voici le code de ma page php :
  1. <?php
  2. // $sql => Connexion mysql
  3. // Procédure de connexion à la base MySql :
  4. $sql=mysql_connect('localhost','lightsoft','xmrq71xk')
  5. or die("error sql");
  6. mysql_select_db('lightsoft');
  7. // fin procédure connexion //
  8. // instructions et requêtes sur la base de donnée
  9. if (isset($_POST['nom']) AND isset($_POST['prenom']) AND isset($_POST['user']) AND isset($_POST['pass']) AND isset($_POST['pass2'])){
  10. $nom = mysql_real_escape_string(htmlspecialchars($_POST['nom']));
  11. $prenom = mysql_real_escape_string(htmlspecialchars($_POST['prenom']));
  12. $user = mysql_real_escape_string(htmlspecialchars($_POST['user']));
  13. $pass = mysql_real_escape_string(htmlspecialchars($_POST['pass']));
  14. $pass2 = mysql_real_escape_string(htmlspecialchars($_POST['pass2']));
  15.  
  16. if ($pass != $pass2){
  17. echo('Les deux mot de passe que vous avez entrer ne sont pas identique, recommencez ...');
  18. exit;
  19. }
  20. else{
  21. $requette = "INSERT INTO utilisateurs VALUES('','" . $nom . "','" . $prenom . "','" . $user . "','" . md5($pass) . "')";
  22. $req = mysql_query($requette);
  23. if ($req)
  24. echo("Envoi ok");
  25. else
  26. trigger_error("La requête SQL $requette ne s'est pas exécutée correctement ".mysql_error(), E_USER_ERROR);
  27. }
  28. }
  29. else
  30. echo("erreur formulaire");
  31. mysql_close($sql);
  32. ?>
m
0
l
6 Janvier 2010 19:56:49

Autre petit essai assez surprenant !!!
j'avais déjà utiliser EasyPHP il y a un certain nombre d'année (depuis g changer d'ordinateur et j'ai formater plusieurs fois l'ancien PC) pour essayer en local phpBB3, un forum qui s'installe sans aucune connaissance en codage, a cette époque le tes en local avait très bien marché, et j'avais donc installer ce pack sur mon site web.

Aujourd'hui, par curiosité, j'ai essayer de réinstaller ce forum phpBB3 pour voir si sa sa marché, et bien figurez vous que NON !

Même ce genre de script ne fonctionnent pas sur mon serveur EasyPHP,
C'est quoi ce bordel!!!
m
0
l
6 Janvier 2010 19:57:02

Les deux mot de passe que vous avez entrer ne sont pas identique, recommencez ...
ou plutôt
Les deux mots de passe que vous avez entré ne sont pas identiques, recommencez...

:) 

C'est visiblement SQL qui plante, non? Aurais-tu chipoté au fichier log? Au pire, cherche sur leur site un log fonctionnel et réessaye.
m
0
l
6 Janvier 2010 20:12:39

oui bon dsl pour les fautes, je suis vraiment pas bon en aurtoghrafe quan je m'y met xD. ben je vait essayer de trouver un 'log' bien que je n'est jamais touché a sa, j'ai même réinstaller easyphp plusieurs fois et essayer des versions plus anciennes, ainsi que wampserver ...dc je voi pas comment le log pourait etre mort...
m
0
l
6 Janvier 2010 21:26:53

Ton problème est super basique en fait. Mais je pense, en tout cas si ca marche chez free que tu n'as pas exactement la même chose. Peut être pas la même version de MySQL si le schéma est le même mais à priori là, le schéma est différent.

Faire ce genre de requête est une TRES mauvaise pratique.

  1. INSERT INTO utilisateurs VALUES('','" . $nom . "','" . $prenom . "','" . $user . "','" . md5($pass) . "')


Il faut privilégier les requêtes listant les champs que tu ajoutes.

  1. INSERT INTO utilisateurs (col1, col2, col3, col4) VALUES('','" . $nom . "','" . $prenom . "','" . $user . "','" . md5($pass) . "')


Pense à zapper la colonne qui est sans doute avec un AUTO_INCREMENT.

En fait ta requête actuellement marche mais si un jour tu as besoin de rajouter une colonne dans ton schéma tu vas devoir retoucher l'ensemble des requêtes INSERT si tu n'as pas listé les champs explicitement ...

Bref, si tu liste pas et que tu fais un :

  1. ALTER TABLE matable ADD COLUMN col25 TINYINT(1) UNSIGNED DEFAULT 0 NOT NULL;


Ceci est un pur exemple sans cohérence. Dans ce cas ton message d'erreur sera ....

Citation :
Column count doesn't match value count


m
0
l
6 Janvier 2010 21:32:16

Au passage, MySQL n'utilise pas le port 80 mais le port 3306 par défaut.

La connexion fonctionne sans problème sinon il exécuterait le or die(). Tu sais la pratique que j'ai dis qui était pas terrible voir très mauvaise ;) 
m
0
l
a c 145 L Programmation
6 Janvier 2010 22:47:33

Si je puis donner mon avis (oui je puis), le souci est plus basique. Est-ce que par hasard tes pages PHP ne feraient pas des includes absolus, ou ne génèreraient pas des appels (par exemple d'images) du genre /imgs/monimage.jpg ?
Sur ton localhost, ton site (normalement) est en http://localhost/répertoire/.... et donc le chemin "/..." est mal résolu, ce qui peut mettre apache à mal.
Essaye déjà d'ajouter la balise:
<base href="http://localhost/répertoire/" />
dans les headers de tes pages, ça peut permettre d'éliminer bon nombre de soucis lors du développement.
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS