Votre question

[Resolu][PHP] Problème de connexion a la base.

Tags :
  • Connexion
  • Programmation
Dernière réponse : dans Programmation
11 Novembre 2010 21:52:03

Bonjour, ou plutôt bonsoir à cette heure tardive, je me suis lancé dans la création d'un site avec gérance des membres. Voila j'ai 3 fichier : login.php, login_form.inc et present.inc.

(Les noms d'utilisateur et autre de la BDD ont été transformé ;) )


Login.php :
  1. <?php
  2.  
  3. @session_start();
  4. include("present.inc");
  5. switch (@$_GET['do'])
  6. {case "login":
  7. $connexion = mysql_connect($host, $user, $password);
  8. //or die ("Connexion impossible au serveur");
  9. $db = mysql_select_db($database, $connexion);
  10. //or die ("la base de donnée ne peut être selectionné");
  11. $sql = "SELECT Login FROM Membre WHERE Login='$_POST[nomUtilisateur]'";
  12. $result = mysql_query($sql);
  13. //or die ("Impossible d'executer la requete");
  14. $num = mysql_nums_row($result);
  15. if ($num == 1) //Si Login trouvé
  16. { $sql = "SELECT Login FROM Membre WHERE Login='$_POST[nomUtilisateur]' AND pass=password('$_POST[motDepasse]')";
  17. $result2 = mysql_query($sql);
  18. //or die ("impossible d'executer la requete");
  19. $num2 = mysql_num_rows($result2);
  20. if ($num2 > 0) //mot de passe ok
  21. { $_SESSION['auth']="yes";
  22. $logname = $_POST['nomUtilisateur'];
  23. $_SESSION['logname'] = $logname;
  24. $aujourdhui = date("Y-m-d h:i:s");
  25. $sql = "INSERT INTO Login (Login, dateLogin) VALUES ('$logname', '$aujourdhui')";
  26. mysql_query($sql)
  27. or die ("Impossible d'executer la requete");
  28. // usage fonction header !
  29. if (!headers_sent()) {
  30. header ("Location: indexmembres.php");
  31. exit;
  32. }
  33. else //mdp incorrect
  34. { unset ($do);
  35. $message = "Le pseudo '$_POST[nomUtilisateur]' existe déjà, mais le mot de passe est incorrect.<br>";
  36. include("login_form.inc");
  37. }
  38. }
  39. elseif ($num == 0) //login absent
  40. {unset ($do);
  41. $message = "Le pseudo est incorrect ou inexistant.<br>";
  42. include("logun_form.inc");
  43. }
  44. break;
  45.  
  46. case "new":
  47. foreach($_POST as $clé => $valeur)
  48. {
  49. if ($clé != "fax")
  50. {
  51. unset($_GET['do']);
  52. $message_new = "Il manque des informations obligatoires.";
  53. include("login_form.inc");
  54. exit();
  55. }
  56. }
  57. if (ereg("(nom)",$clé))
  58. {
  59. if(!ereg("^[A-Za-z' éèêëàâîïôûùü-]{1,50}$", stripslashes($valeur)))
  60. {
  61. unset($_GET['do']);
  62. $message_new="$clé n'est pas un nom valide.";
  63. include("login_form.inc");
  64. exit();
  65. }
  66. }
  67. $$clé = strip_tags(trim($valeur));
  68. }
  69. if (! ereg("^.+@.+\\..+$",$_POST['email']))
  70. {
  71. unset($_GET['do']);
  72. $message_new = "Email non valide.";
  73. include("login_form.inc");
  74. exit();
  75. }
  76.  
  77. //Login déjà existant ?
  78. $connection = mysql_connect($host, $user, $password);
  79. //or die ("Connexion au serveur impossible");
  80. $db = mysql_select_db($database, $connexion);
  81. //or die ("Impossible de selection la base de donnée");
  82.  
  83. $sql = "SELECT Login FROM Membre WHERE Login='$_POST[Pseudo]'";
  84. $result = mysql_query($sql);
  85. //or die ("Impossible d'executer la requete");
  86. $num = mysql_numrows($result);
  87. if ($num > 0)
  88. {
  89. unset($_GET['do']);
  90. $message_new = "Ce Pseudo est déjà utilisé.";
  91. include("login_form.inc");
  92. exit();
  93. }
  94. else
  95. { $aujourdhui = date("Y-m-d");
  96. $sql = "INSERT INTO Membre (Login,creation,pass,nom,prenom,email) VALUES ('$_POST[Pseudo]','$aujourdhui',password('$_POST[newpass]'),'$_POST[nom]','$_POST[prenom]','$_POST[email]')";
  97. if (! mysql_query($sql))
  98. {
  99. echo mysql_errno()." : ".mysql_error();
  100. exit;
  101. }
  102. $nomUtilisateur = $_POST['Pseudo'];
  103. $_SESSION['auth']="yes";
  104. $_SESSION['logname'] = $nomUtilisateur;
  105.  
  106. // envoyer mail au nouveau membre
  107. $message =
  108. "Un nouveau compte viens d'être crée pour vous. ".
  109. "Vos identifiants sont :".
  110. "\n\n\t$nomUtilisateur\n\t$_POST[newpass]\n\n".
  111. "Merci de vous être inscrit et bon surf sur Recit et poèmes. ".
  112. "Contact : webmaster@recit-et-poeme.com";
  113.  
  114. $entete="De : membres@recit-et-poeme.com\r\n";
  115. $sujet = "Votre nouveau compte";
  116. $adresse = $_POST['email'];
  117. $mailsen=mail("$adresse","$sujet","$message","$entete");
  118.  
  119. // fonction header !
  120. /*
  121. if (!header_sent()) {
  122. header ("Location: NomveauMembre.inc");
  123. exit;
  124. }*/
  125. include("NouveauMembre.php");
  126. exit();
  127. }
  128. break;
  129.  
  130. default:
  131. include("login_form.inc");
  132. }
  133. ?>


login_form.inc :
  1. <?php
  2. /*
  3. Affiche deux formulaire : le premier pour la connexion avec un login déjà crée, le deuxième permet de s'enregistrer.
  4.  
  5.  
  6. */
  7.  
  8. ?>
  9.  
  10.  
  11. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  12. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
  13. <head>
  14. <title>Recits et mots.fr</title>
  15. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  16. <link rel="icon" type="image/png" href="images/favicon.png" />
  17. <link href="main.css" rel="stylesheet" media="screen" type="text/css" title="design" />
  18. </head>
  19. <body>
  20. <?php include("header.php"); ?>
  21. <?php include("menu.php"); ?>
  22.  
  23. <div id=corp>
  24. <h2>Connexion des membres et inscription des nouveaux membres.</h2>
  25. <tr>
  26. <td width="33%" valign="top">
  27. <font size="+1"><b>Etes-vous déjà membre?</b></font>
  28. <p>
  29. <!-- Login des nouveaux membres -->
  30. <form action="Login.php?do=login" method="post">
  31. <table border="0">
  32. <?php
  33. if (isset($message))
  34. echo "<tr><td colspan='2'>$message </td></tr>";
  35. ?>
  36.  
  37. <tr><td align="right"><b>Nom de login</b></td>
  38. <td><input type="text" name="nomUtilisateur" size="20"
  39. maxsize="20">
  40. </tr></td>
  41.  
  42. <tr><td width="120" align="right"><b>Mot de passe</b></td>
  43. <td><input type="password" name="motDePasse" size="20"
  44. maxsize="20">
  45. </tr></td>
  46.  
  47. <tr><td align="center" colspan="2">
  48. <br><input type="submit" name="log" Valuer="Identifiez-vous!"></td></tr>
  49. </table>
  50. </form>
  51. </td>
  52. <td width="1" bgcolor="gray"></td>
  53. <td width="67%">
  54. <p><font size="+1"><b>Pas encore membre?</b></font>
  55. Une offre spécial, vous pouvez devenir auteur ici!
  56. Nous vous permettons de poster des poèmes, des histoires
  57. ou simplement des mots.
  58. Remplissez le formulaire ci-après et rejoignez notre communeauté.
  59. C'est simple, facile et gratuit!
  60. </p>
  61.  
  62. <!-- Formulaire des nouveaux membres -->
  63. <form action="login.php?do=new" method="post">
  64. <p>
  65. <table border="0" width="100%">
  66. <?php
  67. if (isset($message_new))
  68. echo "<tr><td colspan='2'><b>$message_new</b></td></tr>";
  69. ?>
  70.  
  71. <tr><td align="right"><b>Pseudo</b></td>
  72. <td><input type="text" name="Pseudo" value="<?php echo @$_POST['Pseudo'] ?>"
  73. size="20" maxlength="20"></td></tr>
  74.  
  75. <tr><td align="right"><b>Mot de passe</b></td>
  76. <td><input type="password" name="newpass" value="<?php echo @$_POST['newPass'] ?>"
  77. size="10" maxlength="8"></td></tr>
  78.  
  79. <tr><td align="right"><b>Prenom</b></td>
  80. <td><input type="text" name="Prenom" value="<?php echo @$_POST['prénom'] ?>"
  81. size="40" maxlength="40"></td></tr>
  82.  
  83. <tr><td align="right"><b>Nom</b></td>
  84. <td><input type="text" name="nom" value="<?php echo @$_POST['nom'] ?>"
  85. size="40" maxlength="40"></td></tr>
  86.  
  87. <tr><td align="right"><b>e-mail</b></td>
  88. <td><input type="test" name="email" value="<?php echo @$_POST['email'] ?>"
  89. size="55" maxlength="67"></td></tr>
  90.  
  91. <tr><td> </td>
  92. <td align="center">
  93. <input="submit" value="Enregistrez-vous"></td>
  94. </tr>
  95. </table>
  96. </form>
  97. </td>
  98. </tr>
  99. <tr><td colspan="3" bgcolor="gray"> </td></tr>
  100. </table>
  101. <br>
  102. <div align="center"><font size="-1">
  103. Nous apprecierons vos commentaires et vos suggestion, merci de les adresser à <a href="mailto:Baptiste.Lemarcis@live.fr">webmaster@recit-et-poeme.com</a>
  104. </font>
  105. </div>
  106. </div>
  107. <?php include("footer.php"); ?>
  108. </body>
  109. </html>


present.inc :
  1. <?php
  2. $user="teste76";
  3. $host="localhost";
  4. $password="poulpe";
  5. $database="teste76";
  6. ?>



Voila la connexion a ma BDD ne se fait pas :(  J'ai chercher ca viendrait de mon fichier present.inc car quand je remplace correctement dans les fichier cela fonctionne mais dès que je fais ça par variable cela plante... Même en définissant les variables dans le fichier cela ne fonctionne pas!


Merci de votre aide.


Cordialement.

Autres pages sur : resolu php probleme connexion base

a c 232 L Programmation
11 Novembre 2010 22:56:46

SAlut,

Et si tu supprimes les commentaires des "or die(...);" c'est à quel moment que ça plante avec quel message d'erreur ?
m
0
l
12 Novembre 2010 06:57:58

J'ai bien l'impression que c'est au tout début de mon script lorsqu'il doit se connecter à la BDD je pense que c'est a cause du fichier present.inc la je viens de supprimer les or die, j'avais fait la même dans mon index et c'était les or die qui m'empêchais de l'afficher, sinon je n'ai aucune erreur simplement une page blanche :( 
m
0
l
Contenus similaires
12 Novembre 2010 07:38:04

$connexion = mysql_connect($host, $user, $password) or die (mysql_error());
$db = mysql_select_db($database, $connexion) or die (mysql_error());

retourne nous le message envoyé, si ce n'est pas la connexion à la base de donnée, c'est l'architecture de l'une de tes requete, donc modifie aussi les or die de tes requete par mysql_error() afin d'avoir une erreur plus claire retournée.
m
0
l
a c 232 L Programmation
12 Novembre 2010 09:14:13

oui j'avais pas été assez clair, quand je disais supprime les commentaires, c'était de t'organiser de telle manière que tu aies mysql_xxx(...) or die(...)
m
0
l
a c 145 L Programmation
12 Novembre 2010 09:56:55

Et j'ajouterai, pour faciliter le débugage:
avant ton session_start(), mets les deux lignes suivantes:
  1. error_reporting(E_ALL);
  2. display_errors(1);
m
0
l
12 Novembre 2010 17:18:01

D'accord je fais ca et je vous dis ce qu'il en ai, mais pour l'instant aucune erreur que du blanc :( 
m
0
l
12 Novembre 2010 17:23:42

Bon après avoir appliqué ce que vous m'avez dit de faire toujours rien, page blanche. Aucune erreur d'afficher :( 
J'ai aussi remplacer mes variables $host, $user, $password et $database par leur vraie valeur et rien n'y fait toujours page blanche.
m
0
l
a c 232 L Programmation
12 Novembre 2010 18:11:14

Tu as des soucis dans ton code, il y a des { qui n'ont pas de } au bon endroit.
ton (ligne 15/16)
  1. if ($num == 1) //Si login trouvé
  2. {

A le } qui se termine dans le case "new" (ligne 56) alors qu'il est commencé dans le case "login".
m
0
l
12 Novembre 2010 18:34:58

Voila, je viens de corriger le fichier, seulement cela ne fonctionne toujours pas :fou: 

login.php
  1. <?php
  2. error_reporting(E_ALL);
  3. display_errors(1);
  4. @session_start();
  5. include("present.inc");
  6. switch (@$_GET['do'])
  7. {case "login":
  8. $connexion = mysql_connect($host, $user, $password) or die (mysql_error());
  9.  
  10. $db = mysql_select_db($database, $connexion) or die (mysql_error());
  11.  
  12. $sql = "SELECT Login FROM Membre WHERE Login='$_POST[nomUtilisateur]'";
  13.  
  14. $result = mysql_query($sql) or die (mysql_error());
  15.  
  16. $num = mysql_nums_row($result);
  17.  
  18. if ($num == 1) //Si Login trouvé
  19. { $sql = "SELECT Login FROM Membre WHERE Login='$_POST[nomUtilisateur]' AND pass=password('$_POST[motDePasse]')";
  20. $result2 = mysql_query($sql);
  21.  
  22. $num2 = mysql_num_rows($result2);
  23.  
  24. if ($num2 > 0) //mot de passe ok
  25. { $_SESSION['auth']="yes";
  26. $logname = $_POST['nomUtilisateur'];
  27. $_SESSION['logname'] = $logname;
  28. $aujourdhui = date("Y-m-d h:i:s");
  29. $sql = "INSERT INTO Login (Login, dateLogin) VALUES ('$logname', '$aujourdhui')";
  30. mysql_query($sql) or die (mysql_error());
  31. }
  32. // usage fonction header !
  33. if (!headers_sent()) {
  34. header ("Location: indexmembres.php");
  35. exit;
  36. }
  37. else //mdp incorrect
  38. { unset ($do);
  39. $message = "Le pseudo '$_POST[nomUtilisateur]' existe déjà, mais le mot de passe est incorrect.<br>";
  40. include("login_form.inc");
  41. }
  42.  
  43. }
  44. elseif ($num == 0) //login absent
  45. {unset ($do);
  46. $message = "Le pseudo est incorrect ou inexistant.<br>";
  47. include("login_form.inc");
  48. }
  49. break;
  50.  
  51. case "new":
  52. foreach($_POST as $clé => $valeur)
  53. {
  54. if ($clé != "fax")
  55. {
  56. if ($valeur == "")
  57. {
  58. unset($_GET['do']);
  59. $message_new = "Il manque des informations obligatoires.";
  60. include("login_form.inc");
  61. exit();
  62. }
  63. }
  64. if (ereg("(nom)",$clé))
  65. {
  66. if(!ereg("^[A-Za-z' éèêëàâîïôûùü-]{1,50}$", stripslashes($valeur)))
  67. {
  68. unset($_GET['do']);
  69. $message_new="$clé n'est pas un nom valide.";
  70. include("login_form.inc");
  71. exit();
  72. }
  73. }
  74. $$clé = strip_tags(trim($valeur));
  75. } //fin foreach
  76. if (! ereg("^.+@.+\\..+$",$_POST['email']))
  77. {
  78. unset($_GET['do']);
  79. $message_new = "Email non valide.";
  80. include("login_form.inc");
  81. exit();
  82. }
  83.  
  84. //Login déjà existant ?
  85. $connexion = mysql_connect($host, $user, $password) or die (mysql_error());
  86.  
  87. $db = mysql_select_db($database, $connexion) or die (mysql_error());
  88.  
  89. $sql = "SELECT Login FROM Membre WHERE Login='$_POST[Pseudo]'";
  90.  
  91. $result = mysql_query($sql);
  92.  
  93. $num = mysql_numrows($result);
  94.  
  95. if ($num > 0)
  96. {
  97. unset($_GET['do']);
  98. $message_new = "Ce Pseudo est déjà utilisé.";
  99. include("login_form.inc");
  100. exit();
  101. }
  102. else
  103. { $aujourdhui = date("Y-m-d");
  104. $sql = "INSERT INTO Membre (Login, creation, pass, nom, prenom, email) VALUES ('$_POST[Pseudo]', '$aujourdhui', password('$_POST[newpass]'), '$_POST[nom]', '$_POST[Prenom]', '$_POST[email]')";
  105. if (! mysql_query($sql))
  106. {
  107. echo mysql_errno()." : ".mysql_error();
  108. exit;
  109. }
  110. $nomUtilisateur = $_POST['Pseudo'];
  111. $_SESSION['auth']="yes";
  112. $_SESSION['logname'] = $nomUtilisateur;
  113.  
  114. // envoyer mail au nouveau membre
  115. $message =
  116. "Un nouveau compte viens d'être crée pour vous. ".
  117. "Vos identifiants sont :".
  118. "\n\n\t$nomUtilisateur\n\t$_POST[newpass]\n\n".
  119. "Merci de vous être inscrit et bon surf sur Recit et poèmes. ".
  120. "Contact : webmaster@recit-et-poeme.com";
  121.  
  122. $entete="De : membres@recit-et-poeme.com\r\n";
  123. $sujet = "Votre nouveau compte";
  124. $adresse = $_POST['email'];
  125. $mailsen = mail("$adresse","$sujet","$message","$entete");
  126.  
  127. // fonction header !
  128. /*
  129. if (!header_sent()) {
  130. header ("Location: NomveauMembre.inc");
  131. exit;
  132. }*/
  133. include("indexmembre.php");
  134. exit();
  135. }
  136. break;
  137.  
  138. default:
  139. include("login_form.inc");
  140. }
  141. ?>


login_form.inc
  1. <?php
  2. /*
  3. Affiche deux formulaire : le premier pour la connexion avec un login déjà crée, le deuxième permet de s'enregistrer.
  4.  
  5.  
  6. */
  7.  
  8. ?>
  9.  
  10.  
  11. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  12. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
  13. <head>
  14. <title>Recits et mots.fr</title>
  15. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  16. <link rel="icon" type="image/png" href="images/favicon.png" />
  17. <link href="main.css" rel="stylesheet" media="screen" type="text/css" title="design" />
  18. </head>
  19. <body topmargin="0" leftmargin="" marginheight="0" marginwidth="0">
  20. <?php include("header.php"); ?>
  21. <?php include("menu.php"); ?>
  22.  
  23. <div id=corp>
  24. <h2>Connexion des membres et inscription des nouveaux membres.</h2>
  25. <tr>
  26. <td width="33%" valign="top">
  27. <font size="+1"><b>Etes-vous déjà membre?</b></font>
  28. </td>
  29. </tr>
  30. <p>
  31.  
  32. <!-- Login des nouveaux membres -->
  33. <form action="login.php?do=login" method="post">
  34. <table border="0">
  35. <?php
  36. if (isset($message))
  37. echo "<tr><td colspan='2'>$message </td></tr>";
  38. ?>
  39.  
  40. <tr><td align="right"><b>Nom de login</b></td>
  41. <td><input type="text" name="nomUtilisateur" size="20" maxsize="20"/>
  42. </tr></td>
  43.  
  44. <tr><td width="120" align="right"><b>Mot de passe</b></td>
  45. <td><input type="password" name="motDePasse" size="20" maxsize="20"/>
  46. </tr></td>
  47.  
  48. <tr><td align="center" colspan="2">
  49. <br><input type="submit" name="log" Valuer="Identifiez-vous!"/></td></tr>
  50. </table>
  51. </form>
  52. </td>
  53. <td width="1" bgcolor="gray"></td>
  54. <td width="67%">
  55. <p><font size="+1"><b>Pas encore membre?</b></font>
  56. Une offre spécial, vous pouvez devenir auteur ici!
  57. Nous vous permettons de poster des poèmes, des histoires
  58. ou simplement des mots.
  59. Remplissez le formulaire ci-après et rejoignez notre communeauté.
  60. C'est simple, facile et gratuit!
  61. </p>
  62. </td>
  63. </p>
  64. <!-- Formulaire des nouveaux membres -->
  65. <form action="login.php?do=new" method="post">
  66. <p>
  67. <table border="0" width="100%">
  68. <?php
  69. if (isset($message_new))
  70. echo "<tr><td colspan='2'><b>$message_new</b></td></tr>";
  71. ?>
  72.  
  73. <tr><td align="right"><b>Pseudo</b></td>
  74. <td><input type="text" name="Pseudo" value="<?php echo @$_POST['Pseudo'] ?>" size="20" maxlength="20"/></td></tr>
  75.  
  76. <tr><td align="right"><b>Mot de passe</b></td>
  77. <td><input type="password" name="newpass" value="<?php echo @$_POST['newpass'] ?>" size="10" maxlength="8"/></td></tr>
  78.  
  79. <tr><td align="right"><b>Prenom</b></td>
  80. <td><input type="text" name="Prenom" value="<?php echo @$_POST['Prenom'] ?>" size="40" maxlength="40"/></td></tr>
  81.  
  82. <tr><td align="right"><b>Nom</b></td>
  83. <td><input type="text" name="nom" value="<?php echo @$_POST['nom'] ?>" size="40" maxlength="40"/></td></tr>
  84.  
  85. <tr><td align="right"><b>e-mail</b></td>
  86. <td><input type="test" name="email" value="<?php echo @$_POST['email'] ?>" size="55" maxlength="67"></td></tr>
  87.  
  88. <tr><td> </td>
  89. <td align="center">
  90. <input="submit" value="Enregistrez-vous"/></td>
  91. </tr>
  92. </table>
  93. </form>
  94.  
  95.  
  96. </p>
  97. <tr><td colspan="3" bgcolor="gray"> </td></tr>
  98. <div align="center"><font size="-1">
  99. Nous apprecierons vos commentaires et vos suggestion, merci de les adresser à <a href="mailto:Baptiste.Lemarcis@live.fr">webmaster@recit-et-poeme.com</a>
  100. </font>
  101. </div>
  102. </div>
  103. <?php include("footer.php"); ?>
  104. </body>
  105. </html>




EDIT :

Après correction de toutes les fautes de frappes je les reposte, normalement tout est ok niveau syntaxe, niveau code j'ai regardé j'ai rien trouver, par contre mon fichier present.inc fonctionne bien... :( 
m
0
l
a c 145 L Programmation
13 Novembre 2010 14:14:42

Si tu as une page blanche, c'est une erreur lors de la compilation.
Peut-être tout simplement un souci de transfert FTP et/ou de format de fichier qui fait que tu as des caractères avant ton <?php
m
0
l
13 Novembre 2010 14:16:19

J'ai rechercher dans tout mon code et la page s'affiche correctement dès que les variables $sql ne sont plus la... C'est donc ce que je dis de faire qui est faux et qui m'affiche une page blanche
m
0
l
13 Novembre 2010 17:44:41

Problème résolu, j'ai tout refait maintenant j'ai un système de page qui fonctionne avec ma connexion et autre ;) 


Merci a tous de votre aide !
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