Espace membre

etruk Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
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>
A voir également:

2 réponses

Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
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   Statut Membre Dernière intervention  
 
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 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
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   Statut Membre Dernière intervention  
 
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 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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