ESPACE MEMBRE

poutch0088 - 31 oct. 2012 à 11:28
 coco - 19 mai 2019 à 14:39
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/54699-espace-membre

Un grand merci a vous !!!
Bravo
moi non plus tout les lien marche pas
oligon69 Messages postés 4 Date d'inscription lundi 21 mars 2016 Statut Membre Dernière intervention 24 mars 2016
22 mars 2016 à 10:40
Bonjour
est ce que ce fichier peut être utilisé comme il est sur un site excitant ?
Merci de me répondre
Olivier
cs_arta Messages postés 98 Date d'inscription dimanche 22 janvier 2006 Statut Membre Dernière intervention 24 juillet 2013
26 avril 2013 à 06:24
Bonjour

Le lien http://www.partage-facile.com/0KS7GC4NJI/design. zip.html va dans le mur.
Autant l'enlever.
Bonjour HachemIdev,

je vous invite a allez voir le dernier espace membre ici

http://www.phpcs.com/auteur/JEJESCRIPT/2268823.aspx
Bonjour svp j'ai pu avoir le fichier de design il m'affiche page introuvable?????!!!!!!!!!!!
Reponse SVP
Bonsoir a tous,

La nouvelle version de l'espace membre est en cours, je pense utiliser PDO pour les connexion bdd, a votre avis est-ce une bonne idée ?
Hello a tous,

La version trois de l'espace membre est en cours, je pense passer sur une connexion à la base de donnée avec PDO est-ce vraiment mieux a votre avis ?

A bientôt
merci DTOKARZ
Pour quelqu'un qui se dit débutant, c'est quand même hyper propre, ce code.
Je l'ai installé et ça tourne nickel. Je comprenais pas au début pourquoi j'avais une croix rouge à l'install sur le "fichier base", mais en fait j'avais pas chmoddé comme il fallait sur mon dossier.

En tout cas bien sympa, je pense que je réutiliserai ton espace membre dans le futur :)
Préparation de la version 3 en cours,

J'ai trouvé pas mal d'erreur dans la façon de faire, pour que ce soit plus stable une version 3 va bientôt arriver.

Cordialement,

JS
merci pour ton aide JADU
je suis désolé mais il y aura trop de changement à faire, tout est fait en php 5 avec mysqli.

A moins que quelqu'un est une idée.
jadu Messages postés 217 Date d'inscription mercredi 26 juillet 2006 Statut Membre Dernière intervention 16 août 2018
9 nov. 2012 à 19:53
NAN !!!
tu as raison DIANMELO !
avec FREE le mysqli ne fonctionne pas bien du tout !

ce que j'avais en mysqli pour un site ailleurs, ben ... je l'ai tout repris en mysql !!!

Mais c'est pas si long à faire !
jadu Messages postés 217 Date d'inscription mercredi 26 juillet 2006 Statut Membre Dernière intervention 16 août 2018
9 nov. 2012 à 19:47
J'ai oublié de mettre le code qui doit être dans chaque page de contrôle d'accès ( là où on aura mis un cpatcha)
le voici :
<?php
session_start(); // On active la session ici, car on a besoin de ces informations.
// On contrôle d'abord pour voir si cette demande est humaine !!!!
if(empty($_POST['captcha']))
{
echo "Le captcha n'est pas saisi !! l'anti robot a fonctionné !
";
// on renvoi à la page de login !!!
include('login.php');
exit();
}
else
{
if($_POST['captcha'] != $_SESSION['captcha'])
{
echo 'Contrôle de votre humanité mal saisi ou vous êtes un robot !';
include ('login.php');
exit();
}
}
// *********************************************************************

Bon, même avec ce petit code en plus, ce n'est toujours pas une usine à gaz ! Si ?
Pour l'instant je la teste en local ( avec Wampserveur ) mais je compte basculer sur free ensuite !
$$ DIANMELO !
j'ai déjà un truc qui marche avec MySqli chez eux ! je vais vérifier !
je vais voir pour te donner un code de remplacement, cela t'aidera j'espère
Fatal error: Class 'mysqli' not found in /mnt/168/sda/3/1/.../test.php on line 1
J'ai aussi testé avec <?php phpinfo(); ?> pas de mysqli
sur une page php entre ce code :

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if ($mysqli->connect_errno) {
printf("Échec de la connexion : %s\n", mysqli->connect_error);
exit();
}

