Problème de redirection mvc et php

Fermé
varley Messages postés 66 Date d'inscription samedi 19 janvier 2013 Statut Membre Dernière intervention 28 septembre 2018 - 28 avril 2016 à 17:26
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 28 avril 2016 à 23:09
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());
}
?>
A voir également:

2 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
28 avril 2016 à 17:52
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

.
0
varley Messages postés 66 Date d'inscription samedi 19 janvier 2013 Statut Membre Dernière intervention 28 septembre 2018 12
28 avril 2016 à 19:43
merci beaucou je viens d'ajouter les balises de code pourque le code soit plus lisible

https://codes-sources.commentcamarche.net/forum/affich-10064104-probleme-de-redirection-apres-sur-la-page-membre-apres-connexio#p10064104
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
28 avril 2016 à 23:09
Mais pourquoi ne pas l'avoir fait dans cette discussion directement ?
0