Remplir formulaire qune seule fois
Résolu
A voir également:
- Remplir formulaire qune seule fois
- Formulaire de réclamation facebook - Guide
- Comment remplir un pdf - Guide
- Signe fois clavier iphone ✓ - Forum Word
- Ma télé s'éteint toute seule - Forum Vidéo/TV
14 réponses
jordane45
Messages postés
37545
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2023
4 593
21 juin 2022 à 19:34
21 juin 2022 à 19:34
Bonjour,
Dans ta BDD, tu dois stocker, dans la table où tu stockes les données de ton formulaire, l' ID de l'utilisateur qui l'a envoyé.
Ensuite, AVANT d'afficher (et/ou d'enregistrer) le formulaire, tu fais une requête SQL pour aller voir si l'id de l'utilisateur est déjà présent ou non dans la table... et si il est déjà présent, tu le rediriges vers une page indiquant qu'il a déjà répondu.
Dans ta BDD, tu dois stocker, dans la table où tu stockes les données de ton formulaire, l' ID de l'utilisateur qui l'a envoyé.
Ensuite, AVANT d'afficher (et/ou d'enregistrer) le formulaire, tu fais une requête SQL pour aller voir si l'id de l'utilisateur est déjà présent ou non dans la table... et si il est déjà présent, tu le rediriges vers une page indiquant qu'il a déjà répondu.
jordane45
Messages postés
37545
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2023
4 593
21 juin 2022 à 21:30
21 juin 2022 à 21:30
A l'avenir, merci d'utiliser les BALISES DE CODE pour poster du code sur le forum.
Explications disponibles ici :
https://forums.commentcamarche.net/forum/affich-37598670-mise-en-forme-du-forum-et-des-fiches-pratiques-ccm#les-codes-sources
Par contre ... tu ne nous as toujours pas indiqué à quoi correspond le "ça ne marche pas" ....
Explications disponibles ici :
https://forums.commentcamarche.net/forum/affich-37598670-mise-en-forme-du-forum-et-des-fiches-pratiques-ccm#les-codes-sources
Par contre ... tu ne nous as toujours pas indiqué à quoi correspond le "ça ne marche pas" ....
<?php require('config.php'); if (isset($_POST['username'])){ $query = "SELECT `nom`,`prenom` FROM `users` WHERE nom='$nom' and prenom='$prenom'"; $result = mysqli_query($conn,$query) or die(mysql_error()); $rows = mysqli_num_rows($result); $query1 = "SELECT `Nom`,`Prenom` FROM `formulaire_depot` WHERE Nom='$Nom' and Prenom='$Prenom'"; $result1 = mysqli_query($conn,$query1) or die(mysql_error()); $rows1 = mysqli_num_rows($result1); if($rows==1 && $rows1==1){ $_SESSION['nom'] = $_SESSION['Nom']; $_SESSION['prenom'] = $_SESSION['Prenom']; header("Location: form-merci.php"); }else{ header("Location: home.php"); } } ?>
J'ai fois ce code pour si le nom prenom de la table users sont les memes que sur le formulaire redirige moi vers le form-merci.php mais je sais pas ou je dois le mettre je l'ai mis au home et au formulaire_depot mais ca marchait quand meme pas un utilisateur peut fournin plusieur fois le formulaire
jordane45
Messages postés
37545
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2023
4 593
>
maria
Modifié le 21 juin 2022 à 22:37
Modifié le 21 juin 2022 à 22:37
L'utilisateur étant connecté à ton site, je doute que tu renvoies dans chacune de tes pages les variables non et prénom...
Par contre, tu disposes d'une variable de session qui pourrait te servir....
Je pense également que ton modèle de base de données et bancal.... Comme je te l'ai déjà indiqué, il faudrait stocker lors de l'insertion, l'id de l'utilisateur qui envoie le formulaire...
C'est ensuite via ce champ, que tu pourras vérifier si l'utilisateur a déjà envoyé ou non le formulaire.
Par contre, tu disposes d'une variable de session qui pourrait te servir....
Je pense également que ton modèle de base de données et bancal.... Comme je te l'ai déjà indiqué, il faudrait stocker lors de l'insertion, l'id de l'utilisateur qui envoie le formulaire...
C'est ensuite via ce champ, que tu pourras vérifier si l'utilisateur a déjà envoyé ou non le formulaire.
T'aurais pas un petit exemple a me proposer ?ca a l'air dur
jordane45
Messages postés
37545
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2023
4 593
Modifié le 21 juin 2022 à 22:43
Modifié le 21 juin 2022 à 22:43
À part te conseiller de suivre une formation en PHP, là, ça va être compliqué de te trouver des exemples qui correspondent exactement à ton besoin ... Du moins pas sans, coder moi-même, la page en question...
Il vaut mieux y aller par étape.
Pour commencer, lors de l'authentification de l'utilisateur, il serait bien de stocker son id dans les variables de session telles que tu l'as déjà fait pour son username.
Ensuite, ajoute un champ dans la table dans laquelle tu stockes les informations de ton formulaire via l'administration de ta base de données. Ce champ aura pour nom: id_user
Modifie ensuite ta requête d'insertion pour y ajouter cette information lors de l'ajout d'un formulaire. (Cette information etant désormais disponible dans les variables de session)
Et juste avant l'insertion, fais une requête SELECT dans la base pour vérifier si cet utilisateur a déjà envoyé un formulaire ou non.
Voilà, je ne pense pas pouvoir être plus précis....
Il vaut mieux y aller par étape.
Pour commencer, lors de l'authentification de l'utilisateur, il serait bien de stocker son id dans les variables de session telles que tu l'as déjà fait pour son username.
Ensuite, ajoute un champ dans la table dans laquelle tu stockes les informations de ton formulaire via l'administration de ta base de données. Ce champ aura pour nom: id_user
Modifie ensuite ta requête d'insertion pour y ajouter cette information lors de l'ajout d'un formulaire. (Cette information etant désormais disponible dans les variables de session)
Et juste avant l'insertion, fais une requête SELECT dans la base pour vérifier si cet utilisateur a déjà envoyé un formulaire ou non.
Voilà, je ne pense pas pouvoir être plus précis....
patrice86
Messages postés
1378
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
1 février 2023
125
22 juin 2022 à 10:08
22 juin 2022 à 10:08
Bonjour
Comme l'indique Jordane45, j'aurais proposé la même solution.
Sauvegarder l'ID de l'utilisateur (vu qu'il a un compte, il doit bien être enregistré dans la bdd ?) au moment de sauvegarder le form dans la bdd.
Sinon, utiliser les cookies mais c'est plus technique encore et disponible uniquement sur le même navigateur donc pas forcément optimal.
Comme l'indique Jordane45, j'aurais proposé la même solution.
Sauvegarder l'ID de l'utilisateur (vu qu'il a un compte, il doit bien être enregistré dans la bdd ?) au moment de sauvegarder le form dans la bdd.
Sinon, utiliser les cookies mais c'est plus technique encore et disponible uniquement sur le même navigateur donc pas forcément optimal.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question<?php $conn = new PDO('mysql:host=localhost;dbname=bea1','root',''); $sql = "SELECT `id` FROM `users`"; $stmt = $conn->prepare($sql); $stmt->execute(); $stmt->bindColumn('id', $id, PDO::PARAM_LOB); $sql1 = "SELECT `id1` FROM `compte`"; $q = $conn->prepare($sql1); $q->execute(); $q->bindColumn('id1', $id1, PDO::PARAM_LOB); while($user = $q->fetch()){ while($donnees = $stmt->fetch()){ if ($user['id'] === $donnees['id1']) { header("Location: form-merci.php"); }else { header("Location: home.php"); } } } ?>
J'ai reussi a faire ca mais ca marche pas trop, des que que je me connecte il me renvoie direct a la page du form-merci meme si l'utilisateur n'a pas encore rempli le formulaire
jordane45
Messages postés
37545
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2023
4 593
24 juin 2022 à 05:47
24 juin 2022 à 05:47
On t'a dit d'utiliser l'ID de l'utilisateur qui se trouve DANS la variable de SESSION.
j'ai fait avec session aussi mais c'est la meme chose ca marche pour le premier utilisateur apres ca marche plus
jordane45
Messages postés
37545
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2023
4 593
24 juin 2022 à 14:35
24 juin 2022 à 14:35
1 - As tu bien mémorisé dans les variables de SESSION, lorsque l'utilisateur se connecte sur ton site, son ID ?
2 - Peux tu nous montrer le code que tu as essayé de faire ( avec la session) ?
2 - Peux tu nous montrer le code que tu as essayé de faire ( avec la session) ?
<?php //Initialiser la session session_start(); //Verifier si l'utilisateur est connecte, sinon redirigez-le vers la page de connexion if (!isset($_SESSION["username"])) { header("Location:login.php"); exit(); } require('config.php'); $q = "SELECT * FROM `users` WHERE id='$id'"; $result = mysqli_query($conn,$q) or die(mysql_error()); $_SESSION['id'] = $id; if ($_SESSION['id'] === $_SESSION['id1']) { header("Location: form-merci.php"); } if (isset($_REQUEST['typec'])){ $typec = stripslashes($_REQUEST['typec']); $typec = mysqli_real_escape_string($conn, $typec); $query = "INSERT into `compte` (typec) VALUES ('$typec')"; $res = mysqli_query($conn, $query); } else{ ?> <!DOCTYPE html> <html> <head> <title>Home</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <div class="sucess"> <h1>Bienvenue M.<?php echo $_SESSION['username'];?>!</h1> <p> Pour preouvrir un compte bancaire chez la banque exterieure d'Algerie veuillez choisir le type de compte a ouvrir: <form method="post" action=""> <table> <tr> <td><input type="radio" name="typec" value="Compte depot">Compte depot</td> </tr> <tr> <td><input type="radio" name="typec" value="Compte Courant Commercial (physique)">Compte Courant Commercial (physique)</td> </tr> <tr> <td><input type="radio" name="typec" value="Compte Courant Commercial devise (moral)">Compte Courant Commercial devise (moral)</td> </tr> <tr> <td><input type="radio" name="typec" value="Compte Courant Commercial (moral)">Compte Courant Commercial (moral)</td> </tr> <tr> <td><input type="radio" name="typec" value="Compte Courant Non-Commercial (physique)">Compte Courant Non-Commercial (physique)</td> </tr> <tr> <td><input type="radio" name="typec" value="Compte Courant Non-Commercial ANADE">Compte Courant Non-Commercial ANADE</td> </tr> <tr><td><input type="submit" name="btncompte" value="Suivant"></td></tr> </form> </table> </p> <a href="logout.php">Deconnexion</a> </div> <?php } ?> </body> </html>
jordane45
Messages postés
37545
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2023
4 593
24 juin 2022 à 15:36
24 juin 2022 à 15:36
J'ai mis mes remarques dans ton code :
NB: L'extension mysql est OBSOLETE ..
Il ne faut plus l'utiliser.
A la place, il faut utiliser PDO ou MYSQLI.
<?php //Initialiser la session session_start(); //Verifier si l'utilisateur est connecte, sinon redirigez-le vers la page de connexion if (!isset($_SESSION["username"])) { header("Location:login.php"); exit(); } require('config.php'); $q = "SELECT * FROM `users` WHERE id='$id'"; //$id .. il vient d'où ?? Normalement, tu aurais du récupérer cette variable DEPUIS la session : $id= $_SESSION['id']; $result = mysqli_query($conn,$q) or die(mysql_error()); $_SESSION['id'] = $id; // Inutile ICI .. c'est dans la CONNEXION de ton user qu'il faut faire ça .. pas ici !! if ($_SESSION['id'] === $_SESSION['id1']) { // Il vient d'où ce $_SESSION['id1'] ????? Tu dois plutôt vérifier si ta requête a retournée un résultat ou non ! header("Location: form-merci.php"); } if (isset($_REQUEST['typec'])){ $typec = stripslashes($_REQUEST['typec']); $typec = mysqli_real_escape_string($conn, $typec); $query = "INSERT into `compte` (typec) VALUES ('$typec')"; $res = mysqli_query($conn, $query); } else{
NB: L'extension mysql est OBSOLETE ..
Il ne faut plus l'utiliser.
A la place, il faut utiliser PDO ou MYSQLI.
jordane45
Messages postés
37545
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2023
4 593
>
jordane45
Messages postés
37545
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2023
24 juin 2022 à 15:38
24 juin 2022 à 15:38
Ah... et ce n'est pas sur la table USER que tu dois faire ta requête ... mais sur la table qui contient tes formulaires !
maria
>
jordane45
Messages postés
37545
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2023
24 juin 2022 à 15:51
24 juin 2022 à 15:51
je pense que je me suis mal explique avant que le client arrive au formulaire il doit choisir quel compte il doit ouvrir et j'ai une table compte ou il stock chaque client le choix qu'il a choisi du coup ce que je veux c'est quand un client se connecte il est directement envoye au form-merci.php sans passer par le home.php
Du coup si j'ai bien compris la requete SELECT je suis censee la faire au moment LOGIN et donc dans ce cas la je verifie si le client a deja fait le formulaire dans le login c'est ca ?
blackmefias_3350
Messages postés
701
Date d'inscription
dimanche 20 septembre 2020
Statut
Membre
Dernière intervention
2 juin 2023
58
24 juin 2022 à 15:48
24 juin 2022 à 15:48
bonjour,
d'après ce que je comprends, vous voudriez que le clients si il est déjà par exemple inscrit, ne puisse plus s'inscrire
dans ce cas je vous conseil de faire une session, et de créer un ou des cookies
cookies qui vérifient si le client est déjà inscrit ou pas
c'est comme si par exemple le client à le choix entre plusieurs langues, et que pour sa prochaine connexion au site , la langue choisie soit définie par défaut .
d'après ce que je comprends, vous voudriez que le clients si il est déjà par exemple inscrit, ne puisse plus s'inscrire
dans ce cas je vous conseil de faire une session, et de créer un ou des cookies
cookies qui vérifient si le client est déjà inscrit ou pas
c'est comme si par exemple le client à le choix entre plusieurs langues, et que pour sa prochaine connexion au site , la langue choisie soit définie par défaut .
jordane45
Messages postés
37545
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2023
4 593
24 juin 2022 à 16:12
24 juin 2022 à 16:12
On reprend.... encore....
Soit tu rediriges, lors de la connexion de l'utilisateur, vers la page voulue ...
Soit .. on contninue ce qu'on avait commencé...
Et pour que ça soit clair pour tout le monde ;
1 - Montre nous le code de connexion
2 - Montre nous le code de ton form-meri.php
3 - Si tu as ensuite une autre étape .. montre nous son code également ( pense bien à nous noter le nom de CHAQUE fichier que tu nous montres... )
4 - Il faut également nous montrer la structure de ta bdd..... car comme je le pense.... tu n'as toujours pas mis un champ pour stocker l'id de l'utilisateur dans la table qui te sert à enregistrer ton formulaire....
Soit tu rediriges, lors de la connexion de l'utilisateur, vers la page voulue ...
Soit .. on contninue ce qu'on avait commencé...
Et pour que ça soit clair pour tout le monde ;
1 - Montre nous le code de connexion
2 - Montre nous le code de ton form-meri.php
3 - Si tu as ensuite une autre étape .. montre nous son code également ( pense bien à nous noter le nom de CHAQUE fichier que tu nous montres... )
4 - Il faut également nous montrer la structure de ta bdd..... car comme je le pense.... tu n'as toujours pas mis un champ pour stocker l'id de l'utilisateur dans la table qui te sert à enregistrer ton formulaire....
Le code "Connexion":
Le code form-merci.php:
Le code home:
Le code d'insertion.php de home:
Les tables:
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`nom` varchar(100) NOT NULL,
`prenom` varchar(100) NOT NULL,
`username` varchar(100) NOT NULL,
`email` varchar(100) NOT NULL,
`password` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `compte`(
`id1` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`compte` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
<!DOCTYPE html> <html> <head> <link rel="stylesheet" href="style.css" /> </head> <body> <?php require('config.php'); session_start(); if (isset($_POST['username'])){ $username = stripslashes($_REQUEST['username']); $username = mysqli_real_escape_string($conn, $username); $password = stripslashes($_REQUEST['password']); $password = mysqli_real_escape_string($conn, $password); $query = "SELECT * FROM `users` WHERE username='$username' and password='".hash('sha256', $password)."'"; $result = mysqli_query($conn,$query) or die(mysql_error()); $rows = mysqli_num_rows($result); if($rows==1){ $_SESSION['username'] = $username; header("Location: home.php"); } elseif (($password === 'admin')&&($username === 'admin')){ header("Location: ./admin/dashboard.php"); }else{ $message = "Le nom d'utilisateur ou le mot de passe est incorrect."; } } ?> <form class="box" action="" method="post" name="login"> <h1 class="box-title">Connexion</h1> <div class="pos"> <input type="text" class="box-input" name="username" placeholder="Nom d'utilisateur"><br> <input type="password" class="box-input" name="password" placeholder="Mot de passe"><br> <input type="submit" value="Connexion " name="submit" class="box-button"> <p class="box-register">Vous êtes nouveau ici? <a href="register.php">S'inscrire</a></p></div> <?php if (! empty($message)) { ?> <p class="errorMessage"><?php echo $message; ?></p> <?php } ?> </form> </body> </html>
Le code form-merci.php:
<!DOCTYPE html> <html> <head> <title>Banque</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <h1>Demande envoyée !</h1> <p>Votre demande est en attente !</p> </body> </html>
Le code home:
<?php //Initialiser la session session_start(); //Verifier si l'utilisateur est connecte, sinon redirigez-le vers la page de connexion if (!isset($_SESSION["username"])) { header("Location:login.php"); exit(); } ?> <!DOCTYPE html> <html> <head> <title>Home</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <div class="sucess"> <h1>Bienvenue M.<?php echo $_SESSION['username'];?>!</h1> <p> Pour preouvrir un compte bancaire chez la banque exterieure d'Algerie veuillez choisir le type de compte a ouvrir: <form method="post" action="insertion.php"> <table> <tr> <td><input type="radio" name="typec" value="Compte depot">Compte depot</td> </tr> <tr> <td><input type="radio" name="typec" value="Compte Courant Commercial (physique)">Compte Courant Commercial (physique)</td> </tr> <tr> <td><input type="radio" name="typec" value="Compte Courant Commercial devise (moral)">Compte Courant Commercial devise (moral)</td> </tr> <tr> <td><input type="radio" name="typec" value="Compte Courant Commercial (moral)">Compte Courant Commercial (moral)</td> </tr> <tr> <td><input type="radio" name="typec" value="Compte Courant Non-Commercial (physique)">Compte Courant Non-Commercial (physique)</td> </tr> <tr> <td><input type="radio" name="typec" value="Compte Courant Non-Commercial ANADE">Compte Courant Non-Commercial ANADE</td> </tr> <tr><td><input type="submit" name="btncompte" value="Suivant"></td></tr> </form> </table> </p> <a href="logout.php">Deconnexion</a> </div> </body> </html>
Le code d'insertion.php de home:
<?php $objPdo = new PDO('mysql:host=localhost;dbname=bea1','root',''); $pdoStat = $objPdo->prepare('INSERT INTO compte VALUES(NULL, :typec)'); $pdoStat->bindValue(':typec', $_POST['typec'], PDO::PARAM_STR); $insert = $pdoStat->execute(); if ($insert) { if ($_POST['typec'] == "Compte depot") { header("Location:formulairedepot.php"); } elseif ($_POST['typec'] == "Compte Courant Commercial (physique)" || $_POST['typec'] == "Compte Courant Non-Commercial ANADE") { header("Location:formulairephysique.php"); }else header("Location:formulairemoral.php"); } else{ $message = 'Echec de l\insertion'; echo $message; } ?>
Les tables:
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`nom` varchar(100) NOT NULL,
`prenom` varchar(100) NOT NULL,
`username` varchar(100) NOT NULL,
`email` varchar(100) NOT NULL,
`password` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `compte`(
`id1` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`compte` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
jordane45
Messages postés
37545
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2023
4 593
24 juin 2022 à 16:37
24 juin 2022 à 16:37
Dans ton code de connexion tu ne stocks toujours pas l'id de l'utilisateur en variable de session..
Dans ta base de données tu n'as pas mis de chant qui permet de faire le lien entre ta table compte et l'utilisateur...
Bref, tu n'as pas tenu compte d'une seule des remarques que je t'ai déjà fait au cours de cette longue discussion....
J'attends que tu fasses ces corrections et que tu nous remontres le code et la structure de tes tables une fois que ça sera fait.
Dans ta base de données tu n'as pas mis de chant qui permet de faire le lien entre ta table compte et l'utilisateur...
Bref, tu n'as pas tenu compte d'une seule des remarques que je t'ai déjà fait au cours de cette longue discussion....
J'attends que tu fasses ces corrections et que tu nous remontres le code et la structure de tes tables une fois que ça sera fait.
jordane45
Messages postés
37545
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2023
4 593
>
jordane45
Messages postés
37545
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2023
Modifié le 24 juin 2022 à 17:57
Modifié le 24 juin 2022 à 17:57
ta bdd devrait ressembler à ça :


<?php require('config.php'); session_start(); if (isset($_POST['username'])){ $username = stripslashes($_REQUEST['username']); $username = mysqli_real_escape_string($conn, $username); $password = stripslashes($_REQUEST['password']); $password = mysqli_real_escape_string($conn, $password); $query = "SELECT * FROM `users` WHERE username='$username' and password='".hash('sha256', $password)."'"; $result = mysqli_query($conn,$query) or die(mysql_error()); $rows = mysqli_num_rows($result); if($rows==1){ $_SESSION['username'] = $username; $_SESSION['id'] = $id; header("Location: home.php"); } elseif (($password === 'admin')&&($username === 'admin')){ header("Location: ./admin/dashboard.php"); }else{ $message = "Le nom d'utilisateur ou le mot de passe est incorrect."; } } ?>
et j'ai ajouter la colonne id_user dans compte
jordane45
Messages postés
37545
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2023
4 593
24 juin 2022 à 20:58
24 juin 2022 à 20:58
Ligne 15, ton $id doit être extrait de ta requête SQL
maria
>
jordane45
Messages postés
37545
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2023
24 juin 2022 à 21:28
24 juin 2022 à 21:28
extrait de la requete comme ca ?
$query = "SELECT * FROM `users` WHERE id='$id' and username='$username' and password='".hash('sha256', $password)."'"; $result = mysqli_query($conn,$query) or die(mysql_error()); $rows = mysqli_num_rows($result); if($rows==1){ $_SESSION['username'] = $username; $_SESSION['id'] = $id; header("Location: home.php"); } elseif (($password === 'admin')&&($username === 'admin')){ header("Location: ./admin/dashboard.php"); }else{ $message = "Le nom d'utilisateur ou le mot de passe est incorrect."; }
jordane45
Messages postés
37545
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2023
4 593
24 juin 2022 à 21:22
24 juin 2022 à 21:22
<?php require('config.php'); session_start(); if (isset($_POST['username'])){ $username = stripslashes($_REQUEST['username']); $username = mysqli_real_escape_string($conn, $username); $password = stripslashes($_REQUEST['password']); $password = mysqli_real_escape_string($conn, $password); $query = "SELECT * FROM `users` WHERE username='$username' and password='".hash('sha256', $password)."'"; $result = mysqli_query($conn,$query) or die(mysql_error()); $row = mysql_fetch_array($result, MYSQL_ASSOC) $rows = mysqli_num_rows($result); if($rows==1){ $_SESSION['username'] = $username; $_SESSION['id'] = $row['id']; header("Location: home.php"); } elseif (($password === 'admin')&&($username === 'admin')){ header("Location: ./admin/dashboard.php"); }else{ $message = "Le nom d'utilisateur ou le mot de passe est incorrect."; } } ?>
Le code home:
<?php <?php //Initialiser la session session_start(); //Verifier si l'utilisateur est connecte, sinon redirigez-le vers la page de connexion if (!isset($_SESSION["username"])) { header("Location:login.php"); exit; } //on récupère l'ID qui se trouve en SESSION $id = $_SESSION['id']; //On regarde si l'id_user est déjà dans la table compte $query = "SELECT * FROM `compte` WHERE id_user='$id' "; $result = mysqli_query($conn,$query) or die(mysql_error()); if($rows==1){ header("Location: form-merci.php"); exit; } ?> <!DOCTYPE html> <html> <head> <title>Home</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <div class="sucess"> <h1>Bienvenue M.<?php echo $_SESSION['username'];?>!</h1> <p> Pour preouvrir un compte bancaire chez la banque exterieure d'Algerie veuillez choisir le type de compte a ouvrir: <form method="post" action="insertion.php"> <table> <tr> <td><input type="radio" name="typec" value="Compte depot">Compte depot</td> </tr> <tr> <td><input type="radio" name="typec" value="Compte Courant Commercial (physique)">Compte Courant Commercial (physique)</td> </tr> <tr> <td><input type="radio" name="typec" value="Compte Courant Commercial devise (moral)">Compte Courant Commercial devise (moral)</td> </tr> <tr> <td><input type="radio" name="typec" value="Compte Courant Commercial (moral)">Compte Courant Commercial (moral)</td> </tr> <tr> <td><input type="radio" name="typec" value="Compte Courant Non-Commercial (physique)">Compte Courant Non-Commercial (physique)</td> </tr> <tr> <td><input type="radio" name="typec" value="Compte Courant Non-Commercial ANADE">Compte Courant Non-Commercial ANADE</td> </tr> <tr><td><input type="submit" name="btncompte" value="Suivant"></td></tr> </form> </table> </p> <a href="logout.php">Deconnexion</a> </div> </body> </html> ?>
jordane45
Messages postés
37545
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2023
4 593
24 juin 2022 à 21:23
24 juin 2022 à 21:23
Par contre, ... ce code sera à modifier en PDO comme tu l'as fais pour ton code d'insertion...
Code d'insertion.. dans lequel tu devras ajouter l'id_user à ta requête...
Code d'insertion.. dans lequel tu devras ajouter l'id_user à ta requête...
jordane45
Messages postés
37545
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2023
4 593
>
jordane45
Messages postés
37545
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 juin 2023
24 juin 2022 à 21:52
24 juin 2022 à 21:52
Ou recoder ton code d'insertion en mysqli
enfin.. avoir la même "techno" d'une page à l'autre...
enfin.. avoir la même "techno" d'une page à l'autre...
21 juin 2022 à 21:06
21 juin 2022 à 21:14
Et puis, je ne peux que te donner des pistes théoriques vu que tu ne nous a pas montré une seule ligne de code...
Modifié le 21 juin 2022 à 21:28
EDIT : Ajout des balises de code
Modifié le 21 juin 2022 à 21:29
EDIT : Ajout des balises de code
21 juin 2022 à 21:27
avec son insertion