Se connecter avec
S'enregistrer | Connectez-vous

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

Dernière réponse : dans Programmation

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" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</a>">
  12. <html xmlns="<a href="http://www.w3.org/1999/xhtml" target="_blank">http://www.w3.org/1999/xhtml</a>" 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.
Lassé par la pub ? Créez un compte

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 :( 
Expert Programmation

$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.

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.
Expert Programmation

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".

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" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</a>">
  12. <html xmlns="<a href="http://www.w3.org/1999/xhtml" target="_blank">http://www.w3.org/1999/xhtml</a>" 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... :( 
Lassé par la pub ? Créez un compte
Tom's guide dans le monde