8711 sujets

Développement web côté serveur, CMS

Bonjour,

je n'arrive pas a utiliser les variable de session dans la view.
Je m'explique :

J'ai une table "utilisateurs" avec un champ "Login", "Password", "TypeCompte"
dans ma view, j'ai un menu avec un bouton de connexion.

lorsque je me connecte, je créer une variable de session.
Mais dans ma view, j'aimerais dire: (sur le menu)
si session(id) = false =>affiche le bouton de connexion
Après je voudrais jouer avec le type de compte (je schématise...)
si TypeCompte(sessionid)=1=>affiche un bouton "compte"
si TypeCompte(sessionid)=2=>affiche un bouton "admin"

voici un peu de code:
controller :
function connexion(){
		if($this->session->userdata('login'))
	    {
	      redirect('site');
	    }

		$this->form_validation->set_rules('login', 'Identifiant', 'trim|required|min_length[3]|xss_clean');
		$this->form_validation->set_rules('password', 'Mot de passe', 'trim|required| xss_clean');
		extract($_POST);
		if($this->form_validation->run()){
			$this->load->model('site_model');
			if($this->site_model->verif_admin($login,$password)){
				$data = array(
					'login'=>$login,
					'logged'=>TRUE
				);
				$this->session->set_userdata($data);
				redirect('site');
			}else {
				$data['error'] = 'Mauvais identifiants';
				$this->load->view('connexion',$data);
			}
		}else{
			$this->load->view('connexion');
		}	
	}

model:
function verif_admin($login,$password){
		$this->db->where('Login', $login);
		$this->db->where('Password', sha1($password));
		$query = $this->db->get('utilisateurs');
		if($query->num_rows()==1){
			return true;
		}
	}

view:
<div class="row menutop">
		<nav class="navbar navbar-inverse navbar-fixed-top menu-p" role="navigation">
			<div class="col-lg-12">
				<div class="navbar-collapse collapse">
					<ul id="menu" class="nav navbar-nav">
						<li id="home" data-menuanchor="Accueil" class="active"><a href="#Accueil">Accueil</a></li>
						<li data-menuanchor="Actualite"><a href="#Actualite">Actualité</a></li>
						<li data-menuanchor="Manifestation"><a href="#Manifestation">Manifestation</a></li>
						<li data-menuanchor="Partenaire"><a href="#Partenaire">Nos partenaires</a></li>
						<li data-menuanchor="Contact"><a href="#Contact">Contact</a></li>
						<?php
						$login=$this->session->userdata('login');
						if(isset($login)){
							$this->db->select('TypeCompte');
							$this->db->from('utilisateurs');
							$this->db->where('Login',$login);
							if($query->num_rows()>0){
								if($query->result()== 'joueur'){
									echo '<li><a href="<?php echo base_url();?>index.php/site/connexion">Prochain match</a></li>';
								}elseif ($query->result() == 'admin') {
									echo '<li><a href="<?php echo base_url();?>index.php/site/connexion">Prochain match</a></li>';
									echo '<li><a href="<?php echo base_url();?>index.php/site/connexion">administration</a></li>';
								}
							}
						}else{
							echo '<li><a href="<?php echo base_url();?>index.php/site/connexion">Connexion</a></li>';
						}	
						?>			
						
					</ul>
				</div>
			</div>
		</nav>
	</div>


Le monde mvc est récent pour moi, je comprend comment transmettre des variables sur mes view mais lorsque je fais pareille avec les session, mais je retourne sur ma loadpage du site sans que celle-ci charge quelque chose !!!!
Modifié par cid5420 (25 Aug 2014 - 17:29)