[EasyPHP+mysql] - Les pages php ne s'affichent pas
Dernière réponse : dans Programmation
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 :
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
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éeLa 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
Lassé par la pub ? Créez un compte
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é.
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é.
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 ...
[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 [Wed Jan 06 16:07:58 2010] [error] [client 127.0.0.1] File does not exist: D:/sites/favicon.ico [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 [Wed Jan 06 16:08:00 2010] [error] [client 127.0.0.1] File does not exist: D:/sites/favicon.ico [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 [Wed Jan 06 16:09:22 2010] [error] [client 127.0.0.1] File does not exist: D:/sites/favicon.ico [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 [Wed Jan 06 16:09:24 2010] [error] [client 127.0.0.1] File does not exist: D:/sites/favicon.ico [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 [Wed Jan 06 16:09:25 2010] [error] [client 127.0.0.1] File does not exist: D:/sites/favicon.ico [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 [Wed Jan 06 16:10:10 2010] [error] [client 127.0.0.1] File does not exist: D:/sites/favicon.ico [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 [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 [Wed Jan 06 16:10:18 2010] [notice] Parent: child process exited with status 3221225477 -- Restarting. [Wed Jan 06 16:10:18 2010] [notice] Apache/2.2.13 (Win32) PHP/5.3.0 configured -- resuming normal operations [Wed Jan 06 16:10:18 2010] [notice] Server built: Aug 6 2009 15:50:50 [Wed Jan 06 16:10:18 2010] [notice] Parent: Created child process 832 [Wed Jan 06 16:10:18 2010] [notice] Child 832: Child process is running [Wed Jan 06 16:10:18 2010] [notice] Child 832: Acquired the start mutex. [Wed Jan 06 16:10:18 2010] [notice] Child 832: Starting 64 worker threads. [Wed Jan 06 16:10:18 2010] [notice] Child 832: Starting thread to listen on port 80.
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 :
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.
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.
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 :
$result = mysql_query("SELECT truc ..."); $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.
$sql = "SELECT truc ..." $result = mysql_query($sql); if($result === false) { trigger_error("La requête SQL $sql ne s'est pas exécutée correctement, E_USER_ERROR); /* entraine la fin d'éxecution non visible au besoin. * mieux que die() utilisé à outrance * Affichage dans les log, donc sur un site public, tu remarques si il y a des crash * pour qqpersonne mais toi jamais. Pas avec die */ } $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.
Il peut y avoir des tonnes de raison. La configuration en est une. Par contre je modifierais ma ligne de message d'erreur pour :
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.
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.
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 :
et si sa peut aider, voici le code de ma page php :
Voila l'erreur retournée grâce à la ligne de SiM07 :
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 :
<?php // $sql => Connexion mysql // Procédure de connexion à la base MySql : $sql=mysql_connect('localhost','lightsoft','xmrq71xk') or die("error sql"); mysql_select_db('lightsoft'); // fin procédure connexion // // instructions et requêtes sur la base de donnée if (isset($_POST['nom']) AND isset($_POST['prenom']) AND isset($_POST['user']) AND isset($_POST['pass']) AND isset($_POST['pass2'])){ $nom = mysql_real_escape_string(htmlspecialchars($_POST['nom'])); $prenom = mysql_real_escape_string(htmlspecialchars($_POST['prenom'])); $user = mysql_real_escape_string(htmlspecialchars($_POST['user'])); $pass = mysql_real_escape_string(htmlspecialchars($_POST['pass'])); $pass2 = mysql_real_escape_string(htmlspecialchars($_POST['pass2'])); if ($pass != $pass2){ echo('Les deux mot de passe que vous avez entrer ne sont pas identique, recommencez ...'); exit; } else{ $requette = "INSERT INTO utilisateurs VALUES('','" . $nom . "','" . $prenom . "','" . $user . "','" . md5($pass) . "')"; $req = mysql_query($requette); if ($req) echo("Envoi ok"); else trigger_error("La requête SQL $requette ne s'est pas exécutée correctement ".mysql_error(), E_USER_ERROR); } } else echo("erreur formulaire"); mysql_close($sql); ?>
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!!!
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!!!
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.
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.
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...
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.
Il faut privilégier les requêtes listant les champs que tu ajoutes.
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 :
Ceci est un pur exemple sans cohérence. Dans ce cas ton message d'erreur sera ....
Faire ce genre de requête est une TRES mauvaise pratique.
INSERT INTO utilisateurs VALUES('','" . $nom . "','" . $prenom . "','" . $user . "','" . md5($pass) . "')
Il faut privilégier les requêtes listant les champs que tu ajoutes.
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 :
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
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.
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.
Lassé par la pub ? Créez un compte
- Contenus similaires :
- SolutionsFormulaire php deux pages
- SolutionsPHP / MySQL : vues ou requètes dans le code
- SolutionsSupprimer doublons base mysql php
- SolutionsCompter le nombre d'enregistrements MySQL en PHP
- SolutionsFormulaire php MySQL
- SolutionsProblème pour afficher mes pages php avec apache2 sur ubuntu
- SolutionsPHP : organiser les pages web
- SolutionsCréer des liens vers des pages en PHP: php?page=...
- SolutionsAide php, création de plusieurs pages automatiquement
- Voir plus