remplace "localhost", "my_user", "my_password", "world", par tes identifaints de connexion et le nom d'une bdd.

Comme ça on saura si c'est un soucis avec mysqli.
J'ai une base de donnée free, j'ai aussi un .htaccess , la version est PHP Version 5.1.3RC4-dev.
Je suis pratiquement persuadé pour déjà avoir rencontré ce problème que c'est la class mysqli qui n'est pas reconnue chez free.
Le message d'erreur est: Fatal error: Class 'mysqli' not found in /mnt/168/sda/3/1/..../install/creer_config.php on line 20
Merci de votre aide
Après quelques recherches la version de PHP installée par défaut chez free est la 4.4.3.

Pour passer à la version php5, il te suffis de créer un fichier ".htaccess", dedans tu note "php 5" et tu le met à la racine.
Et hop tu passe en php 5.
DIANMELO, tu peux connaitre ta version php en faisant ceci dans une page php

<?php phpinfo(); ?>
DIANMELO, personnellement je n'ai jamais utilisé free, donc j'ai Trois questions :

1)-> Est-ce que tu as le possibilité de créer une base de données ?
2)-> Le serveur accepte le php 5 ?

3>-> Si oui aux 2 premières quel est le problème, je peux peut être aider.

Cordialement,

JejeScript.
A la vue des commentaires cette source me parait très intéressante, dommage qu'elle ne soit pas utilisable chez Free, sans doute à cause de msqli ?
Cordialement
Bonjour,

Le CAPTCHA, sera présent dans la prochaine version, qui se fera bientôt.
Pour le moment je suis sur un autre projet.

Merci à vous tous, n'hésitez pas à me poser des questions si vous rencontrez un soucis, et a me donner vos idées d'amélioration pour la prochaine version.

Amicalement,

JejeScript.
jadu Messages postés 217 Date d'inscription mercredi 26 juillet 2006 Statut Membre Dernière intervention 16 août 2018
8 nov. 2012 à 22:36
Ce n'est pas un captchat qui va transformer ce magnifique travail en usine à gaz !
Et en plus c'est une bonne garantie anti-spam et anti-nuisibles de tous poils !

dans un répertoire 'captchat' vous placez :
<?php
function captchaMath()
{
$n1 = mt_rand(0,10);
$n2 = mt_rand(0,10);
$nbrFr = array('zero','un','deux','trois','quatre','cinq','six','sept','huit','neuf','dix');
$resultat = $n1 + $n2;
$phrase = $nbrFr[$n1] .' plus '.$nbrFr[$n2];

return array($resultat, $phrase);
}

function captcha()
{
list($resultat, $phrase) = captchaMath();
$_SESSION['captcha'] = $resultat;
return $phrase;
}
?>

et sur vos formulaires vous placez :
<!-- ********************************* CAPTCHA **************************** -->
<!-- On affiche l'image générée par notre script -->
<?php require ('../captcha/captcha.php'); ?>
Code de vérification de votre réelle humanité

( Simplement pour m'assurer que vous n'êtes ni un clone, ni un robot ! )

Calculez et donnez la réponse en chiffres

<label for="captcha">Combien font <?php echo captcha(); ?></label> :

</h6>
<!-- **************************** OUF ce CAPTCHA est fini ! *************** -->

vous adaptez les écritures à votre style et c'est tout !
Voyez vous même , ce n'est pas une usine à gaz !
cs_arta Messages postés 98 Date d'inscription dimanche 22 janvier 2006 Statut Membre Dernière intervention 24 juillet 2013
8 nov. 2012 à 13:36
RE

