Le 08 juin 2021 à 17:11:38 :
Le 08 juin 2021 à 17:04:33 :
1) Les identifiants/mdp de BDD c'est dans un fichier de config (parce que quand tu passeras de localhost a un vrai serveur, faudra remodifier tous les fichiers où tu te connectes.
2) Le '"new mysqli" me semble assez obsolète, il faut utiliser l'objet PDO (voir tutos)
3) Ne JAMAIS insérer des données rentrées par des utilisateurs sans les vérifier au préalable (sinon tu ouvres la boite de Pandore => failles SQL)
D'accord merci je vais me pencher là-dessus 
Et j'ai solutionné mon pb avec la contrainte UNIQUE, merci à vous les kheys 
Vraiment la base le point 3, il faut dès le début apprendre à coder comme ça, sinon on prend des mauvaises habitudes.
Un exemple très simple et vicieux du problème => un système de connexion
Tu as en code
SELECT * FROM comptes WHERE identifiant = '".$_POST['identifiant']."' AND password = '".$_POST['password']."'
(Requete pour vérifier si on rentre le bon mot de passe)
Je mets dans le champ identifiant : n'importe quoi
Je mets dans le champ password : ' OR 1 = 1
La requete devient donc SELECT * FROM comptes WHERE identifiant = 'toto' AND password = '' OR 1 = 1
Comme 1=1 est forcément vrai, la requête SQL est vraie sur toutes les lignes de la table. Par défaut (par de ORDER BY défini) la requête va lister tous les comptes dans l'ordre de l'id, et en général le compte id=1 est le compte admin.
Félicitation, je viens de me connecter au compte admin. 
Message édité le 08 juin 2021 à 17:16:51 par aty007