LA GLOBULE

Inscris le 25/09/2002 à 10:40
  • Site web
  • Nombre de sujets
    47
  • Nombre de messages
    8 345
  • Nombre de commentaires
    142
  • Nombre de news
    8 346
  • Niveau en PHP
    Excellent

Ses derniers messages sur les forums

LA GLOBULE
le 02/08/2009 à 22:20
Probleme d'inscription
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 :/
LA GLOBULE
le 02/08/2009 à 20:13
Probleme d'inscription
Est ce que tu selectionnes le champs access quand tu recupères tes données ?
LA GLOBULE
le 02/08/2009 à 13:55
Probleme d'inscription
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>
LA GLOBULE
le 02/08/2009 à 13:53
caractéres spéciaux
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.
LA GLOBULE
le 02/08/2009 à 13:45
Messagerie Interne
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
LA GLOBULE
le 01/08/2009 à 12:45
Probleme d'inscription
Il te faut modifier ta requete SQL pour y insérer ton "accès" que tu recupereras avec la variable $_POST['acces'].
LA GLOBULE
le 31/07/2009 à 23:17
Probleme d'inscription
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.
LA GLOBULE
le 31/07/2009 à 18:20
Demande pour la Messagerie interne
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 :/
LA GLOBULE
le 31/07/2009 à 13:11
recherche mysql
Et tu l'as fais ?

Non, parce que ca fonctionne.
LA GLOBULE
le 31/07/2009 à 09:13
Demande pour la Messagerie interne
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.
LoadingChargement en cours