Oui éventuellement, mais attention de pas faire une usine à gaz.
MacGaliver Messages postés 146 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 21 juillet 2013 3
8 nov. 2012 à 12:26
Je n'est pas encore testé, mais ça à l'air plutôt bien foutu.
Juste une idée si ca peux vous aider à perfectionner encore plus: rajouter un captcha (anti-spam).

Bonne continuation...

Cordialement.
cs_arta Messages postés 98 Date d'inscription dimanche 22 janvier 2006 Statut Membre Dernière intervention 24 juillet 2013
8 nov. 2012 à 11:23
RE

Je te remercie.
Je vais prendre celui-ci déjà, car c'est un simple espace-membre que je désire.
Bonjour ARTA,

Oui les modifications principales sont terminée.
Il y a des évolutions prévues : mailing membre, chat, etc..., j'ai bien envie de me pencher sur un module de création de pages pour facilite l'ajout de page membre à l'administrateur.

Je pense que je le mettrais dans un nouveau post en évolution de celui-ci.
cs_arta Messages postés 98 Date d'inscription dimanche 22 janvier 2006 Statut Membre Dernière intervention 24 juillet 2013
8 nov. 2012 à 09:13
Bonjour JejeScript

Juste savoir si tu as terminé tes modifs ?
giftofgod Messages postés 4 Date d'inscription mardi 16 novembre 2010 Statut Membre Dernière intervention 8 novembre 2012
8 nov. 2012 à 03:10
Bonjour JeJescript,

Bravo pour ce formidable travail.
Pourquoi essayer supprimer des caractères, puis vérifier que c'est un numérique puis valider que c'est un numérique si on peut tout de suite transformer en numérique?

EMILIA123 réponse a ta question ci-dessus :

je supprime les caractères car les id sont mélanger dans une chaine de caractère texte, ensuite je demande une validation que l'id ne dépasse pas 11 chiffres limite de la bdd, sachant qu'il y a peux de chance qu'on l'utilise réellement.
C'est pour l'idée.
j'ai remarqué également que ma fonction date me retourne une date en anglais en local alors qu'en ligne cela fonctionne très bien et me retourne une date en français, si quelqu'un a une explication je suis preneur.
Quelques correction dans la MAJ ont été faites.

je doit travailler sur les "===" ça me pose quand même pas mal de problèmes, et je ne comprend vraiment pas pourquoi, il va me falloir un peu de temps de ce côté là je pense
effectivement le $nb strle($var) ne sert a rien dans cette fonction, ce qui me permettrai de simplifier celle-ci => prochaine MAJ
en plus j'ai remarqué une erreur a la ligne 196:
$message .= "Voici votre lien d'activation pour l'espace membre ".NOM_SITE." : ".URL."activation.php?securite=".$this->jeton_activation($id).". ";
il faut la remplacer '$this->' par 'Connexion::' comme suit :
$message .= "Voici votre lien d'activation pour l'espace membre ".NOM_SITE." : ".URL."activation.php?securite=".Connexion::jeton_activation($id).". ";
ce sera fait dans la prochaine MAJ.
cs_emilia123 Messages postés 122 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 5 janvier 2009
7 nov. 2012 à 09:43
En effet, sur les serveurs 32 bits, la valeur du intval est limité à moins de 11 caractères... c'est pourquoi j'avais marqué "ne fait pas beaucoup mieux"
En version 64 bits, la limite est beaucoups plus élevée.
Mais est ce que ces valeurs élevées vont être utilisées?
De plus il est toujours possible de vérifier la taille de la variable avec un strlen.

