Problème de redirection mvc et php
                    
        
     
             
                    varley
    
        
    
                    Messages postés
            
                
     
             
            77
        
            
                                    Statut
            Membre
                    
                -
                                     
jordane45 Messages postés 40050 Statut Modérateur -
        jordane45 Messages postés 40050 Statut Modérateur -
        Bonjour, 
je suis entrain d'implémenter le mvc ,après avoir fait toutes les vérifications dans les controlleurs la redirection vers la page membre ne marche pas ma vue membre s'affiche dans la vue connexion quelqu'un saura t'il m'aider je vous remercie d'avance voici mon code:
mon fichier index.php
<?php
session_start();
include('modeles/bdd.php');
if(!empty($_GET['page']) AND is_file('controleurs/'.$_GET['page'].'php')){
include('controleurs/'.$_GET['page'].'php');
}else{
//redirection vers la page d'acceuil
include('controleurs/register.php');
}
?>
mon fichier register.php qui est un controleur pour inscrire l'utilisateur
<?php
//======================================================Traitement du formulaire=================================================
//appel du controleur connexion.php
include('modeles/bdd.php');
include('modeles/register.php');
include('vues/register.php');
include(dirname(__FILE__).'/../controleurs/connexion.php');
if(isset($_POST['submit'])){
$nom=htmlentities(trim($_POST['nom']));
$prenom=htmlentities(trim($_POST['prenom']));
$password=htmlentities(trim($_POST['password']));
$confpassword=htmlentities(trim($_POST['confpassword']));
$email=htmlentities(trim($_POST['email']));
$age=htmlentities(trim($_POST['age']));
$pays=htmlentities(trim($_POST['pays']));
if(empty($nom)){
$errors[]="Veuillez saisir votre nom";
	   	
}
if(empty($prenom)){
$errors[]="Veuillez saisir votre prénom";
}
if(empty($password)){
$errors[]="Veuillez saisir votre mon de passe";
	  
}
if($password!=$confpassword){
$errors[]="Votre mot de passe nest pas identique";
	   
}
if(!filter_var($email,FILTER_VALIDATE_EMAIL)){
$errors[]="Votre email nest pas valide";
	   
}
if(empty($age)){
$errors[]="Veuillez choisir votre âge";
	   
}
if(empty($pays)){
$errors[]="Veuillez choisir votre pays";
	    
}
	   
// if(pseudo_existe($nom)==1){
// $errors[]="le pseudo nest pas disponible";
//}
if(email_existe($connect,$email)==1){
$errors[]="Cette email existe deja"; //verifier ne marche pas
}
if(!empty($errors)){
foreach($errors as $error){
echo $error;
}
}else{
register($connect,$nom,$prenom,$password,$email,$age,$pays);
// die('inscription termine');
//die('inscription terminé');
}
		
}
?>
voici la vue register.php pour s'inscrire et se connecter
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Page d'inscription</title>
<!--css bootstrap-->
<link rel="stylesheet" href="css/bootstrap-theme.min.css">
<link rel="stylesheet" href="css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<!-- responsive -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div class="container-fluid ">
    
<div class="row-fluid">
<div class="span4 offset4">
<form class="" id="register" method="POST" action="">
<div class=" control-group">
<label class="control-label" for='Nom'>Nom</label>
<div class="controls">
<input type="text" placeholder="Entrez votre nom" id="nom" name="nom" class="input-medium"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for='prenom'>Prénom</label>
<div class="controls">
<input type="text" placeholder="Entrez votre prénom" id="prenom" name="prenom"class="input-medium"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for='Password'> votre mot de passe</label>
<div class="controls">
<input type="password" placeholder="Entrez votre mot de passe" id="password" name="password" class="input-medium"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for='repeatPassword'> Retapez votre mot de passe</label>
<div class="controls">
<input type="password" placeholder="Retapez votre nom" id="confpassword" name="confpassword" class="input-medium"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for='email'>Email</label>
<div class="controls">
<input type="text" placeholder="Entrez votre Email" id="email" name="email" class="input-medium"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for='age'>age</label>
<select class ="form-control " name="age">
<option value=6>6 </option>
<option >7 ans</option >
<option >8 ans</option >
           
