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
Bonsoir a tous,

je vous explique mon problème, on m'a demander de créer une page de création du nouveau compte qu'elle au moment du clique sur le bouton créer votre DMP il aura un envoie du formulaire rempli par l'utilisateur a la base do données intitulé compte dmp, et nouveau compte s'ajoute dans le table patient .
j'ai essayé avec se code et rien n'ai ajouté même les message d'erreur ne s'affiche jamais pourtant la page se recharge
???!!!!

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
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


0
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:51
0
la_fillette Messages postés 3 Date d'inscription mardi 25 décembre 2018 Statut Membre Dernière intervention 25 décembre 2018
25 déc. 2018 à 20:53
voici mon code,
<?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>
?>
0
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 à 21:03
j'ai vu la page PHP-gestion des erreurs mais j'ai pas compris ,
l'erreur a quelle niveau ??
0
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 à 22:07
Commence déjà par poster ton code correctement... Tel que je te l'ai indiqué dans mon premier message !
0
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
Voici le début de ton code corrigé
<?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.


0