Ca me permet de voir qu'il y a un petit problème de logique dans le code de la vérification numérique :
$options = array(
'options' => array(
'min_range' => 1,
'max_range' => 11,
)
);
--> $nb = strlen($var);
--> if(filter_var($nb, FILTER_VALIDATE_INT, $options) !== FALSE) {
return $var;
}
$nb sera obligatoirement un numérique, il ne sert donc à rien de vérifier avec un filter_var et un FILTER_VALIDATE_INT :)
Il faudrait faire le FILTER_VALIDATE_INT sur la variable $var et non sur la longueur de la chaine.
cs_emilia123 Messages postés 122 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 5 janvier 2009
7 nov. 2012 à 09:26
Effectivement, je n'avais pas fait attention à la ligne : $trans array('+'> '', '-' => '');
mais reste que le résultat du code (recomposé) suivant :
$trans array('+'> '', '-' => '');
$var = strtr($var, $trans);
$var = filter_var($var, FILTER_SANITIZE_NUMBER_INT);
$options = array(
'options' => array(
'min_range' => 1,
'max_range' => 11,
)
);
$nb = strlen($var);
if(filter_var($nb, FILTER_VALIDATE_INT, $options) !== FALSE) {
return $var;
}
else {
return false;
}
}
ne fait pas beaucoup plus que
return intval($var);
Pourquoi essayer supprimer des caractères, puis vérifier que c'est un numérique puis valider que c'est un numérique si on peut tout de suite transformer en numérique?

Pour les tests avec "==", il ne faudrait jamais y en avoir :)
si on compare deux valeurs on doit être capable de savoir le type des variables qui sont comparées.
faire les tests suivant est problématique:
$var==FALSE
$var==0
$var==""
$var==array()
On utilise souvent FALSE pour indiquer qu'il y a eu un problème de traitement (erreur SQL, valeur interdite, cas particulier) pour le différencier de 0 résultat
Donc si on spécifie $var=FALSE tous les tests précédents sont validés, pourtant FALSE (retour en erreur) est différent de :
- 0 (la requête s'est bien passé mais il y a simplement aucun résultat)
- "" (retour valide mais sans texte=> ex : utilisateur qui n'a pas rempli son email)
- array() (tableau contenant la liste des utilisateurs connectés mais qui est vide)

Chaque type de valeur a sa signification, et ne doit pas être traité comme un autre type, sinon cela risque de provoquer des erreurs et ouvrir des failles de sécurité.
Le passage de "==" à "===" ne doit pas normalement générer de problème si les comparaisons sont déjà bien organisées. Si ca n'est pas le cas et qu'il y a des bug, c'est qu'il y a des situations qui n'était pas prévues, et donc qu'il pouvait y avoir des problèmes sans qu'on s'en rende compte.
Ce n'est vraiment qu'une question de réflexe à prendre lors de l'écriture du code... si tu n'utilises plus que le test "===" cela va devenir naturel assez rapidement.

bonne continuation.

EM.
après test de intval sur une chaine de 11 chiffres comme suit :
<?php
echo intval(42000000000); // utilisation de 11 chiffres
?>
on obtient quand même un problème :
-949672960
et comme ceci : <?php
$id = '12345678910';
echo intval($id); // utilisation de 11 chiffres ce qui est le max de chiffres id dans la bdd
?>
on obtient : 2147483647
ce qui n'est pas le numero de l'id,
donc je ne vois pas comment être sur de son utilisation, pourrais tu m'éclairer EMILIA123 sur son utilisation dans le cas de mon code ?
Bonjour EMILIA 123,

Merci pour ta réponse et tes conseils,

si je ne me trompe pas FILTER_SANITIZE_NUMBER_INT supprime tous les caractères sauf les chiffres, et les signes plus et moins. c'est pourquoi dans la fonction il y a $trans array('+'> '', '-' => '');
$var = strtr($var, $trans); avant d'appeler ce filtre de nettoyage.

je pense que tu doit te tromper avec FILTER_VALIDATE_INT qui est un filtre de validation.

Certaines fonctions sont hors classes, je n'en vois pas l'utilité dans le cas de ces fonctions, mais pourquoi pas => évolution prochaine

L'utilisation de l'opérateur "===" (et non "==" comme utilisé) m'as causer beaucoup d'erreurs et bugs, ne penses tu pas qu'il faut adapter son utilisation au résultat recherché plutôt que l'utiliser avec automatisme ?

"les liens du style page.php?id=id_membre", je suis d'accord avec toi il ne sont pas crypter mais beaucoup moins facile a comprendre, peut être que sa peux ralentir d'éventuels mauvais utilisateurs, qu'en penses tu ?
cs_emilia123 Messages postés 122 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 5 janvier 2009
7 nov. 2012 à 08:18
Bonjour,

Bravo pour l'évolution... c'est du bon travail.
Les classes sont bien utilisées :)

J'ai encore quelques remarques :

1) il reste encore quelques petites fonctions "hors classe"... allez, encore un petit effort ;)

