Espace membre avec différents droits d'accés

chezjeffrey Messages postés 13 Date d'inscription mardi 16 février 2010 Statut Membre Dernière intervention 17 mars 2010 - 9 mars 2010 à 17:11
kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 - 17 mars 2010 à 22:52
voila pour dans ma base de donnée mes membre ont un titre : soit utilisateur,chef de service , directeur ou technicien

il faudrait que sur ma page connexion suivant le titre de chacun cela renvoi aux page d'accueil propre au membre
ex si c'est un utilisateur cela doit le renvoyer sur la page index_utilisateur ,si c'est un directeur : sur la page index_directeur ... etc


j'espère que vous voyez mon problème et que vous pourrez m'aider

ps: j'ai n'ai personne autour de moi , le grand vide donc je souhaite de tout coeur que vous auriez la gentillesse de m'aider.

6 réponses

kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
9 mars 2010 à 17:36
CHALEUREUX BONJOUR A TOI AUSSI

j'espère que vous voyez mon problème

Non, pas vraiment. Où est le code que tu as tenté et où bloques tu ?

Un simple test sur le "titre" du membre suivi d'une redirection (header("Location :...")) ou d'un include devrait suffire, non ?


Kohntark -
0
chezjeffrey Messages postés 13 Date d'inscription mardi 16 février 2010 Statut Membre Dernière intervention 17 mars 2010
9 mars 2010 à 21:46
<?php
//------------------------ ouverture de session --------------------------

session_start();
$num_du_membre = 'SELECT num_membre FROM membre WHERE login=" '.mysql_escape_string($_POST[login]).'"';

//----------------------- connexion à la BD -----------------------------
if( @file_exists("C:/wamp/www/APA_CNRS/include/connect.php")){
include "C:/wamp/www/APA_CNRS/include/connect.php";

}

//--------------------------ouverture de la connexion mysql-----------
$bdCnx = connectionBD();


//
// $slogin=mysql_escape_string($_POST['login']);
// $smdp = mysql_escape_string($_POST['mdp']);

$_SESSION['login'] = mysql_escape_string($_POST['login']);

if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['mdp']) && !empty($_POST['mdp'])))
{
//-----------------------------test de connexion ---------------------------------------
$sql =$sql = 'SELECT count(*) FROM utilisateur WHERE login="'.mysql_escape_string($_POST['login']).'" AND mdp="'.mysql_escape_string(($_POST['mdp'])).'"';

$req = mysql_query($sql)or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$data = mysql_fetch_array($req);

mysql_free_result($req);
mysql_close();

// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: index_utilisateur.php');
exit();
}

// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}

// sinon, alors la, il y a un gros problème
else {
$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}



?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Interventions CNRS</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="style.css" rel="stylesheet" type="text/css" />
</head>





Interventions CNRS





<!-- mes liens vers d'autres pages en onglet -->



<li></li>
<li></li>
<li></li>
<li></li>







connexion



Pour pouvoir accéder au site ainsi qu'à ses fonctionnalitées veuillez commencer par vous connecter.


<form id="form_connexion" method="post" action="utilisateur\index_utilisateur.php">
entrez votre login:






votre mot de passe:



<label>

</label>









</form>







<center>
</center>






<!--le pied de page -->


| Copyright © JEFF est un ga cool|









</html>






mon probleme c'est que je vois pas trop comment m'y prendre pour la redirection.
0
chezjeffrey Messages postés 13 Date d'inscription mardi 16 février 2010 Statut Membre Dernière intervention 17 mars 2010
16 mars 2010 à 15:02
merci de m'aider
0
kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
16 mars 2010 à 21:07
Je ne vois pas où tu bloques.
Tu sembles avoir un paquet d'erreurs dans ton code !

Tu dis :
voila pour dans ma base de donnée mes membre ont un titre

Où se trouve ce titre (dans quelle table) ?

Il suffit sans doute de le retirer dans la requête qui va bien et ensuite de faire un header en relation avec ce titre à la place de ton
header('Location: index_utilisateur.php');


Cordialement,

Kohntark -
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chezjeffrey Messages postés 13 Date d'inscription mardi 16 février 2010 Statut Membre Dernière intervention 17 mars 2010
17 mars 2010 à 16:48
salut j'ai suivi tes conseil mon joyeux luron ca marche excepté que lorsque je fait mon test sur le titre du membre (requete sql) que je la met dans une variable :$redirection et bien la fonction header($redirection)
ne prend en compte que le resultat de mon dernier if.
(dans la partie test titre utilisateur)
le dernier if consiste a verifier que le titre du membre est chef de service du coup ca me renvoit tout le temps sur mon index_chef_de_service.php

pareil si je place le if de l'utilisateur en dernier ca me renvoit sur index_utilisateur.php

je vois pas trop ce qui merde en fait .



<?php
//--------------------------variable formulaire--------------------
$connexion = isset($_POST['connexion']) ? $_POST['connexion'] : '';
$login = isset($_POST['login']) ? $_POST['login'] : '';
$mdp= isset($_POST['mdp']) ? $_POST['mdp'] : '';



//--------------------------test connexion--------------------------
if($connexion !=1)
{ echo'votre mot de passe:
';
echo '<form action="'.$_SERVER['REQUEST_URI'].'" method="post">';
echo '';
echo '
<center>Votre login: <center></center>
';
echo '
<center>Votre mot de passe:</center>
<center></center>

';
echo '<center></center>';
echo '</form>';
}

if($connexion==1)
{
$q = mysql_query("SELECT *
FROM utilisateur
WHERE login='$login'
AND mdp='$mdp'");

$n = mysql_num_rows($q);
//---------------------------test sur le titre utilisateur------------------------
$test_titre=mysql_query("SELECT titre FROM utilisateur WHERE login='$login'");

if($test_titre="directeur"){
$redirection="directeur\index_directeur.php";
}
if($test_titre="utilisateur")
{
$redirection="utilisateur\index_utilisateur.php";
}
if($test_titre="technicien"){
$redirection="technicien\index_technicien.php";
}
if($test_titre="chef_de_service"){
$redirection="chef_de_service\index_chef_de_service.php";
}

if($n==1 AND $login!="" AND $mdp!="")
{
$_SESSION['login_session']= $login;
header("location:".$redirection.'');
//header("location: utilisateur\index_utilisateur.php ");
}

else{
echo'votre mot de passe:
';
echo '<form action="'.$_SERVER['REQUEST_URI'].'" method="post">';
echo '';
echo '
<center>Votre login: <center></center>
';
echo '
<center>Votre mot de passe:</center>
<center></center>

';
echo '<center></center>';
die(' information incorrectes');
}
}
?>
0
kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
17 mars 2010 à 22:52
Sans chercher, juste un truc qui me saute aux yeux :

if($test_titre="directeur"){ 

Tu fais là une affectation (=), pas une comparaison (==) !!

et puis $test_titre est égal à une ressource mySQL :
$test_titre=mysql_query("SELECT titre FROM utilisateur WHERE login='$login'");


Il faut faire :
$query = mysql_query("SELECT titre FROM utilisateur WHERE login='$login'");
$test_titre = mysql_fetch_row($query);

if($test_titre[0] == "directeur"){ 
//...


Il reste cependant des problèmes, dont de grave soucis de sécurité (il faut traiter toutes les données externes avec mysql_real_escape_string())

Cordialement,


Kohntark -
0