Espace membre

Fermé
etruk Messages postés 8 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 26 mars 2014 - Modifié par etruk le 20/03/2014 à 13:56
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 23 oct. 2016 à 16:49
salut, j'ai ce code qui me sert de page inscription.php, mais il me dit qu'il ya une erreur: Erreur SQL !
SELECT count(*) FROM membre WHERE login="fffff"
No database selected

je comprend pas j'ai tout bien placer dans la base de donné

<?php
// on teste si le visiteur a soumis le formulaire
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
 // on teste l'existence de nos variables. On teste également si elles ne sont pas vides
 if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {
 // on teste les deux mots de passe
 if ($_POST['pass'] != $_POST['pass_confirm']) {
  $erreur = 'Les 2 mots de passe sont différents.';
 }
 else {
  $base = mysql_connect ('serveur', 'login', 'password');
  mysql_select_db ('nom_base', $base);

  // on recherche si ce login est déjà utilisé par un autre membre
  $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"';
  $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  $data = mysql_fetch_array($req);

  if ($data[0] == 0) {
  $sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string(md5($_POST['pass'])).'")';
  mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

  session_start();
  $_SESSION['login'] = $_POST['login'];
  header('Location: membre.php');
  exit();
  }
  else {
  $erreur = 'Un membre possède déjà ce login.';
  }
 }
 }
 else {
 $erreur = 'Au moins un des champs est vide.';
 }
}
?>
<html>
<head>
<title>Inscription</title>
</head>

<body>
Inscription à l'espace membre :<br />
<form action="inscription.php" method="post">
Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
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 />
<input type="submit" name="inscription" value="Inscription">
</form>
<?php
if (isset($erreur)) echo '<br />',$erreur;
?>
</body>
</html>

2 réponses

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
20 mars 2014 à 13:26
Bonjour,

Tu dois avoir un soucis dans ta connexion à la base.
Modifie tes deux lignes mysql_connect / mysql_select_db en rajoutant or die() :
  $base = mysql_connect ('serveur', 'login', 'password') or die (mysql_error());
  mysql_select_db ('nom_base', $base) or die (mysql_error());
1
etruk Messages postés 8 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 26 mars 2014
20 mars 2014 à 13:53
bonjour,

malgré cela, sa me dit: Access denied for user ''@'localhost' to database 'teste'

faudrait pas t-il mettre le nom de la table ??
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
20 mars 2014 à 15:55
Cela veut tout simplement dire que l'utilisateur que tu mets dans mysql_connect n'a pas les droits d'accès à la base teste.

Donne-lui les accès, et ça ira mieux.
0
etruk Messages postés 8 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 26 mars 2014
20 mars 2014 à 16:02
comment je pourrais faire sa?

j'ai sa : $base = mysql_connect ('127.0.0.1', '', '') or die (mysql_error());
mysql_select_db ('teste', $base) or die (mysql_error());
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
20 mars 2014 à 16:06
Le problème ne vient pas de ton script PHP, mais de la configuration de ta base de données.
Tu utilises quoi pour créer tes tables / ta base ? PhpMyAdmin ? C'est là-dedans qu'il faut donner les droits sur la base 'teste'.
0
etruk Messages postés 8 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 26 mars 2014
20 mars 2014 à 16:09
oui phpmyadmin, mais enfait "teste" c'est ma base de donnée il ya une cles primary peut etre c'est sa ?
0
etruk Messages postés 8 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 26 mars 2014
Modifié par etruk le 20/03/2014 à 13:47
bonjour,

malgré cela, sa me dit: Access denied for user ''@'localhost' to database 'teste'

faudrait pas t-il mettre le nom de la table ??
0