2) il reste encore quelques comparaisons basées sur l'opérateur "==" (et non "===" comme conseillé).... allez, encore un petit effort ;)

3) concernant le "nettoyage" des "ID" (numérique), je n'ai pas l'impression que la solution appliquée soit la meilleure.
"FILTER_SANITIZE_NUMBER_INT" vérifie bien que la chaine ne contient que des caractères numériques ou le + ou le -. Par contre cette chaine reste du texte et cela ne fait pas obligatoirement de la chaine une valeur exploitable proprement dans une requete SQL par exemple.
Imaginons que quelqu'un transmette le paramètre $id='3+5-2'
Que va sélectionner la requête SQL suivante :
"SELECT * FROM ".MEMBRE." WHERE id='".$id."'"
> la sélection de l'enregistrement id6? et bin non...
=> j'ai fait un test sur un serveur SQL et le résultat est :
la sélection du résultat id=3 (le + ne doit pas être considéré comme un numérique, et du coup la suite n'est pas pris en compte).
Par contre dans le PHP la valeur peut bien être 6 (si il y a des calculs sur cette chaine), du coup cela peut générer des problèmes compliqués à analyser (php et SQL ne voyant pas obligatoirement les mêmes valeurs).
Je pense qu'il serait conseillé de vraiment forcer en numérique c'est à dire de faire un vrai
intval(...)
pour transformer la valeur en numérique qui ne peut être sujet à interprétation.

4) concernant la phrase :
"les liens du style page.php?id=id_membre qui comme on le sait sont assez dangereux"
Ce type de lien n'est pas forcément dangereux, enfin il ne l'est pas forcément plus que la version que tu appelles "cryptée". La valeur n'est plus lisible aussi simplement, mais elle est toujours identifiable.
C'est seulement dangereux si n'importe qui peut accéder à l'url, peu importe si le chiffre est visible ou un peu caché dans l'url.
Le seul moyen de sécuriser correctement le système est la protection d'accès mise en place et pas de masquer les paramètres envoyés.
Par exemple sur CodeSource, on peut voir le l'identifiant du code (ici 54699), ce numéro n'est pas masqué... il est surement sécurisé avant son utilisation :)

En tout cas, bravo pour les modifications... ça va dans le bon sens (celui de la qualité ;) )

EM.
Bonsoir JejeScript, merci pour la réponse et les corrections. Je vais voir les codes et je donnerai les réponses assez rapidement.
Bonne continuation. C'est super!!!
:)
Ah oui, j'ai encore oublié une chose.

En faisant ce code, j'ai penser à une petite chose pour sécurisé les id membres dans les liens du style "page.php?id=id_membre" qui comme on le sait sont assez dangereux.

Je sais pas si c'est une bonne idée, dites moi.

voici l'idée :

class Cryptage {

// cryptage basique des id pour les liens du style page.php?id=
public static function crypter_id($id) {
$nb = strlen($id);
$protect ='';
if($nb==1) {
$protect = Cryptage::chaine_id(5).$id.Cryptage::chaine_id(2);
}
else {
$id_split = str_split($id);
foreach($id_split as $a=>$b){
$protect .= Cryptage::chaine_id(5).$b;
}
$protect .= Cryptage::chaine_id(2);
}
return $protect;
}

// chaine aleatoire sans chiffres pour proteger les id de liens du style page.php?id=
public static function chaine_id($nb_car, $chaine='AZERTYUIOPQSDFGHJKLMWXCVBNazertyuiopqsdfghjklmwxcvbn') {
$nb_lettres = strlen($chaine)-1;
$generation = '';
for($i=0; $i < $nb_car; $i++)
{
$pos = mt_rand(0, $nb_lettres);
$car = $chaine[$pos];
$generation .= $car;
}
return $generation;
}
}
class Nettoyage {

// Nettoyer variable id pour BDD
public static function id($var) {$trans array('+'> '', '-' => '');
$var = strtr($var, $trans);
$var = filter_var($var, FILTER_SANITIZE_NUMBER_INT);
return Verif::id($var);
}

}
Et hop
une mise à jour,

