Page 1 sur 1
Problème sur base de donné (manque de donnée)
Posté : 14 août 2005, 21:44
par Xander X
Salut a tous
Voila en faite j'ai crée un sytème de messagerie internet (enfin récupéré et modifier un peu)
et maitenant a chaque fois que je vx me connecter ca me marque un message d'erreur du Mysql disant qu'il manque des données mais je sais pas qu'est que je doit crée dans ma base de données...
si vous voulez voir
http://maximusse80.free.fr/test.php
merci d'avance

Posté : 15 août 2005, 10:02
par Cyrano
La page indiquée n'affiche aucun message : on doit deviner ?

Posté : 15 août 2005, 15:29
par Xander X
Tien j'ai modifier un peu mon site
http://maximusse80.free.fr/site/test.php
donc tu t'inscrit et regarde quand il vx passer dans la page membre
Posté : 15 août 2005, 15:33
par Cyrano
Erreur 404 : Là, ça commence à devenir encore plus difficile

Posté : 15 août 2005, 20:10
par Xander X
Posté : 15 août 2005, 22:27
par Cyrano
Tu as de toutes façon un problème lors de l'inscription: l'erreur affiche une requête SQL SELECT... or lors d'une inscription, il aurait été plus logique d'avoir une requête INSERT INTO...
Sans voir du tout de code, impossible de t'aider.
Au passage, ce n'est à priori pas un problème de SQL ni de base de données mais de PHP. Sujet déplacé.
Posté : 16 août 2005, 15:30
par Xander X
ok donc je vais t'envoyer les codes de toutes mes pages (ca va mettre un peu de temps mais bon ...)
Voila test.php
Code : Tout sélectionner
<?php
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {
$base = mysql_connect ('sql.free.fr', 'maximusse80', 'yrtfu620');
mysql_select_db ('login', $base);
$sql = 'SELECT id FROM login WHERE login="'.addslashes($_POST['login']).'" AND password="'.md5(addslashes($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$nb = mysql_num_rows($req);
if ($nb == 1) {
$data = mysql_fetch_array($req);
session_start();
$_SESSION['login'] = $_POST['login'];
// on enregistre en plus l'id du membre dans une variable de session
$_SESSION['id'] = $data['id'];
mysql_free_result($req);
mysql_close();
header('Location: membres.php');
exit();
}
elseif ($nb == 0) {
$erreur = 'Compte non reconnu.';
}
else {
$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
}
mysql_free_result($req);
mysql_close();
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>
<html>
<head>
<title>Accueil</title>
</head>
<body>
<img src="logo.png">
<div class="colonne_gauche">
<div class="menu_gauche">
Connexion à l'espace membre :<br />
<form action="test.php" method="post">
Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo stripslashes(htmlentities(trim($_POST['login']))); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo stripslashes(htmlentities(trim($_POST['pass']))); ?>"><br />
<input type="submit" name="connexion" value="Connexion">
</form>
<a href="inscription.php">Vous inscrire</a>
<?php
if (isset($erreur)) echo '<br /><br />',$erreur;
?>
</body>
</html>
</body>
</html>
Voila inscription.php
Code : Tout sélectionner
<?php
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {
if ($_POST['pass'] != $_POST['pass_confirm']) {
$erreur = 'Les 2 mots de passe sont différents.';
}
else {
$base = mysql_connect ('sql.free.fr', 'maximusse80', 'yrtfu620');
mysql_select_db ('login', $base);
$sql = 'SELECT login FROM login WHERE login="'.addslashes($_POST['login']).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$nb = mysql_num_rows($req);
if ($nb == 0) {
$sql = 'INSERT INTO login VALUES("'.addslashes($_POST['login']).'", "'.md5(addslashes($_POST['pass'])).'","","","","","")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
// on récupère l'id de notre nouveau membre
$id = mysql_insert_id();
session_start();
$_SESSION['login'] = $_POST['login'];
// on stocke cet id dans une variable de session
$_SESSION['login'] = $id;
header('Location: membres.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 stripslashes(htmlentities(trim($_POST['login']))); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo stripslashes(htmlentities(trim($_POST['pass']))); ?>"><br />
Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo stripslashes(htmlentities(trim($_POST['pass_confirm']))); ?>"><br />
<input type="submit" name="inscription" value="Inscription">
</form>
<?php
if (isset($erreur)) echo '<br />',$erreur;
?>
</body>
</html>
Et voila membres.php
Code : Tout sélectionner
<?php
session_start();
// on vérifie toujours qu'il s'agit d'un membre qui est connecté
if (!isset($_SESSION['login'])) {
// si ce n'est pas le cas, on le redirige vers l'accueil
header ('Location:index.php');
exit();
}
?>
<html>
<head>
<title>Espace membre</title>
</head>
<body>
Bienvenue <?php echo stripslashes(htmlentities(trim($_SESSION['login']))); ?> !<br /><br />
<?php
$base = mysql_connect ('sql.free.fr', 'maximusse80', 'yrtfu620');
mysql_select_db ('login', $base);
// on prépare une requete SQL cherchant tous les titres, les dates ainsi que l'auteur des messages pour le membre connecté
$sql = 'SELECT titre, date, membre.login as expediteur, messages.id as id_message FROM messages, membre WHERE id_destinataire="'.$_SESSION['id'].'" AND id_expediteur=membre.id ORDER BY date DESC';
// lancement de la requete SQL
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$nb = mysql_num_rows($req);
if ($nb == 0) {
echo 'Vous n\'avez aucun message.';
}
else {
// si on a des messages, on affiche la date, un lien vers la page lire.php ainsi que le titre et l'auteur du message
while ($data = mysql_fetch_array($req)) {
echo $data['date'] , ' - <a href="lire.php?id_message=' , $data['id_message'] , '">' , stripslashes(htmlentities(trim($data['titre']))) , '</a> [ Message de ' , stripslashes(htmlentities(trim($data['expediteur']))) , ' ]<br />';
}
}
mysql_free_result($req);
mysql_close();
?>
<br /><a href="envoyer.php">Envoyer un message</a>
<br /><br /><a href="deconnexion.php">Déconnexion</a>
</body>
</html>
Si vous avez besoin d'autre page dites le moi...