Création formulaire de connexion [Fermé]

Signaler
Messages postés
23
Date d'inscription
jeudi 1 août 2013
Statut
Membre
Dernière intervention
4 octobre 2016
-
Messages postés
31505
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 février 2021
-
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
<!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:

1 réponse

Messages postés
31505
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 février 2021
3 283
Bonjour

Soit tu mets l'attribut action à vide dans ton form.... soit tu crées un fichier connexion.php dans lequel tu places ton code php.

Nb: si tu es en local sur ton pc... penses à installer un logiciel comme wamp ou xampp ou easyphp et à passer par le localhost
Messages postés
31505
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 février 2021
3 283 >
Messages postés
23
Date d'inscription
jeudi 1 août 2013
Statut
Membre
Dernière intervention
4 octobre 2016

Ca veut dire que la connexion à ta BDD n'est pas faite (ou bien faite...)
Qu'as tu mis comme code pour te connecter à la BDD ?

Sachant que tu peux te servir du code disponible ici : https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs
(en remplaçant le user et le password par le tient... (par défaut : root pour le user et rien '' pour le password )


try{
$bdd =new PDO('mysql:host=localhost; 
 dbname=mabdd; charset=utf8', 'user', 'password');
 $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
} catch(PDOException $e) {
    die('Erreur : ' . $e->getMessage());
}
Messages postés
23
Date d'inscription
jeudi 1 août 2013
Statut
Membre
Dernière intervention
4 octobre 2016
>
Messages postés
31505
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 février 2021

Voila je viens de faire ce que tu viens de me donner comme code :
J'ai bien l'affichage de ma page, avec l'erreur qui reste au dessus... La il me dit comme erreur : Notice: Undefined variable: pseudo in C:\wamp\www\Monsite\connexion.php on line 17 et pareil pour le pass... et en affichant "Mauvais identifiant ou mot de passe ! "
En sachant que je n'ai pas encore essayer de m'identifier...

En essayant de m'identifier avec le login et mdp que j'ai inséré dans la bdd ou en mettant n'importe quoi, même chose... la page reste blanche, simplement explorer qui me demande si je veux enregistrer le mdp...

J'avais déja créer un formulaire qui fonctionner en lien avec une fonction permettant la connexion à la base de données. C'est pour cela que je m'etonne que la connexion ne se fasse pas bien :

<?php
function connectMaBase(){
    $hote = 'localhost';
	$utilisateur = 'root';
	$mdp = '';
	$nombdd = 'test'; // Nom de la base de données
	$bdd = mysqli_connect($hote, $utilisateur, $mdp, $nombdd);
if (!$bdd) {
    echo 'Erreur de connexion (' . mysqli_connect_errno() . ') ' . mysqli_connect_error();
}
 return $bdd;
}
?>
Messages postés
31505
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 février 2021
3 283 >
Messages postés
23
Date d'inscription
jeudi 1 août 2013
Statut
Membre
Dernière intervention
4 octobre 2016

Là....Le code que tu nous montres c'est la connexion à une BDD en utilisant mysqli ( de style procédurale....)

Sauf que le reste de ton code (celui que tu nous a montré au départ....) ce n'est pas en mysqli ... mais en PDO .....

Tu as donc mélangé deux technos différentes...........

Donc tu dois choisir ...
- Soit tu fais du mysqli
- Soit tu fais du PDO

La syntaxe n'étant pas du tout identique entre les deux technos !
Messages postés
23
Date d'inscription
jeudi 1 août 2013
Statut
Membre
Dernière intervention
4 octobre 2016

ok je suis complétement perdu... vaut mieux que je parte comment du coup à ton avis? le plus facille?
Messages postés
31505
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 février 2021
3 283 >
Messages postés
23
Date d'inscription
jeudi 1 août 2013
Statut
Membre
Dernière intervention
4 octobre 2016

Moi j'ai une préférence pour PDO.
Mais ... le plus facile.... ça sera sûrement mysqli pour toi (si tu sais coder en mysql à l'origine....)