il y a encore des évolutions à venir mais je pense avoir réussi a tenir compte de toutes les informations de EMILIA123 que je remercie une fois de plus.

N'hésitez pas, j’attends vos commentaires.
jadu Messages postés 217 Date d'inscription mercredi 26 juillet 2006 Statut Membre Dernière intervention 16 août 2018
6 nov. 2012 à 11:22
Hello !

On va avoir un truc bien mitonné aux petits oignons !!!

Je me régale d'avance !
cs_arta Messages postés 98 Date d'inscription dimanche 22 janvier 2006 Statut Membre Dernière intervention 24 juillet 2013
6 nov. 2012 à 10:49
Bonjour tous

Alors on va attendre la nouvelle mouture ... ;)
Bonjour,

DIANMELO, SIMOVENUS : la source est en amélioration, dès que c'est fini elle sera de nouveau disponible, merci de votre compréhension.

JADU, merci beaucoup, il est vrai que "EXEMPLE DE GESTION DE PLUSIEURS STYLES CSS EN PHP" est beaucoup moins travaillé,
j'espère m'en sortir avec les classes
Veuillez Svp mettre le projet dans un autre server, car j'arrivais pas à le telecharger :)
Je voulais tester, mais j'ai le message Zip pas valide, dommage ....
jadu Messages postés 217 Date d'inscription mercredi 26 juillet 2006 Statut Membre Dernière intervention 16 août 2018
5 nov. 2012 à 13:08
Bon, là ce travail est intéressant. En effet je galère sur ce type de "travail" depuis un certain temps et j'en connais les méandres.
Aussi je mets un 9 ( pas 10 car j'attends la version complète avec les révisions d'EMILIA123 !!! MDR)
En plus tu es en pleine révision du code !

Hé hé, moi non plus je n'ose pas entrer dans le domaine des classes ... et pourtant on n'en dit que du bien.
Cette source est meilleure que : "EXEMPLE DE GESTION DE PLUSIEURS STYLES CSS EN PHP"
Je pense que tu en conviens toi-même !
Meilleure dans le sens que celle-ci apporte quelque chose pour aider les autres. :-)
Bonjour,

Merci emilia123, je vais revoir mon projet en prenant en compte toutes tes remarques.
j'ai juste besoin de voir comment faire pour les classes car je ne les ai jamais utilisées, il y a un début à tous.

Encore merci.
cs_emilia123 Messages postés 122 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 5 janvier 2009
5 nov. 2012 à 08:23
bonjour,

J'ai pas testé le fonctionnement en "live" mais l'écriture est propre, donc c'est pas mal :)

J'aurai quand même quelques petites remarques :

1) organisation de la sécurisation
La seule lecture du fichier "fonctions.php" peut laisser penser qu'il y a de problèmes de sécurité:
ex : (fonction de regénération du mot de passe)
"UPDATE ".MEMBRE." SET password='".$New_Pass."' WHERE email='".$mail."'"
En fait, cela n'est pas risqué car la vérification sur le format est fait avant l'appel de cette fonction, mais cette organisation peut être risquée, si un développeur appelle cette fonction sans sécuriser la variable.

2) utilisation de la fonction "nettoyage(...)" dans les requêtes SQL sur des champs numérique.
Exemple :
"SELECT * FROM ".MEMBRE." WHERE id='".nettoyage($id)."'"
le champ "id" étant un numérique, pourquoi le sécuriser en mode "texte"? un intval(...) serait plus simple dans ce cas de figure et permettrait à un relecteur de bien comprendre le type des données utilisées.

