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 :

Page PHP qui ne veut pas s'afficher


Sujet :

Langage PHP

  1. #1
    skandhal
    Invité(e)
    Par défaut Page PHP qui ne veut pas s'afficher
    Bonjour à toutes et à tous,

    J'ai un problème avec une page php qui n'affiche plus rien.

    En gros la situation:

    page1.php contient du php et un formulaire HTML permettant la saisie d'un nom d'utilisateur et d'un mot de passe pour se connecter à une partie du site web. Jusque là aucun problème.

    Lorsque l'on appui sur le bouton "se connecter", je passe (par la méthode POST) les paramètres de mon formulaire à une autre page php (page2.php).

    page2.php récupère les variables $_POST qui sont comparées à la base de données.
    Si ces données sont exactes, l'utilisateur est connecté.
    Si les données sont erronées, l'utilisateur est informé de s'il s'agit d'une erreur sur le nom d'utilisateur (l'utilisateur n'existe pas) ou sur le mot de passe (le mot de passe est incorrect). Rien d'extra ordinaire non plus.

    Donc hier soir je faisais mes tests avec des noms d'utilisateurs et mots de passe pour vérifier la cohérence de mon script php. Cela fonctionnait normalement, mais tout d'un coup sans avoir changé quoi que ce soit dans mon script de vérification. Tout c'est mis à vaciller!

    Par exemple un utilisateur test avec comme mot de passe test:

    A 21h50: L'utilisateur s'est bien connecté.
    A 21h51: Mot de passe incorrect.
    A 21h52: Page blanche dans le navigateur.

    J'ai commencé par vérifier les données dans la base de données. L'utilisateur test et son mot de passe n'ont pas été effacé, ni changé. Pourquoi alors ai-je eu mot de passe incorrect, sachant que mon script n'a pas changé entre 21h50 et 21h52.

    Bon connaissant le proverbe suivant: "La nuit porte conseil", j'ai jeté un dernier coup d'oeil à mon script et je suis parti dormir.

    Cet après midi, je ré-ouvre ma page1.php, je remet mes identifiants test/test, je clique sur "se connecter" et paf à nouveau page blanche. Je décide donc de faire un petit clic droit > afficher le code source. Et là, surprise! Rien! Même pas une balise html, header, body ou autre. LE NEAN COMPLET !!!

    Je décide donc de commenter toutes les lignes de mon script PHP et de mettre un simple echo "bonjour"; et de raffraichir ma page2.php. Surprise toujours rien dans le navigateur et dans le code source. Si je met du html pur idem rien ne s'affiche (code source inclus).

    Je n'ai aucun problème avec mes autres pages html ou php. Je ne comprends ce qui se passe avec celle là.

    Auriez-vous une idée de ce qui peut poser problème? Parce que là je sèche complet sur la question.

    En attendant: je vais tenter de changer le nom de la page pour voir, vraiment par curiosité, mais je doute que ça change quelques choses.

  2. #2
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    on veut voir ton code

  3. #3
    skandhal
    Invité(e)
    Par défaut
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form name='login_form' method='post' action='./page2.php' >
    	Adresse e-mail: <input id="mail" type="text" name='mail' maxlength="32" size="35"/> 
    	Mot de passe: <input id="password" type="password" name='password' maxlength="8" size="10"/> 
    	<input id="button" type="submit" value="Se connecter" onclick='return check_login_form();' /><br />
    </form>
    Code de page2.php
    Code PHP : 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
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
    	<head>
    		<title>xxxxxxxxx</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    		<meta name="author" content="xxxxxxxxx" />
    		<meta name="description" content="xxxxxxxxx" />
    		<meta name="keywords" content="xxxxxxxxx" />
    		<meta name="reply-to" content="xxxx@xxxx" />
    		<link rel="stylesheet" media="screen" type="text/css" title="xxxxxxxxx" href="css_bet.css" />
    		<link rel="icon" type="image/x-icon" href="picture/favicon.ico" />
     
    	</head>
    	<body>
    		<?php include("headerandmenu.php"); ?> <!--  -->
    		<div id="content1">
    			Vérification de vos identifiants de connexion en cours. Merci de patienter quelques secondes...<br />
    			<img src="pictures/#" alt="Logo patienter rotatif"/><br />
    			<?php
    				if(isset($_POST['mail']) && isset($_POST['password']))
    				{
    					if(!empty($_POST['mail']) && !empty($_POST['password']))
    					{
    						/* Connexion au server MySQL */
    						$idConn = mysql_connect("localhost", "XXXX", "XXXX");
    						/* Sélection de la base de données */
    						mysql_select_db("_db_bet");
     
    						$mail = mysql_real_escape_string($_POST['mail']);
    						$mail = strtolower($mail); // Forçage en minuscule
     
    						$password = md5($_POST['password']); // Cryptage du mot de passe MD5
     
    						$password_db = "";
    						$mail_db = "";
     
    						/* Construction de la requête MySQL et récupération des résultats */
    						$return = mysql_query('SELECT * FROM t_users WHERE mail = \'' . $mail .'\'') or die(mysql_error());
    						/* Fermeture de la connexion au serveur MySQL */
    						mysql_close($idConn);
    						/* Traitement des résultats */
    						while ($data = mysql_fetch_array($return))
    						{
    							$password_db = $data["password"];
    							$mail_db = strtolower($data["mail"]);
    						}
    						/* Adresse mail présente dans la base de données, vérification du mot de passe */
    						if($password == $password_db) /* Mot de passe valide */
    						{
    							/* On redirige l'utilisateur */
    							echo "Connexion réussie, vous allez être redirigé dans quelques secondes vers votre compte.<br />
    								Si vous n'êtes par redirigé automatiquement cliquez <a href=\"#\">ici</a>, merci."; // INSERER LE LIEN VERS LA PAGE DE CONNEXION ! ! ! <==========
     
    								/* Mettre à jour la base de données avec:
    								 * adresse IP de l'utilisateur ($REMOTE_ADDR) pour IP_address
    								 * date du jour pour last_connection
    								 * 
    								 */
     
    								/* Connexion au server MySQL */
    								$idConn = mysql_connect("localhost", "XXXX", "XXXX");
    								/* Sélection de la base de données */
    								mysql_select_db("_db_bet");
    								/* Construction de la requête MySQL et récupération des résultats */
    								$return = mysql_query('UPDATE t_users SET IP_address=' . $REMOTE_ADDR . ', last_connection='. now() .' WHERE mail = \'' . $mail .'\'') or die(mysql_error());
    								/* Fermeture de la connexion au serveur MySQL */
    								mysql_close($idConn);
     
    								/* SCRIPT REDIRECTION ICI */
     
    						}
    						else if($mail_db != $mail) 
    						/* Les mots de passe de correspondent pas: Erreur de saisie utilisateur */
    						else if($password != $password_db) echo "Le mot de passe n'est pas correct.<br />";
    						/* L'adresse mail est introuvable dans la base de données: Erreur de saisie utilisateur */
    						else echo "L'adresse mail n'existe pas dans notre base de données.<br />";
    					}
    					/* Uniquement pour les utilisateurs n'autorisant pas JavaScript */
    					else
    					{
    						/* On affiche un message d'erreur à la place du message de vérification */
    						echo "Le formulaire de connexion n'a pas été rempli correctement.<br />";
    						/* Champ adresse e-mail vide */
    						if(empty($_POST['mail'])) echo "Vous n'avez pas saisi votre adresse e-mail.<br />";
    						/* Champ mot de passe vide */
    						if(empty($_POST['password'])) echo "Vous n'avez pas saisi votre mot de passe.<br />";
    					}
    				}
    				/* On affiche un message d'erreur à la place du message de vérification */
    				else echo "Vous ne pouvez pas vous connecter de cette manière.<br />
    						Veuillez utiliser le formulaire de connexion, cliquez <a href=\"#\">ici</a>.<br />"; // INSERER LE LIEN VERS LA PAGE DE CONNEXION ! ! ! <==========
    			?>
    		</div>
     
    		<?php include("footer.php"); ?> <!--  -->
    	</body>
    </html>

    Voilà à la demande de Madfrix

    C'est grave docteur ?

  4. #4
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Que vaut ta fonction check_login_form() définie (bizzarement) sur un un input de type submit ?

  5. #5
    skandhal
    Invité(e)
    Par défaut
    C'est une simple fonction en JS qui me permet d'afficher un message d'erreur si les champs du formulaire sont remplis.

    Code JavaScript : 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
    <script type="text/javascript"><!--
    function check_login_form() // VERIFICATION DU FORMULAIRE
    {
    	var msg = "";
    	if (document.login_form.mail.value == "") // VERIFICATION DU NOM
    	{
    		msg += "Votre adresse e-mail.\n";
    		document.login_form.mail.style.backgroundColor = "#FFFFFF";
    	}
    	if (document.login_form.password.value == "") // VERIFICATION DU PRENOM
    	{
    		msg += "Votre mot de passe.\n";
    		document.login_form.password.style.backgroundColor = "#FFFFFF";
    	}
    	if (document.login_form.mail.value != "" && document.login_form.password.value != "") // SI LES CHAMPS SONT REMPLIS
    	{
    		return(true);
    	}
    	else // SINON EDITION DU MESSAGE D'ERREUR
    	{
    		alert('Veuillez compléter l\'(les) information(s) suivante(s) :\n'+msg);
    		return(false);
    	}
    }//-->
    </script>

  6. #6
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    modifie l'action du form avec une page php inexistante voir s'il t'envoie bien un message d'erreur et si tu quittes ta page blanche

  7. #7
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 241
    Points : 272
    Points
    272
    Par défaut
    Salut,
    en haute de page2.php tu peux aussi ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    error_reporting(E_ALL);

  8. #8
    skandhal
    Invité(e)
    Par défaut
    @Madfrix:
    J'ai l'équivalent du 404 pour Google Chrome: Ooops! La page demandée n'a pu être trouvée. Si je change page2.php par une page qui n'existe pas.

    @Psylox:
    J'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php error_reporting(E_ALL); ?>
    tout en haut de page donc avant <html and co>. Je n'ai aucun changement, pas même un message d'erreur ou quoi que ce soit.

    ----
    @Tous:
    J'ai remarqué autre chose encore plus bizarre que tout le reste.

    Dans chacune de mes pages je fais un include php, pour afficher l'entête du site (l'image du haut équivalent à celle de Developpez.com) et le menu du site.

    Bizarrement mes images s'affichent sans problème et mon menu ne s'affiche pas sur certaine de mes pages, depuis quelques minutes seulement ce bug est apparu. Encore plus étonnant, c'est que c'est le même fichier qui contient l'image et le menu, donc je comprends vraiment pas pourquoi il m'inclut que la moitié de ce fichier.
    Dernière modification par Deepin ; 29/11/2010 à 07h48. Motif: Merci d'utiliser la balise [code] (bouton #) de l'editeur.

  9. #9
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    C'est surement parce qu'une fonction php plante lamentablement et que le reste du code n'est pas affiché. As tu essayé de tout commenter et de retirer les commentaires au fur et à mesure pour voir où ca plante ?

  10. #10
    skandhal
    Invité(e)
    Par défaut
    Oui j'ai testé et même avec la totalité du script en commentaire j'ai une page blanche (et code source vide quand je demande d'afficher le code).

    Est ce que ça peut venir d'un problème du serveur apache?

    Car comme je l'ai dit dans post précédent. J'ai un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include("headerandmenu.html" ?>
    au début de chacune de mes pages.

    Dans ce fichier j'ai 2 <div> un pour l'entête graphique du site et un autre pour le menu. Je n'ai que l'entête graphique qui s'affiche depuis quelques heures.

    En gros plus j'essaye de m'en sortir et plus je m'enfonce j'ai l'impression.
    Dernière modification par Deepin ; 29/11/2010 à 07h49. Motif: Merci d'utiliser la balise [code] (bouton #) de l'editeur.

  11. #11
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    As tu regardé les logs apache et php ?

  12. #12
    skandhal
    Invité(e)
    Par défaut
    En ce qui concerne les logfiles:

    >apache: RAS mis à part quelques tentatives de piratages qui ont échoués.

    >php: les logs sont bien en ON mais impossible de les trouver

    Connais-tu le chemin par défaut des log de php? J'ai parcouru le ini mais il est vraiment vaste j'ai dû louper la ligne qui indique le chemin à plusieurs reprises. Mais en console sous vi pas facile de faire une recherche

    Bref, je continu à chercher.

  13. #13
    skandhal
    Invité(e)
    Par défaut
    J'ai tjrs les mêmes problèmes. Personne d'autres n'a d'idées pour m'aider à résoudre le soucis?

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 329
    Points : 608
    Points
    608
    Par défaut
    Commence progressivement :

    - si tu mets juste "hello world" dans page2.php ?
    - si tu mets juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <? echo "hello world (echo)"; ?>
    dans page2.php ?
    - si tu mets juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <pre><? var_dump($_POST); ?></pre>
    dans page2.php ?

  15. #15
    skandhal
    Invité(e)
    Par défaut
    ça ne change rien.

    Je vais désinstaller/réinstaller Apache et refaire toute sa configuration.
    Je vous tiens au courant si la situation rentre dans l'ordre après cela.

    J'ai vraiment besoin d'avancer maintenant et je ne m'en sors plus. Donc aux grands maux les grands remèdes.

    Merci en tout cas pour les aides et conseils que vous m'avez apporté.

    Je passe pas en résolu car ce n'est pas le cas pour le moment

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 329
    Points : 608
    Points
    608
    Par défaut
    Citation Envoyé par skandhal Voir le message
    ça ne change rien.
    Tu veux dire que même en vidant complêtement test2.php et en mettant uniquement "hello world" sans balises <? ?> il n'y a rien qui s'affiche ?

  17. #17
    skandhal
    Invité(e)
    Par défaut
    Exact (2 sujets en même temps j'ai du mal a suivre )

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 329
    Points : 608
    Points
    608
    Par défaut
    Est-ce qu'il y a un .htaccess quelque part ?

    Sinon il ne reste que les logs apache à éplucher ...

  19. #19
    skandhal
    Invité(e)
    Par défaut
    Aucun .htaccess pour le moment.
    Dans les logs apache, je n'ai rien trouvé. Il me renvoit bien ma page j'ai des status 200 partout pour ma page2.php.

Discussions similaires

  1. Image qui ne veut pas s'afficher
    Par vince85 dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 17/06/2011, 13h40
  2. graphique qui ne veut pas s'afficher
    Par momoh dans le forum ASP.NET
    Réponses: 0
    Dernier message: 11/05/2009, 09h46
  3. STRSQL : DATE qui ne veut pas s'afficher
    Par TSalm dans le forum AS/400
    Réponses: 10
    Dernier message: 02/12/2008, 16h26
  4. JList qui ne veut pas s'afficher
    Par hamham dans le forum Composants
    Réponses: 16
    Dernier message: 29/01/2007, 18h20
  5. Page PHP qui ne s'affiche pas dans le site
    Par cyberdevelopment dans le forum Langage
    Réponses: 2
    Dernier message: 11/08/2006, 11h49

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