Bonjour à tous !
Je suis en BTS Système Numérique option Informatique et Réseaux (SNIR), et je dois réaliser un site web avec le framework CakePHP 2.5.5 avec comme serveur web Wampp et ainsi PHPmyadmin.
Le but de mon site est assez simple :
Crée un site de consultation de compte pour une cantine avec connexion et profils utilisateurs.
En voici la Base de Données : http://img15.hostingpics.net/pics/852721BDD.png
Le principe est simple :
1) Je rentre manuellement les données dans les tables "Eleves" et "Professeurs".
2) Je dois m'inscrire sur le site en créant un login (:username) et mot de passe (:password)
3) Je dois sélectionner par l'intermédiaire de cases à cocher si je cherche un Eleve ou un Personnels
4) Je dois également indiquer l'adresse mail (et avec une requête vérifier si dans la table selectionner au dessus elle est existante, et si oui remplir la case 'Eleves_id_eleves' ou 'Personnelles_id_personelles' avec l'id à laquelle appartient d'adresse en question) et stocker le tout dans la table Users
5) Une fois effectué le compte est inscrit
6) Et il peut à présent se connecté avec les identifiants qu'il à crée juste avant
7) Quand il se connecte il arrive sur une page de profil ou toute les informations propre à lui même de la table Eleves/Professeurs sont afficher
Rien de très compliquer hein ^^'
Ce qu'ai déjà fait :
Fonction d'inscription au site dans le controller :
function signup(){
$user_id = $this->Auth->user('id');
if(!$user_id){
if($this->request->is('post')){
$d = $this->request->data;
$d['User']['id'] = null;
if(!empty($d['User']['password'])){
$d['User']['password'] = Security::hash($d['User']['password'], null, true);
}
if($this->User->save($d, true, array('username', 'password'))){
$this->Session->setFlash("Votre compte à bien été crée");
}
else{
$this->Session->setFlash("Problème liée à la création du compte");
debug();
}
}
}
else{
$this->redirect('edit');
die();
}
}
Fichier .ctp d'inscription :
<div id="signup">
<h2>S'enregistrer</h2>
<br>
<div id="sidenfifier">
<p>Pour pouvoir s'enregistrer, veuillez-vous munir de votre numéro de carte, saisir un nom utilisateur (Login) ainsi qu'un mot de passe.<br><br>
L'adresse email de l'ENT se compose de prénom.nom@ent-lycee.fr | L'adresse email académique se compose de prénom.nom@ac-reims.fr<br></p>
<?php echo $this->Form->create('User'); ?>
<?php echo $this->Form->input('username', array('label'=> "Login : ")); ?>
<?php echo $this->Form->input('password', array('label'=> "Mot de passe :")); ?>
<?php echo $this->Form->input('Eleves_id_eleves', array('label'=> "identifiant :")); ?><br>
<?php echo $this->Form->end('Enregistrer'); ?>
</div></div>
Et je ne sais pas si ça peut servir, mais voici mon modèle :
<?php
class User extends AppModel{
public $validate = array(
'username' => array(
array(
'rule' => 'alphanumeric',
'required' => true,
'allowEmpty' => false,
'message' => 'Votre pseudo n\'est pas valide'
),
array(
'rule' => 'IsUnique',
'message' => 'Ce pseudo est déjà prit !'
)
),
'password' => array(
'rule' => 'notEmpty',
'message' => 'Entrer un mot de passe !',
'allowEmpty' => false
),
'mail' => array(
'rule' => 'IsUnique',
'message' => 'Cette email existe déjà !'
)
);
} ?>
Le problème que je rencontre :
Je ne sait pas comment faire la partie N°3 et N°4
J'ai regardé la vidéo de Grafikart sur les associations, je ne vois pas comment dire à CakePHP que mes tables sont relier, et donc d'effectuer les requêtes que j'ai besoin avec le mail et les id_eleves/personnels
Si vous pouvez m'aidé, ou si vous avez des tutos, des conseils, ou bien tout autre chose je suis preneur ! :)
(Je ne demande pas une répoonse de code toute faite, mais des indications, ou bien des bouts de code pour avancer..)
Un GRAND MERCI d'avance à celui qui m'aidera à avancer !