3) utilisation de vérification "large"
exemple :
if($r['password'] == $pass) {
Il est déconseillé d'effectué des vérification basé sur l'opérateur de comparaison "large" à savoir "==". Pour effectuer cette comparaison large, PHP va modifier les données pour qu'elles soient du même type. Cela s'appelle le "transtypage".
Cet comparaison peut générer des surprises lorsque les données ne sont pas du même type (vérifier un numérique et un texte par exemple)
Exemple: (d'après la documentation PHP)
"PHP"==0 => vrai
""==0 => vrai
Il peut y avoir d'autres cas de figure comme :
10=="10blabla" => vrai
Pour effectuer une vraie vérification (sur les données comme sur le type des variables) il faut utiliser l'opérateur de comparaison "stricte" à savoir "===". Si il y a une différence entre le type des deux variables testées, alors le test est négatif.
"PHP"===0 => faux
""===0 => faux
10=="10blabla" => faux

4) fourniture d'informations trop précises dans les erreurs
Dans la vérification de la connexion de l'utilisateur, le résultat d'une erreur donne trop de détails sur cette erreur.
Ex:
->L'identifiant que vous avez saisi n'existe pas
->Vous avez saisi un mauvais mot de passe
->vous devez remplir le champ "Mot de passe"
Ces détails peuvent permettre à un attaquant de dresser la liste des utilisateurs du site. Il ne devrait y avoir qu'une seule réponse générique à une identification
Ex :
-> Votre identifiant ou votre mot de passe est incorrect.
Sinon il faudrait mettre en place un système pour empêcher un attaquant de tester rapidement énormément de compte/mot de passe.

5) réécriture obligatoire de certaines variables
Pour l'appel de la fonction de connexion à la base de données, on est obligé de réécrire toujours les 4 même variables :
connect(s, u, p, b)->
Vu que ce sont toujours les mêmes variables, pourquoi ne pas les inclure directement dans la fonction "connect", cela simplifierait l'écriture.
un petit plus serait de pouvoir :
- ne passer aucun paramètre => on récupère automatiquement les 4 variables par défaut
- passer les 4 paramètres (via un tableau ou 4 variables séparées) et utiliser ces variables à la place des variables par défaut.

6) possibilité d'évolution : les classes PHP
Il pourrait être bénéfique de mettre en place des classes PHP pour regrouper les fonctions.
Il n'est pas impossible que, par exemple, la fonction "connect" entre en conflit avec une fonction du même nom dans le reste du code (dans le cadre d'un applie avec plus de fonctionnalités).
L'utilisation de classes permettrait d'isoler et de sécuriser le fonctionnement du code.

Bonne continuation,

EM.
Je viens de faire une mise à jour :

1 - Ajout d'une fonction dans "fonction.php" pour la récupération du mot de passe membre.

2 - Ajout de la page en cas de mot de passe oublié "new_passe.php".

3 - Suppression du fichier "config.php".
J'ai remarqué également que je n'avais pas mis la page de récupération de mot de passe au cas ou le membre l'aurai oublié je la rajouterais donc aussi dans la mise à jours
Bonjour POUTCH0088,

Effectivement, j'ai laisser le fichier "config.php", je vais faire une mise à jour sans ce fichier.

Pour que tu n'est pas besoin de télécharger à nouveau le tout il te suffis de le supprimer.

Ensuite quand tu ira sur l'espace membre, il te demandera de suivre une procédure pour l'installation et il te créera ton propre fichier "config.php".

C'est donc normal que tu ne puisse pas accéder à la base "base_test".

Pour installer l'espace membre il te faut une base de données mysql.
Salut JejeScript, c'est super ce que tu fais.
Débutant comme tout, j'essaye de comprendre le fonctionnement de ton programme.
Le seul hic c'est que je n'arrive pas à me connecter à la "base_test".
PS: je n'ai rien changé au programme.
Merci
Rejoignez-nous