Ses dernières news
Ses derniers sujets sur les forums
Bonjour,
Je suis avec attention la plupart des comment faire, et je félicite les rédacteurs pour la clarté du code et des explications. Tout fonctionne parfaitement.
J'ai néanmoins besoin de faire fonctionner un script basé sur votre système d'espace membre mais la base de données en en mysqli, alors évidemment, cela ne fonctionne pas...
Qu'est-il possible de faire, j'ai tenté de remplacer tout simplement les mysql par des mysqli mais je tombe toujours sur une erreur SQL.
Les comment-faire vont-ils bientôt être ré-écrit pour du mysqli ?
Merci de votre aide,
Nuclear
Ses derniers messages sur les forums
Arf. Oki, merci de ta réponse.
Je vais donc revoir le script pour qu'il puisse passer en mysqli.
Pensez-vous modifier les "comment faire" afin qu'ils soient compatibles avec mysqli ?
Ben, le code est tout simplement le votre avec des "i" :
1. <?php
2. // on teste si le visiteur a soumis le formulaire
3. if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
4. // on teste l'existence de nos variables. On teste également si elles ne sont pas vides
5. if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {
6. // on teste les deux mots de passe
7. if ($_POST['pass'] != $_POST['pass_confirm']) {
8. $erreur = 'Les 2 mots de passe sont différents.';
9. }
10. else {
11. $base = mysqli_connect ('serveur', 'login', 'password');
12. mysqli_select_db ('nom_base', $base);
13.
14. // on recherche si ce login est déjà utilisé par un autre membre
15. $sql = 'SELECT count(*) FROM membre WHERE login="'.mysqli_escape_string($_POST['login']).'"';
16. $req = mysqli_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysqli_error());
17. $data = mysqli_fetch_array($req);
18.
19. if ($data[0] == 0) {
20. $sql = 'INSERT INTO membre VALUES("", "'.mysqli_escape_string($_POST['login']).'", "'.md5(mysqli_escape_string($_POST['pass'])).'")';
21. mysqli_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysqli_error());
22.
23. session_start();
24. $_SESSION['login'] = $_POST['login'];
25. header('Location: membre.php');
26. exit();
27. }
28. else {
29. $erreur = 'Un membre possède déjà ce login.';
30. }
31. }
32. }
33. else {
34. $erreur = 'Au moins un des champs est vide.';
35. }
36. }
37. ?>
38. <html>
39. <head>
40. <title>Inscription</title>
41. </head>
42.
43. <body>
44. Inscription à l'espace membre :<br />
45. <form action="inscription.php" method="post">
46. Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
47. Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
48. Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
49. <input type="submit" name="inscription" value="Inscription">
50. </form>
51. <?php
52. if (isset($erreur)) echo '<br />',$erreur;
53. ?>
54. </body>
55. </html>
Oui, c'est juste une extension de php.
L'erreur obtenue est :
Erreur SQL !
SELECT count(*) FROM membre WHERE login="'
Ses derniers commentaires de news
Aucun commentaire de news
Ses derniers commentaires de sites
Aucun commentaire de sites
Ses derniers commentaires de wall