Création formulaire de connexion
anne so52
Messages postés
31
Statut
Membre
-
jordane45 Messages postés 40050 Statut Modérateur -
jordane45 Messages postés 40050 Statut Modérateur -
Bonjour,
je souhaite créer un formulaire de connexion basique mais sans possibilité d'enregistrement cela se fera manuellement sous demande de mail par l'utilisateur.
J'ai pris exemple sur Internet mais cela ne fonctionne pas...
Fichier connexion.html
Ma table SQL dans ma base de données qui sera remplie manuellement :
Le php de connexion.html, il faut le mettre dans un autre fichier php?
J'ai trouvé comme source de tuto sur OpenClassRooms... Mais je ne comprends pas tout... Faut-il plusieurs fichiers afin de créer mon formulaire de connexion relier à ma base de données... Avez-vous un bon tuto facile à comprendre pour m'aiguiller?
Merci
je souhaite créer un formulaire de connexion basique mais sans possibilité d'enregistrement cela se fera manuellement sous demande de mail par l'utilisateur.
J'ai pris exemple sur Internet mais cela ne fonctionne pas...
Fichier connexion.html
<!DOCTYPE html>
<?php
include("fonctions.php");
?>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="style.css" />
<title>Site Internet</title>
</head>
<body>
<div id="bloc_page">
<header>
<div id="titre_principal">
<div id="logo">
<img src="images/FNDC_logo.jpg" alt="Logo de FNDC" />
<h1>Bienvenue</h1>
</div>
</div>
<nav>
<ul>
<li><a href="#" rel="nofollow noopener noreferrer" target="_blank">Accueil</a></li>
<li><a href="connexion.html" rel="nofollow noopener noreferrer" target="_blank">Connexion</a></li>
<li><a href="#" rel="nofollow noopener noreferrer" target="_blank">Contact</a></li>
</ul>
</nav>
</header><br><br><br><br><br>
<?php
if (!isset($_POST['pseudo'])) //On est dans la page de formulaire
{
echo '<form method="post" action="connexion.php">
<fieldset>
<legend>Connexion</legend>
<p>
<label for="pseudo">Pseudo :</label><input name="pseudo" type="text" id="pseudo" /><br />
<label for="password">Mot de Passe :</label><input type="password" name="password" id="password" />
</p>
</fieldset>
<p><input type="submit" value="Connexion" /></p></form>
<a href="./register.php" rel="nofollow noopener noreferrer" target="_blank">Pas encore inscrit ?</a>
</div>
</body>
</html>
<?php
// Vérification des identifiants
$req = $bdd->prepare('SELECT id FROM membres WHERE pseudo = :pseudo AND pass = :pass');
$req->execute(array(
'pseudo' => $pseudo,
'pass' => $pass));
$resultat = $req->fetch();
if (!$resultat)
{
echo 'Mauvais identifiant ou mot de passe !';
}
else
{
session_start();
$_SESSION['id'] = $resultat['id'];
$_SESSION['pseudo'] = $pseudo;
echo 'Vous êtes connecté !';
}
</div>
</body>
</html>
Ma table SQL dans ma base de données qui sera remplie manuellement :
CREATE TABLE membres ( id int AUTO_INCREMENT PRIMARY KEY, pseudo varchar (255), pass varchar (255), email varchar (255), date_inscription date )
Le php de connexion.html, il faut le mettre dans un autre fichier php?
J'ai trouvé comme source de tuto sur OpenClassRooms... Mais je ne comprends pas tout... Faut-il plusieurs fichiers afin de créer mon formulaire de connexion relier à ma base de données... Avez-vous un bon tuto facile à comprendre pour m'aiguiller?
Merci
A voir également:
- Formulaire de connexion php pdo
- Whatsapp formulaire opposition - Guide
- Gmail connexion - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Formulaire de reclamation instagram - Guide
- Connexion chromecast - Guide
Au niveau de l'affichage pas de soucis...
J'ai ma requête qui s'affiche en dessous : prepare('SELECT id FROM membres WHERE pseudo = :pseudo AND pass = :pass'); $req->execute(array( 'pseudo' => $pseudo, 'pass' => $pass)); $resultat = $req->fetch(); if (!$resultat) { echo 'Mauvais identifiant ou mot de passe !'; } else { session_start(); $_SESSION['id'] = $resultat['id']; $_SESSION['pseudo'] = $pseudo; echo 'Vous êtes connecté !'; }
J'ai oublié quelque chose?
else { session_start(); $_SESSION['id'] = $resultat['id']; $_SESSION['pseudo'] = $pseudo; echo 'Vous êtes connecté !'; //ici par exemple.. header('location:tapage.php'); exit(); }Au passage.....
- Essaye de placer le maximum de ton code php AVANT le code HTML.
- Le Session_start doit être au tout début de ton script (en haut de ta page donc)...
- Met en place la gestion des erreurs PDO : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
<!DOCTYPE html> <?php include("fonctions.php"); session_start(); // Vérification des identifiants $req = $bdd->prepare('SELECT id FROM membres WHERE pseudo = :pseudo AND pass = :pass'); $req->execute(array('pseudo' => $pseudo,'pass' => $pass)); $resultat = $req->fetch(); if (!$resultat) { echo 'Mauvais identifiant ou mot de passe !'; } else { session_start(); $_SESSION['id'] = $resultat['id']; $_SESSION['pseudo'] = $pseudo; echo 'Vous êtes connecté !'; header('location:fb.php'); exit(); } ?> <html> <head> <meta charset="utf-8" /> <link rel="stylesheet" href="style.css" /> <title>Signalement</title> </head> <body> <div id="bloc_page"> <header> <div id="titre_principal"> <div id="logo"> <img src="images/FNDC_logo.jpg" alt="Logo de FNDC" /> <h1>Fichier de signalement</h1> </div> </div> <nav> <ul> <li><a href="accueil.html" rel="nofollow noopener noreferrer" target="_blank">Accueil</a></li> <li><a href="connexion.html" rel="nofollow noopener noreferrer" target="_blank">Connexion</a></li> <li><a href="#" rel="nofollow noopener noreferrer" target="_blank">Contact</a></li> </ul> </nav> </header><br><br><br><br><br> <?php if (!isset($_POST['pseudo'])) //On est dans la page de formulaire { echo '<form method="post" action=""> <fieldset> <legend>Connexion</legend> <p> <label for="pseudo">Pseudo :</label><input name="pseudo" type="text" id="pseudo" /><br /> <label for="password">Mot de Passe :</label><input type="password" name="password" id="password" /> </p> </fieldset> <p><input type="submit" value="Connexion" /></p></form> </div> </body> </html>Voila j'ai modifier mon code en mettant le maximum de php au dessus... mais toujours la ligne sql qui apparait prepare('SELECT id FROM membres WHERE pseudo = :pseudo AND pass = :pass'); $req->execute(array('pseudo' => $pseudo,'pass' => $pass)); $resultat = $req->fetch(); if (!$resultat) { echo 'Mauvais identifiant ou mot de passe !'; } else { session_start(); $_SESSION['id'] = $resultat['id']; $_SESSION['pseudo'] = $pseudo; echo 'Vous êtes connecté !'; header('location:facebook.php'); exit(); } ?>
cependant je viens de regarde pour la gestion des erreurs des PDO mais je ne comprends pas la système... je suis novice en la matière...
humm.... dis voir .... Tu as quoi comme URL dans ton navigateur ??
Si tu es en "local" sur ton ordi.... as tu bien installé un serveur PHP comme WAMP ou XAMPP ou EASYPHP ??
Et.... pour l'URL .... passes-tu bien par le LOCALHOST ??
Sans ça... le code PHP ne pourra pas être interprété par ton navigateur.
Sans oublier que tu dois nommer tes fichiers en .php