Rien n'ai ajouté dans la base de données
Fermé
la_fillette
Messages postés
3
Date d'inscription
mardi 25 décembre 2018
Statut
Membre
Dernière intervention
25 décembre 2018
-
Modifié le 25 déc. 2018 à 20:44
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 25 déc. 2018 à 23:18
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 25 déc. 2018 à 23:18
A voir également:
- Rien n'ai ajouté dans la base de données
- Formules excel de base - Guide
- Ajout snap sans rien - Forum Snapchat
- Célia doit nettoyer le tableau ci-dessous pour l’ajouter à la base de données de son entreprise. les données sont ensuite traitées automatiquement. quelles sont les 4 cellules qui risquent de poser problème ? ✓ - Forum Excel
- Nouveau tag ajouté - Forum Huawei
- Supprimer une base de données phpmyadmin ✓ - Forum Logiciels
2 réponses
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
25 déc. 2018 à 20:49
25 déc. 2018 à 20:49
Bonjour,
Sans voir ton code .... impossible de te répondre !
NB : Pour poster du code sur le forum.. merci d'utiliser la coloration syntaxique (les balises de code).
Explications disponibles ici :https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
NB2 : Avant de nous poster ton code, commence par appliquer les conseils donnés ici : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Sans voir ton code .... impossible de te répondre !
NB : Pour poster du code sur le forum.. merci d'utiliser la coloration syntaxique (les balises de code).
Explications disponibles ici :https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
NB2 : Avant de nous poster ton code, commence par appliquer les conseils donnés ici : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
25 déc. 2018 à 23:18
25 déc. 2018 à 23:18
Voici le début de ton code corrigé
Quelques remarques concernant ton code :
- Attention... le nom de ta BDD contient un espace.... il ne faut pas !
Tu ne dois utiliser ni accents, ni majuscules, ni caractères spéciaux, ni espaces dans le nom de ta BDD, de tes tables ou des champs de tes tables !
- La fonction htmlspecialchar n'est à utiliser que pour l'AFFICHAGE et en aucun cas pour l'insertion en BDD.
- On n'utilise plus le Sha1 pour "crypter" les mots de pass. Désormais on utiliser la fonction password_hash et password_verify
http://php.net/manual/fr/function.password-hash.php
https://www.php.net/manual/fr/function.password-verify.php
- Tu dois placer CHAQUE requête dans des blocs TRY/CATCH
- La fonction rowCount ne doit pas être utilisée sur une requête SELECT. A la place on fera plutôt un COUNT
Comme indiqué dans la documentation officielle :
Toi tu fais l'insertion d'un nouvel utilisateur... si il existe déjà dans la bdd ??
Je suppose que tu voulais plutôt vérifier qu'il n'existait pas déjà
Et pour finir.....
Tu utilises le code qui permet de "créer" un nouvel utilisateur dans le formulaire qui te sert normalement à l'authentifier ? Oo
Sachant que le code que tu nous montres ne contient que deux input.. un pour le "nom" et un pour le "password" ...
Je pense que tu t'es trompé de formulaire !!
Voila... tu as de quoi bosser...
Faut revoir complètement ton code et ta façon de coder.
Je t'invite à prendre connaissance des liens que je t'ai donné et de vraiment chercher à les comprendre... sans ça... tu n'avanceras pas.
<?php //Afficher les erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //connexion à la BDD avec activation des erreurs PDO $dbName = "compte_dmp"; $host = "127.0.0.1"; $dbuser = "root"; $dbpass=""; try{ $bdd =new PDO('mysql:host='.$host.';dbname='.$dbName.'; charset=utf8', $dbuser, $dbpass); // Activation des erreurs PDO $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } //récupération PROPRE des variables AVANT de les utiliser $nom = !empty($_POST['nom']) ? $_POST['nom'] : NULL; $prenom = !empty($_POST['prenom']) ? $_POST['prenom'] : NULL; $nomUtilisateur = !empty($_POST['nomUtilisateur']) ? $_POST['nomUtilisateur'] : NULL; $pass1 = !empty($_POST['pass1']) ? $_POST['pass1'] : NULL; $pass2 = !empty($_POST['pass2']) ? $_POST['pass2'] : NULL; if (isset($_POST['Creer_votre_DMP'])) { if ($nom && $prenom&& $nomUtilisateur && $pass1 && $pass2) {
Quelques remarques concernant ton code :
- Attention... le nom de ta BDD contient un espace.... il ne faut pas !
Tu ne dois utiliser ni accents, ni majuscules, ni caractères spéciaux, ni espaces dans le nom de ta BDD, de tes tables ou des champs de tes tables !
- La fonction htmlspecialchar n'est à utiliser que pour l'AFFICHAGE et en aucun cas pour l'insertion en BDD.
- On n'utilise plus le Sha1 pour "crypter" les mots de pass. Désormais on utiliser la fonction password_hash et password_verify
http://php.net/manual/fr/function.password-hash.php
https://www.php.net/manual/fr/function.password-verify.php
- Tu dois placer CHAQUE requête dans des blocs TRY/CATCH
- La fonction rowCount ne doit pas être utilisée sur une requête SELECT. A la place on fera plutôt un COUNT
Comme indiqué dans la documentation officielle :
Si la dernière requête SQL exécutée par l'objet PDOStatement associé est une requête de type SELECT, quelques bases de données retourneront le nombre de lignes retournées par cette requête. Néanmoins, ce comportement n'est pas garanti pour toutes les bases de données
Toi tu fais l'insertion d'un nouvel utilisateur... si il existe déjà dans la bdd ??
if ($nomUtilsateurexist == 1){
Je suppose que tu voulais plutôt vérifier qu'il n'existait pas déjà
if ($nomUtilsateurexist != 1){
Et pour finir.....
Tu utilises le code qui permet de "créer" un nouvel utilisateur dans le formulaire qui te sert normalement à l'authentifier ? Oo
Sachant que le code que tu nous montres ne contient que deux input.. un pour le "nom" et un pour le "password" ...
Je pense que tu t'es trompé de formulaire !!
Voila... tu as de quoi bosser...
Faut revoir complètement ton code et ta façon de coder.
Je t'invite à prendre connaissance des liens que je t'ai donné et de vraiment chercher à les comprendre... sans ça... tu n'avanceras pas.
25 déc. 2018 à 20:51
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
25 déc. 2018 à 20:53
<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=compte dmp','root','');
if (isset($_POST['Creer_votre_DMP'])) {
if (!empty($_POST['nom']) AND !empty($_POST['prenom'])AND !empty($_POST['nomUtilisateur']) AND !empty($_POST['pass1']) AND !empty($_POST['pass2'])) {
$nom = htmlspecialchars($_POST['nom']);
$prenom = htmlspecialchars($_POST['prenom']);
$nomUtilisateur = htmlspecialchars($_POST['nomUtilisateur']);
$pass = sha1($_POST['pass1']);
$pass2 = sha1($_POST['pass2']);
$requser = $bdd->prepare("SELECT * FROM patient WHERE nomUtilisateur=?");
$requser->execute(array($nomUtilisateur));
$nomUtilisateurexist = $req->rowCount();
if ($nomUtilsateurexist == 1){
if ($pass1 == $pass2) {
$insertmbr = $bdd->prepare("INSERT INTO patient ( prenom, nom ,nomUtilisateur,password) VALUES ('".$prenom."', '".$nom."','".$nomUtilisateur."', '".$pass1."')");
$notification = "Votre compte a bien été crée" ;
}
else{
$erreur = "vos deux mots de passe ne correspondent pas";
}
}
else {
$erreur = "Nom d'utilisateur déjà utilisé!";
}
}
else {
$notification = "Compléter tous les champs" ;
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Mobile Specific Meta -->
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Favicon-->
<link rel="shortcut icon" href="img/fav.png">
<!-- Author Meta -->
<meta name="author" content="Colorlib">
<!-- Meta Description -->
<meta name="description" content="">
<!-- Meta Keyword -->
<meta name="keywords" content="">
<!-- meta character set -->
<meta charset="UTF-8">
<!-- Site Title -->
<title>Connecter au DMP</title>
<link href="https://fonts.googleapis.com/css?family=Poppins:100,200,400,300,500,600,700" rel="stylesheet">
<!--
CSS
============================================= -->
<link rel="stylesheet" href="css/linearicons.css">=
<link rel="stylesheet" href="css/font-awesome.min.css">
<link rel="stylesheet" href="css/magnific-popup.css">
<link rel="stylesheet" href="css/nice-select.css">
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="css/bootstrap.css">
<link rel="stylesheet" href="css/main.css">
</head>
<body>
<div class="limiter">
<div class="container-login100">
<div class="wrap-login100">
<div class="login100-pic js-tilt" data-tilt>
<img src="images/img-01.png" alt="IMG">
</div>
<form class="login100-form validate-form" action='' method='post'>
<span class="login100-form-title">
Connexion Patient
</span>
<div class="wrap-input100 validate-input" data-validate = "Valid name is required: ex@abc.xyz">
<input class="input100" type="text" name="nom" placeholder="Nom">
<span class="focus-input100"></span>
<span class="symbol-input100">
<i class="fa fa-envelope" aria-hidden="true"></i>
</span>
</div>
<div class="wrap-input100 validate-input" data-validate = "Password is required">
<input class="input100" type="Password" name="pass" placeholder="mot de passe">
<span class="focus-input100"></span>
<span class="symbol-input100">
<i class="fa fa-lock" aria-hidden="true"></i>
</span>
</div>
<div class="container-login100-form-btn">
<button class="login100-form-btn" type='submit'>
Connexion
</button>
</div>
<div class="text-center p-t-136">
<a class="txt2" href="#">
<a href="../create/creation DMP.php"><b>Creer nouveau compte DMP<b></a>
<i class="fa fa-long-arrow-right m-l-5" aria-hidden="true"></i>
</a>
</div>
</form>
</div>
</div>
</div>
<!--===============================================================================================-->
<script src="vendor/jquery/jquery-3.2.1.min.js"></script>
<!--===============================================================================================-->
<script src="vendor/bootstrap/js/popper.js"></script>
<script src="vendor/bootstrap/js/bootstrap.min.js"></script>
<!--===============================================================================================-->
<script src="vendor/select2/select2.min.js"></script>
<!--===============================================================================================-->
<script src="vendor/tilt/tilt.jquery.min.js"></script>
<script >
$('.js-tilt').tilt({
scale: 1.1
})
</script>
<!--===============================================================================================-->
<script src="js/main.js"></script>
</body>
</html>
?>
Modifié le 25 déc. 2018 à 21:03
l'erreur a quelle niveau ??
25 déc. 2018 à 22:07