</select>
</div>
<div class="control-group">
<label class="control-label" for='pays'>Pays</label>
<select class ="form-control " name="pays">
<option value="Afghanistan">Afghanistan</option >
<option>Option 2</option >
        
</select >
</div>
<div class="form-actions ">
<button type="submit" class="btn btn-primary" name="submit">Enregistrez Vous</button>
</div>
</form>
</div>
<div class="pull-right span4">
<form class="" method="POST" action="">
<div class="control-group">
<label class="control-label " for='nom'>Nom</label>
<div class="controls ">
<input type="text" id="nom" name="nom" class="input-medium">
</div>
</div>
<div class="control-group">
<label class="control-label " for='Password'> votre mot de passe</label>
<div class="controls">
<input type="password" id="password" name="password" class="input-medium">
</div>
</div>
<div class="form-actions">
<button type="submit" class="btn btn-primary" name="ok">Connexion</button>
</div>
<div class="control-group">
<div class="controls">
<input type="checkbox" id="checkbox" class="input-medium"><label class="control-label" for='Password'>Se souvenir de moi</label><br/>
<a href="#">mot de passe oublié</a>
</div>
</div>
</form>
</div>
</div>
<!-- connexion des utilisateurs-->
<!-- </div>-->
    
</div>
    
</body>
</html>
voici mon controleur connexion.php
<?php
include('modeles/bdd.php');
include('modeles/connexion.php');
if(isset($_POST['ok'])){
  
 
if(empty($_POST['nom'])){
$errors[]='veuillez saisir votre nom';
}
if(empty($_POST['password'])){
$errors[]='veuillez saisir votre password';
}
if(!empty($errors)){
foreach($errors as $error){
echo $error;
}
}else{
if(combinaison_pseudo_password($connect,$_POST['nom'],$_POST['password'])==0){
echo"votre email et password est incorrecte";
}
else{
$_SESSION['nom']=$_POST['nom'];
include('/membre.php');
}
}
}
?>
controleur membre.php
<?php
include('modeles/membre.php');
$infos=infos_membre_connecte($connect);
include('vues/membre.php');
?>
vue membre.php
<html>
<body>
<?php
foreach ($infos as $info) {
echo "Bienvenue".$info['nom'];
}
?>
</body>
</html>
mes modeles
register.php
<?php
//fonction inscription utilisateur
function register($connect,$nom,$prenom,$password,$email,$age,$pays){
$password=sha1($password);
$query="INSERT INTO users(nom,prenom,password,email,age,pays)
VALUES(:nom,:prenom,:password,:email,:age,:pays)";
$res=$connect->prepare($query);
$res->execute(array(":nom" =>$nom,":prenom" =>$prenom,":password"=>$password,":email"=>$email,":age"=>$age,":pays"=>$pays));
}
//verification si l'adresse email existe
function email_existe($connect,$email){
$query=$connect->prepare("SELECT COUNT(id) FROM users WHERE email=?");
$query->execute(array($email));
$data=$query->fetchColumn(0);
return $data;
}
?>
connexion.php
<?php
//fonction combinaison pseudo et password
function combinaison_pseudo_password($connect,$nom,$password)
{
$nom=htmlentities(trim($_POST['nom']));
$password=htmlentities(trim($_POST['password']));
//mot de passe hasher en sha1
$password=sha1($password);
$result= $connect->prepare("SELECT nom,password FROM users WHERE nom=? AND password=?");
$result->execute(array($nom,$password));
 
$rows= $result->rowCount();
 
return $rows;
}
?>
membrephp
<?php
//fonction qui va recuperer les infos de l'utilisateur connecté
function infos_membre_connecte($connect){
$infos=array();
//variable global session
$nom=$_SESSION['nom'];
$query=$connect->prepare("SELECT * FROM users where nom=?") ;
$query->execute(array($nom));
while ($row=$query->fetch(PDO::FETCH_ASSOC)) {
//on stock nos info dans dans le tableau créé
$infos[]=$row;
}
return $infos;
//}
}
?>
bdd.php
<?php
try{
$connect=new PDO('mysql:host=localhost;dbname=projet','root','');
$connect-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch(Exception $e){
die('Erreur:'.$e->getMessage());
}
?>
                
            
                
    
    
    
        je suis entrain d'implémenter le mvc ,après avoir fait toutes les vérifications dans les controlleurs la redirection vers la page membre ne marche pas ma vue membre s'affiche dans la vue connexion quelqu'un saura t'il m'aider je vous remercie d'avance voici mon code:
mon fichier index.php
<?php
session_start();
include('modeles/bdd.php');
if(!empty($_GET['page']) AND is_file('controleurs/'.$_GET['page'].'php')){
include('controleurs/'.$_GET['page'].'php');
}else{
//redirection vers la page d'acceuil
include('controleurs/register.php');
}
?>
mon fichier register.php qui est un controleur pour inscrire l'utilisateur
<?php
//======================================================Traitement du formulaire=================================================
//appel du controleur connexion.php
include('modeles/bdd.php');
include('modeles/register.php');
include('vues/register.php');
include(dirname(__FILE__).'/../controleurs/connexion.php');
if(isset($_POST['submit'])){
$nom=htmlentities(trim($_POST['nom']));
$prenom=htmlentities(trim($_POST['prenom']));
$password=htmlentities(trim($_POST['password']));
$confpassword=htmlentities(trim($_POST['confpassword']));
$email=htmlentities(trim($_POST['email']));
$age=htmlentities(trim($_POST['age']));
$pays=htmlentities(trim($_POST['pays']));
if(empty($nom)){
$errors[]="Veuillez saisir votre nom";
}
if(empty($prenom)){
$errors[]="Veuillez saisir votre prénom";
}
if(empty($password)){
$errors[]="Veuillez saisir votre mon de passe";
}
if($password!=$confpassword){
$errors[]="Votre mot de passe nest pas identique";
}
if(!filter_var($email,FILTER_VALIDATE_EMAIL)){
$errors[]="Votre email nest pas valide";
}
if(empty($age)){
$errors[]="Veuillez choisir votre âge";
}
if(empty($pays)){
$errors[]="Veuillez choisir votre pays";
}
// if(pseudo_existe($nom)==1){
// $errors[]="le pseudo nest pas disponible";
//}
if(email_existe($connect,$email)==1){
$errors[]="Cette email existe deja"; //verifier ne marche pas
}
if(!empty($errors)){
foreach($errors as $error){
echo $error;
}
}else{
register($connect,$nom,$prenom,$password,$email,$age,$pays);
// die('inscription termine');
//die('inscription terminé');
}
}
?>
voici la vue register.php pour s'inscrire et se connecter
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Page d'inscription</title>
<!--css bootstrap-->
<link rel="stylesheet" href="css/bootstrap-theme.min.css">
<link rel="stylesheet" href="css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<!-- responsive -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div class="container-fluid ">
<div class="row-fluid">
<div class="span4 offset4">
<form class="" id="register" method="POST" action="">
<div class=" control-group">
<label class="control-label" for='Nom'>Nom</label>
<div class="controls">
<input type="text" placeholder="Entrez votre nom" id="nom" name="nom" class="input-medium"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for='prenom'>Prénom</label>
<div class="controls">
<input type="text" placeholder="Entrez votre prénom" id="prenom" name="prenom"class="input-medium"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for='Password'> votre mot de passe</label>
<div class="controls">
<input type="password" placeholder="Entrez votre mot de passe" id="password" name="password" class="input-medium"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for='repeatPassword'> Retapez votre mot de passe</label>
<div class="controls">
<input type="password" placeholder="Retapez votre nom" id="confpassword" name="confpassword" class="input-medium"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for='email'>Email</label>
<div class="controls">
<input type="text" placeholder="Entrez votre Email" id="email" name="email" class="input-medium"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for='age'>age</label>
<select class ="form-control " name="age">
<option value=6>6 </option>
<option >7 ans</option >
<option >8 ans</option >
</select>
</div>
<div class="control-group">
<label class="control-label" for='pays'>Pays</label>
<select class ="form-control " name="pays">
<option value="Afghanistan">Afghanistan</option >
<option>Option 2</option >
</select >
</div>
<div class="form-actions ">
<button type="submit" class="btn btn-primary" name="submit">Enregistrez Vous</button>
</div>
</form>
</div>
<div class="pull-right span4">
<form class="" method="POST" action="">
<div class="control-group">
<label class="control-label " for='nom'>Nom</label>
<div class="controls ">
<input type="text" id="nom" name="nom" class="input-medium">
</div>
</div>
<div class="control-group">
<label class="control-label " for='Password'> votre mot de passe</label>
<div class="controls">
<input type="password" id="password" name="password" class="input-medium">
</div>
</div>
<div class="form-actions">
<button type="submit" class="btn btn-primary" name="ok">Connexion</button>
</div>
<div class="control-group">
<div class="controls">
<input type="checkbox" id="checkbox" class="input-medium"><label class="control-label" for='Password'>Se souvenir de moi</label><br/>
<a href="#">mot de passe oublié</a>
</div>
</div>
</form>
</div>
</div>
<!-- connexion des utilisateurs-->
<!-- </div>-->
</div>
</body>
</html>
voici mon controleur connexion.php
<?php
include('modeles/bdd.php');
include('modeles/connexion.php');
if(isset($_POST['ok'])){
if(empty($_POST['nom'])){
$errors[]='veuillez saisir votre nom';
}
if(empty($_POST['password'])){
$errors[]='veuillez saisir votre password';
}
if(!empty($errors)){
foreach($errors as $error){
echo $error;
}
}else{
if(combinaison_pseudo_password($connect,$_POST['nom'],$_POST['password'])==0){
echo"votre email et password est incorrecte";
}
else{
$_SESSION['nom']=$_POST['nom'];
include('/membre.php');
}
}
}
?>
controleur membre.php
<?php
include('modeles/membre.php');
$infos=infos_membre_connecte($connect);
include('vues/membre.php');
?>
vue membre.php
<html>
<body>
<?php
foreach ($infos as $info) {
echo "Bienvenue".$info['nom'];
}
?>
</body>
</html>
mes modeles
register.php
<?php
//fonction inscription utilisateur
function register($connect,$nom,$prenom,$password,$email,$age,$pays){
$password=sha1($password);
$query="INSERT INTO users(nom,prenom,password,email,age,pays)
VALUES(:nom,:prenom,:password,:email,:age,:pays)";
$res=$connect->prepare($query);
$res->execute(array(":nom" =>$nom,":prenom" =>$prenom,":password"=>$password,":email"=>$email,":age"=>$age,":pays"=>$pays));
}
//verification si l'adresse email existe
function email_existe($connect,$email){
$query=$connect->prepare("SELECT COUNT(id) FROM users WHERE email=?");
$query->execute(array($email));
$data=$query->fetchColumn(0);
return $data;
}
?>
connexion.php
<?php
//fonction combinaison pseudo et password
function combinaison_pseudo_password($connect,$nom,$password)
{
$nom=htmlentities(trim($_POST['nom']));
$password=htmlentities(trim($_POST['password']));
//mot de passe hasher en sha1
$password=sha1($password);
$result= $connect->prepare("SELECT nom,password FROM users WHERE nom=? AND password=?");
$result->execute(array($nom,$password));
$rows= $result->rowCount();
return $rows;
}
?>
membrephp
<?php
//fonction qui va recuperer les infos de l'utilisateur connecté
function infos_membre_connecte($connect){
$infos=array();
//variable global session
$nom=$_SESSION['nom'];
$query=$connect->prepare("SELECT * FROM users where nom=?") ;
$query->execute(array($nom));
while ($row=$query->fetch(PDO::FETCH_ASSOC)) {
//on stock nos info dans dans le tableau créé
$infos[]=$row;
}
return $infos;
//}
}
?>
bdd.php
<?php
try{
$connect=new PDO('mysql:host=localhost;dbname=projet','root','');
$connect-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch(Exception $e){
die('Erreur:'.$e->getMessage());
}
?>
        A voir également:         
- Problème de redirection mvc et php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Avertissement de redirection - Forum Virus
- Php alert ✓ - Forum PHP
- Redirection de mail - Guide
2 réponses
                        
                    Bonjour,
Commence par ajouter les BALISES DE CODE s'il te plait.
Car là .. c'est illisible.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
 
.
 
                
                
    
                Commence par ajouter les BALISES DE CODE s'il te plait.
Car là .. c'est illisible.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
.
