Je poste ce sujet ici car je trouve pas quel endroit le poser
Me voilà dont aujourd'hui pas pour du code mais des informations qui pourrais m'être utile.
J'ai créer un espaces membres avec le système MVC qui s'organise de la sorte
- Page d'accueil qui contient un slideshow
- Page de connexion qui me permet de me connecter
- Page d'inscription qui me permet de m'inscrire
- Page de profil qui me permet de consulter et modifier mes données.
- Page de déconnexion qui me permet de me déconnecter.
- Système Multi-Langages
Donc, voici mes questions.
- Au moment de l'inscription je demande, le nom, prénom et adresse email de l'utilisateur et par la suite envoyer un mot de passe provisoire à l'utilisateur sur l'adresse e-mail renseigné, est-ce une bonne idée ?
Je vous remercie d'avance de vos précisions. Bonne soirée.
Portfolio en cours de construction :http://www.dev-neveer.esy.es/index.php?controleur=accueil&action=index
L'idée est pertinente dans le mesure où ce faisant, vous forcez la validation de l'adresse email.
Mais attention aux adresses email jetables.
Attention également à ce que votre message ne tombe pas directement dans les spams du destinataire (bien configurer le serveur mail). Il peut parfois ne jamais arriver à destination ! (Champs spf & Co)
Bonsoir, je vous remercie de vos réponses rapide. Donc comment pourrais-je construire ceci ? Le mot de passe provisoire doit être crypter en BCRYPT ? Donc comment le déchiffrer pour l'envoyer par email ?
Ps : J'avais oublié de préciser une question. Lorsque que je me connecte je redirige l'utilisateur sur sa page de profil. C'est mieux que je fasse apparaître son identifiant ou son nom et son prénom dans dans l'URL ? En sachant que j'utilise du Rewriting avec un fichier. Htaccess pour mes URL.
Identifiant : (série de chiffre à 8 caractères ex : 567843278 qui est générer lors de l'inscription).
Portfolio en cours de construction :http://www.dev-neveer.esy.es/index.php?controleur=accueil&action=index
A mon sens, si vous souhaitez envoyer le mot de passe par email, il faut le faire au moment de l'inscription. Après, ce serait trop tard compte tenu de l'irréversibilité de l'algorithme de hachage.
Par ailleurs, pour l'URL, vous pouvez utiliser nom + prénom mais pas uniquement. Les URL doivent être uniques. Comment feriez-vous si vous vous trouviez avec deux utilisateurs homonymes ?
Vous pourriez avoir une URL du genre : monsite.com/membres/439324242/claude-monet.html
> Le mot de passe provisoir n'est valide qu'une seule fois,
Juste sur ce point, je dirais plutôt qu'il faut que le mot de passe provisoire ne sert qu'à arriver sur une page où on est obligé de choisir un nouveau mot de passe. Parce qu'il arrive qu'on ferme la page de changement de mot de passe avant d'avoir changé le mdp, donc si le mot de passe envoyé par mail n'est valable qu'une fois c'est ballot.
> Le mot de passe provisoir n'est valide qu'une seule fois,
Juste sur ce point, je dirais plutôt qu'il faut que le mot de passe provisoire ne sert qu'à arriver sur une page où on est obligé de choisir un nouveau mot de passe. Parce qu'il arrive qu'on ferme la page de changement de mot de passe avant d'avoir changé le mdp, donc si le mot de passe envoyé par mail n'est valable qu'une fois c'est ballot.
En effet, c'était l'idée du truc. Ce qui n'empêche que ce mot de passe DOIT être changé lors de la première connexion !
Je suis aucun tuto, c'est juste un ancien code de mon ancien site.
J'ai créer une classe afin de faire ceci proprement. Mais j'ai plein, d'erreur.
D'abord, voici mes bouts de code.
(Mon message flash sera affiché juste au début du body, code :
<?php
$MessageFlash = new MessageFlash();
if ($MessageFlash->GetFlash('Warning')) {
$MessageFlash->GetFlash('Warning');
}
?>
Dans ma page de traitement, le message :
<?php
$MessageFlash = new MessageFlash();
$MessageFlash->Flash('Warning', "Message de test");
?>
Ma class :
<?php
class MessageFlash
{
public function Flash($type, $message) {
if (!isset($_SESSION['flash'])) {
$_SESSION['flash'] = array();
$_SESSION['flash']['uri'] = $_SERVER['REQUEST_URI'];
}
$_SESSION['flash'][$type] .= $message;
}
public function UnsetFlash() {
if(isset($_SESSION['flash'])) {
if($_SERVER['REQUEST_URI'] != $_SESSION['flash']['uri']) {
$_SESSION['flash'] = NULL;
}
}
}
public function GetFlash($type) {
if (isset($_SESSION['flash'])) {
echo $_SESSION['flash'][$type];
} else {
return $_SESSION['flash'] = '';
}
}
}
Mes erreurs sur ma page d'accueil :
Warning: Illegal string offset 'Warning' in C:\xampp\htdocs\Mvc_Final\Library\_Common\SessionFlash.Class.php on line 24
Notice: Uninitialized string offset: 0 in C:\xampp\htdocs\Mvc_Final\Library\_Common\SessionFlash.Class.php on line 24
Mes erreurs lorsque je me connecte :
Warning: Illegal string offset 'Warning' in C:\xampp\htdocs\Mvc_Final\Library\_Common\SessionFlash.Class.php on line 11
Fatal error: Uncaught Error: Cannot use assign-op operators with string offsets in C:\xampp\htdocs\Mvc_Final\Library\_Common\SessionFlash.Class.php:11 Stack trace: #0 C:\xampp\htdocs\Mvc_Final\Library\_Membres\TraitementMembres.Class.php(49): MessageFlash->Flash('Warning', 'Message de test') #1 C:\xampp\htdocs\Mvc_Final\Control\_Membres\_Connexion\Connexion.php(76): TraitementMembres->ConnexionMembre('...', '...') #2 C:\xampp\htdocs\Mvc_Final\index.php(44): include('C:\\xampp\\htdocs...') #3 {main} thrown in C:\xampp\htdocs\Mvc_Final\Library\_Common\SessionFlash.Class.php on line 11
Si cela peut vous inspirer mdrr
Portfolio en cours de construction :http://www.dev-neveer.esy.es/index.php?controleur=accueil&action=index
L'erreur est claire : votre session ne contient aucune clé "Warning".
L'enregistrement de votre flash ne fonctionne pas du tout.
Essayez de semer des die() à chaque étape de votre processus pour débogguer.
- Edité par Maels1991 22 septembre 2017 à 10:47:03
Informations
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.