Ses derniers messages sur les forums
Ben dans ta requete SQL qui selectionne les infos à afficher, il te faut selectionner le champs 'access'.
Si tu ne comprends pas cela, relis les cours :/
Est ce que tu selectionnes le champs access quand tu recupères tes données ?
Oula.
Je te suggère de relire les cours sur les insertions SQL et surtout de lire le manuel PHP sur les fonctions PHP que tu ne connais pas.
Parce que ce que tu nous montres la montre clairement tu ne comprends pas ce que tu fais, et en programmation rien n'est lié au hasard.
En effet :
- à quoi cela sert il de faire un
md5 sur ton suffixe ?
- est ce normal que le mot de passe de la personne disparaisse de ton INSERT SQL ?
- Pourquoi vouloir éviter que 2 personnes aient le même suffixe ? (un site peut avoir X modérateurs)
Mais bon, je suis en vacances, je n'ai pas envie de me prendre la tête, essaye ceci, cela peut fonctionner :
<?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 ('localhost', 'root', '');
mysql_select_db ('message', $base);
$sql = 'SELECT id FROM membre WHERE login="'.mysql_escape_string($_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 membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string($_POST['access']).'", "'.md5(mysql_escape_string($_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['id'] = $id;
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 stripslashes(htmlentities(trim($_POST['login']))); ?>"><br />
Access : <input type="text" name="access" value="<?php if (isset($_POST['access'])) echo stripslashes(htmlentities(trim($_POST['access']))); ?>"><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>
mon problémé a été résolue avec la fonction ut8_decode()
Tu ne l'as pas résolu : tu as changé le charset d'une chaine de caractères en la passant en ISO-8859-1. Donc ton application n'est plus UTF-8 "compliant".
A priori, tous les caractères que tu affiches (en langue française) sont disponibles dans le charset ISO-8859-1, donc tu "penses avoir résolu" le problème, mais il n'en est rien.
Imagine un caractère qui n'existe pas dans le charset ISO-8859-1. Que va faire ton utf8_decode ?
En gros, je pense comme LupusMic : il faut choisir un charset, savoir pourquoi on le choisit, et surtout s'y tenir ! Et ll ne faut surtout pas mélanger les charsets, c'est source de bug.
Le probléme est que quelque chose s'écrit à la ligne 5 du fichier relat.php alors que tu fais un session_start à la ligne 25 de inscription.php.
Or il ne faut rien afficher avant un session_start.
PS : ce n'est pas forcemment un echo en PHP que tu fais, ca peut être :
- une balise HTML
- un simple espace ou un retour chariot dans ton fichier
- une fonction PHP qui genere une erreur et qui donc affiche un truc
Il te faut modifier ta requete SQL pour y insérer ton "accès" que tu recupereras avec la variable $_POST['acces'].
Je t'ai donné la solution dans ton
autre sujet.
Il te faut créer un champ sql dans ta table membre pour y stocker ce suffixe.
Donc ca revient à créer un niveau de permission.
En effet, comment vas tu faire en base pour pouvoir dire que tel ou tel utilisateur est modérateur ? Tu vas modifier leur pseudo ? Si oui, comment feront ils pour se loguer (vu que leur pseudo aura changé) ?
Donc il te faut rajouter un champ dans ta table de membre, champ qui définiera le niveau d'admin de l'utilisateur.
Ensuite, pour ta messagerie, tu devras selectionner ce champ pour connaitre le niveau de permission de l'utilisateur et de l'afficher à coté de son pseudo.
Ou alors je n'ai pas compris ce que tu souhaitais faire, mais vu qu'il faut te tirer les vers du nez pour comprendre ce que tu veux faire, expliques toi un peu mieux :/
Et tu l'as fais ?
Non, parce que ca fonctionne.
Devant si peu de précision, cela va être compliqué de t'aider...
A priori, ton suffixe n'est pas un suffixe quelconque, mais c'est un suffixe lié à un niveau de permission de tes utilisateurs. Donc pour cela, il te suffit au moment ou tu affiches tes messages, de selectionner le niveau de permission de l'utilisateur et de l'afficher.
Si tu n'as pas encore fait de système de niveau de permission sur tes utilisateurs, c'est par cela qu'il faut commencer.