Login en php/sql
niumm
-
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Alors voila, j'ai un formulaire de création de compte en php avec connexion à une base de données. Je voudrais donc maintenant avoir un login.php pour se connecter avec une adresse mail et un mot de passe (définit juste avant dans le formulaire de création de compte) depuis la base de données avec un message "Vous vous êtes bien authentifié" ou "Se compte n'existe pas, en créer un ?". Je ne m'y connais vraiment pas en SQL, je début :x
Voici mon formulaire de création de compte :
Alors voila, j'ai un formulaire de création de compte en php avec connexion à une base de données. Je voudrais donc maintenant avoir un login.php pour se connecter avec une adresse mail et un mot de passe (définit juste avant dans le formulaire de création de compte) depuis la base de données avec un message "Vous vous êtes bien authentifié" ou "Se compte n'existe pas, en créer un ?". Je ne m'y connais vraiment pas en SQL, je début :x
Voici mon formulaire de création de compte :
<?php
$dbh = 'mysql:host=***;dbname=***';
$user = '***';
$pass = '***';
try{
$pdo = new PDO($dbh, $user, $pass);
} catch (PDOException $e) {
print "Erreur !" . $e->getMessage();
die();
}
$req = $pdo->prepare("INSERT INTO Utilisateur (Nom,Prenom,email,MotDePasse) VALUES(:nom, :prenom, :email, :pwd)"
, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$req->execute(array(
':nom' => $_POST['name'],
':prenom' => $_POST['prenom'],
':email' => $_POST['mail'],
':pwd' => $_POST['password']
));
$req->closeCursor();
// Le message
$message = "Vous avez recu une nouvelle demande de contact sur votre site internet\n\n";
$message .= ' Identifiant : '.$_POST['id'];
$message .= ' Nom : '.$_POST['name'];
$message .= ' Prénom : '.$_POST['prenom'];
$message .= ' E-mail : '.$_POST['mail'];
$message .= ' Mot de passe : '.$_POST['password'];
$to = '***@***';
$subject = 'Demande de contact';
$headers = 'From: contact@***' . "\r\n" .
'Reply-To: contact@***' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
// Envoi du mail
if(mail($to, $subject, $message, $headers))
{
echo "
<script type='text/javascript'>
alert('Votre demande nous a bien été adressée. Nous vous répondrons dès que possible.');
setTimeout(function (){
window.location.href = 'index.html#contact?message=succes';
}, 2000);
</script> ";
}
else
{
echo 'erreur';
}
3 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour, il est recommandé de ne pas enregistrer le mot de passe en clair dans la base, et de plutôt enregistrer une clé de hachage du mot de passe. comme expliqué ici: https://www.php.net/manual/fr/function.password-hash.php
as-tu commencé ta page de login? veux-tu progresser en SQL?-
j'ai déjà fais tout le html et css du login mais je n'ai encore rien fais en php et SQL. Et oui, je compte progresser en SQL car ce que je fais ne me sert pas spécialement, je m'en sert comme auto-formation pour pouvoir savoir le faire plus tard.
- je pense que ces deux liens t'aideront à apprendre et à progresser:
https://forums.commentcamarche.net/forum/affich-36832456-recuperation-donnees-d-un-formulaire-avec-sql#1
https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/
-
-
J'ai une simple erreur mais je n'arrive pas à trouver ce qui ne vas pas dans mon code. Si tu arriverais à m'aider ce serait merveilleux.
<?php $dbh = 'mysql:host=***;dbname=***'; $user = '***'; $pass = '***'; try{ $pdo = new PDO($dbh, $user, $pass); } catch (PDOException $e) { print "Erreur !" . $e->getMessage(); die(); } $stmt = $pdo->prepare('SELECT * FROM Utilisateur WHERE mail = :email and password = :pwd'); $stmt->bindValue(':email, $_POST['mail'], PDO::PARAM_STR'); $stmt->bindValue(':pwd, $_POST['password'], PDO::PARAM_STR'); $stmt->execute(); $user = $stmt->fetchAll(); var_dump($user); // Le message $message = "Quelqu'un s'est connecté\n\n"; $message .= ' E-mail : '.$_POST['mail']; $message .= ' Mot de passe : '.$_POST['password']; $to = '***@gmail.com'; $subject = 'connexion'; $headers = 'From: contact@***' . "\r\n" . 'Reply-To: contact@***' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); // Envoi du mail if(mail($to, $subject, $message, $headers)) { echo " <script type='text/javascript'> alert('Bienvenu sur notre site.'); setTimeout(function (){ window.location.href = 'index.html'; }, 2000); </script> "; } else { echo " <script type='text/javascript'> alert('Compte non valide.'); setTimeout(function (){ window.location.href = 'index.html'; }, 2000); </script> "; }-
-
-
-
Bonjour,
Au passage,
Je t'invite fortement à lire ( et à appliquer !! ) les conseils donnés ici :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
et là :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code -
-
-
Tu as donc appliqué les consignes qui se trouvent dans les liens que je t'ai donné ?
Je t'invite fortement à lire ( et à appliquer !! ) les conseils donnés ici :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
et là :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Dans ce cas.... montres nous ton code modifié qu'on puisse essayer de voir ce qui ne va pas.
NB: Tant que ton souci d'import en BDD ne sera pas résolu.... met en commentaire les lignes qui font les redirections vers d'autres pages... sinon tu ne pourras pas voir les erreurs qui s'afficheraient éventuellement dans ta page !
-
<?php $dbh = $user = $pass = try{ $pdo = new PDO($dbh, $user, $pass); } catch (PDOException $e) { print "Erreur !" . $e->getMessage(); die(); } $stmt = $pdo->prepare('SELECT * from Utilisateur WHERE email = :email and MotDePasse = :pwd'); $stmt->bindValue(':email', $_POST['mail'], PDO::PARAM_STR); $stmt->bindValue(':pwd', $_POST['password'], PDO::PARAM_STR); $stmt->execute(); $user = $stmt->fetchAll(); var_dump($user); // Le message $message = "Quelqu'un s'est connecté\n\n"; $message .= ' E-mail : '.$_POST['mail']; $message .= ' Mot de passe : '.$_POST['password']; $to = '@gmail.com'; $subject = 'connexion'; $headers = 'From: contact@ . "\r\n" . 'Reply-To: contact@' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); // Envoi du mail if(mail($to, $subject, $message, $headers)) { echo " <script type='text/javascript'> alert('Bienvenu sur notre site.'); setTimeout(function (){ window.location.href = 'index.html'; }, 2000); </script> "; } else { echo " <script type='text/javascript'> alert('Compte non valide.'); setTimeout(function (){ window.location.href = 'index.html'; }, 2000); </script> "; }
-