Partage
  • Partager sur Facebook
  • Partager sur Twitter

PhP formulaire d'inscription

comment faire un formulaire de connexion en php

Sujet résolu
20 juillet 2019 à 22:46:33

bonjour, j'ai fait un fichier incription en php qui fonctionne bien avec une redirection vers un fichier de connexion .php mais je ne sais pas comment faire pour le faire fonctionner... dans ma base de données "users" j'ai : un pseudo ("pseudo") un mail ("mail") un numéro de téléphone ("numero") et un password ("password"). qui peut m'aider svp. je veux que l'utilisateur puisse se connecter avec soit son pseudo/email/numéro et son password. Merci de m'avoir lu.

-
Edité par Jules Lsx 20 juillet 2019 à 23:31:51

  • Partager sur Facebook
  • Partager sur Twitter
20 juillet 2019 à 22:52:46

T'as essayé au moins qlq chose qui n'a pas marché ? un début de code a nous montrer ?!
  • Partager sur Facebook
  • Partager sur Twitter
20 juillet 2019 à 22:53:55

wxcqsd a écrit:

T'as essayé au moins qlq chose qui n'a pas marché ? un début de code a nous montrer ?!


non mais j'ai un fichier database pour faire un include apres mais j'ai rien essayer ca ne me senblait pas marcher
  • Partager sur Facebook
  • Partager sur Twitter
20 juillet 2019 à 22:59:55

j'ai les input avec la base de données connectée il me faut jute le code pour verifier que le compte existe et se connecter
  • Partager sur Facebook
  • Partager sur Twitter
20 juillet 2019 à 23:01:35

Bonsoir.

Commences par modifier le titre de ton sujet, il est incorrect et ne veut rien dire.

Si tu n'as pas suivi le cours sur le PHP (ce qui ne semble pas être le cas) fais le, car là c'est comme-ci tu voulais que nous te montrions comment faire ton code, ce que nous ne ferons pas.

  • Partager sur Facebook
  • Partager sur Twitter

Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

20 juillet 2019 à 23:05:33

ok merci beaucoup et comment fait on pour hacher le MDP ?
  • Partager sur Facebook
  • Partager sur Twitter
20 juillet 2019 à 23:15:13

Tu peux utiliser password_hash et password_verify()

Le premier au moment de l'insertion et le second pour la connexion...

-
Edité par wxcqsd 20 juillet 2019 à 23:15:59

  • Partager sur Facebook
  • Partager sur Twitter
20 juillet 2019 à 23:16:51

wxcqsd a écrit:

Tu peux utiliser password_hash et password_verify()

je le mets où password_hash ? dans le formulaire d'inscription mais où ?

  • Partager sur Facebook
  • Partager sur Twitter
20 juillet 2019 à 23:21:12

Je sais pas comment ton code est structuré ! tu l'appliques a ton mdp(après vérification...) avant insertion ou directement dans la requete.

-
Edité par wxcqsd 20 juillet 2019 à 23:21:59

  • Partager sur Facebook
  • Partager sur Twitter
20 juillet 2019 à 23:21:48

JulesLeSaux a écrit:

wxcqsd a écrit:

Tu peux utiliser password_hash et password_verify()

je le mets où password_hash ? dans le formulaire d'inscription mais où ?

Pas dans le formulaire, mais dans le code du traitement du formulaire.

  • Partager sur Facebook
  • Partager sur Twitter

Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

20 juillet 2019 à 23:25:59

et j'ai une erreur qui s'affiche Fatal error: Uncaught Error: Call to a member function execute() on boolean

c'est avec la connexion et le tuto

  • Partager sur Facebook
  • Partager sur Twitter
20 juillet 2019 à 23:27:01

JulesLeSaux a écrit:

et j'ai une erreur qui s'affiche Fatal error: Uncaught Error: Call to a member function execute() on boolean

c'est avec la connexion et le tuto


Montres nous ton code si tu veux que nous puissions t'aider.

Quand vas-tu changer le titre du sujet ?

-
Edité par Lartak 20 juillet 2019 à 23:29:59

  • Partager sur Facebook
  • Partager sur Twitter

Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

20 juillet 2019 à 23:28:28

Bonjour,

Mauvais titre

Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

Pour modifier votre titre, éditez le premier message de votre sujet.

(titre originel : aide svp connection php)

Liens conseillés

  • Partager sur Facebook
  • Partager sur Twitter
20 juillet 2019 à 23:28:47

<?php 
include "database.php";

//  Récupération de l'utilisateur et de son pass hashé
$req = $mysqli->prepare('SELECT pseudo, pass FROM membres WHERE pseudo = :pseudo');
$req->execute(array(
    'pseudo' => $pseudo));
$resultat = $req->fetch();

// Comparaison du pass envoyé via le formulaire avec la base
$isPasswordCorrect = password_verify($_POST['password'], $resultat['password']);

if (!$resultat)
{
    header('location:mon site avec message d'erreur');
}
else
{
    if ($isPasswordCorrect) {
        session_start();
        $_SESSION['pseudo'] = $resultat['pseudo'];
        $_SESSION['pseudo'] = $pseudo;
        header('location:espace membre');
    }
    else {
        header('location:mon site avec un message d'ereur');
    }
}
?>
  • Partager sur Facebook
  • Partager sur Twitter
20 juillet 2019 à 23:31:30

La variable pseudo sort d'où ?

Tu ne la définie à aucun moment dans ton script.

  • Partager sur Facebook
  • Partager sur Twitter

Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

20 juillet 2019 à 23:33:28

Lartak a écrit:

La variable pseudo sort d'où ?

Tu ne la définie à aucun moment dans ton script.


je la definie comme pour mon formulaire d'insciption ?
if(isset($_POST['formsend'])){
$pseudo = $_POST['pseudo'];
$pass = $_POST['password'];
  • Partager sur Facebook
  • Partager sur Twitter
20 juillet 2019 à 23:35:15

JulesLeSaux a écrit:

Lartak a écrit:

La variable pseudo sort d'où ?

Tu ne la définie à aucun moment dans ton script.


je la definie comme pour mon formulaire d'insciption ?

if(isset($_POST['formsend'])){
$pseudo = $_POST['pseudo'];
$pass = $_POST['password'];

Mais dans le code que tu nous montres, il n'y a pas cette partie du code, si tu veux que nous puissions t'aider, il ne faut pas nous donner que des bribes de codes, mais le code correspondant.

Sinon, c'est quoi ces redirections avec header ?

-
Edité par Lartak 20 juillet 2019 à 23:38:27

  • Partager sur Facebook
  • Partager sur Twitter

Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

20 juillet 2019 à 23:37:32

<?php

include 'database.php';




if(isset($_POST['formsend'])){
	$pseudo = $_POST['pseudo'];
	$mails = $_POST['mail'];
	$num = $_POST['numéro'];
	$pass = $_POST['password'];
	$query = $mysqli->query("INSERT INTO `users`(`pseudo`, `mail`, `password`, `numero`) VALUES ('$pseudo','$mails','$pass','$num')");
	header('location: ma page de connexion');
}
  • Partager sur Facebook
  • Partager sur Twitter
20 juillet 2019 à 23:39:48

C'est le code sur lequel tu as l'erreur que tu as indiqué (ça m'étonnerait, car tu n'utilises pas la méthode execute sur celui-ci) ?

Car il est complètement différent du précédent.

-
Edité par Lartak 20 juillet 2019 à 23:40:54

  • Partager sur Facebook
  • Partager sur Twitter

Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

20 juillet 2019 à 23:39:51

c'est ma page d'inscription en php
  • Partager sur Facebook
  • Partager sur Twitter
20 juillet 2019 à 23:41:36

Le code qu'il nous faut, c'est celui sur lequel tu as l'erreur, et non n'importe lequel.
  • Partager sur Facebook
  • Partager sur Twitter

Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

20 juillet 2019 à 23:42:37

c'est le gros bloque que je t'ai envoyé tout a l'heure ou tu m'as dit de mettre mes variables
  • Partager sur Facebook
  • Partager sur Twitter
20 juillet 2019 à 23:43:23

Montres le code corrigé alors ou tout du moins complet.

Au passage, tu as toujours l'erreur ?

-
Edité par Lartak 20 juillet 2019 à 23:45:44

  • Partager sur Facebook
  • Partager sur Twitter

Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

20 juillet 2019 à 23:53:57

Lartak a écrit:

Montres le code corrigé alors ou tout du moins complet.

Au passage, tu as toujours l'erreur ?

-
Edité par Lartak il y a moins de 30s

oui j'ai toujours cette erreur mais lorsque j'appuis sur le bouton se connecter Fatal error: Uncaught Error: Call to a member function execute() on boolean
<?php
include"database.php";
if(isset($_POST['formsend'])){
$pseudo = $_POST['pseudo'];
$pass = $_POST['password'];
// Récupération de l'utilisateur et de son pass hashé
$req = $mysqli->prepare('SELECT pseudo, pass FROM membres WHERE pseudo = :pseudo');
$req->execute(array(
'pseudo' => $pseudo));
$resultat = $req->fetch();

// Comparaison du pass envoyé via le formulaire avec la base
$isPasswordCorrect = password_verify($_POST['password'], $resultat['password']);

if (!$resultat)
{
header('location: monsite');
}
else
{
if ($isPasswordCorrect) {
session_start();
$_SESSION['pseudo'] = $resultat['pseudo'];
$_SESSION['pseudo'] = $pseudo;
header('location: monsite');
}
else {
header('location: monsite');
}
}
}
?>
  • Partager sur Facebook
  • Partager sur Twitter
21 juillet 2019 à 0:00:45

Donc en gros, tu ne vérifie même pas si le pseudo et le mot de passe ont bien été saisies dans le formulaire.

Tu as bien les erreurs PHP activées et celles de PDO ?

Quel est l'intérêt d'écrire le pseudo dans la session si c'est pour la réécrire juste une ligne en dessous ?

  • Partager sur Facebook
  • Partager sur Twitter

Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

21 juillet 2019 à 0:06:24

Lartak a écrit:

Donc en gros, tu ne vérifie même pas si le pseudo et le mot de passe ont bien été saisies dans le formulaire.

Tu as bien les erreurs PHP activées et celles de PDO ?

Quel est l'intérêt d'écrire le pseudo dans la session si c'est pour la réécrire juste une ligne en dessous ?


pour reecrire le pseudo je ne sais pas c'etait dans le tp openclassroom

pour le reste tu peux m'aider stp ?

je n'y arrive vraiment pas et je n'ai pas d'erreurs PDO

  • Partager sur Facebook
  • Partager sur Twitter
21 juillet 2019 à 0:13:17

On peut voir ton fichier "database.php"
  • Partager sur Facebook
  • Partager sur Twitter
21 juillet 2019 à 0:25:42

JulesLeSaux a écrit:

pour reecrire le pseudo je ne sais pas c'etait dans le tp openclassroom

Non, dans le tp du cours, il y a id et pseudo écrit dans la session dans cette partie du code.

JulesLeSaux a écrit:

pour le reste tu peux m'aider stp ?

Il te faut faire la vérification que la valeur pour le pseudo et le mot de passe ne soit pas vide ainsi que les clé pour ces inputs existent bien dans la variable $_POST, ce qui peut se faire pour chacun à l'aide d'une seule fonction, car il ne suffit pas de vérifier si le formulaire à été soumis, il faut également vérifier la présence des valeurs de chaque inputs, ainsi que leur valeur ne soient pas vide et leurs formats.

JulesLeSaux a écrit:

je n'ai pas d'erreurs PDO

Il te faut activer les erreurs PDO lors de la connexion à la base de données, soit dans ton fichier database.php.
  • Partager sur Facebook
  • Partager sur Twitter

Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

21 juillet 2019 à 2:11:24

Lartak a écrit:

JulesLeSaux a écrit:

pour reecrire le pseudo je ne sais pas c'etait dans le tp openclassroom

Non, dans le tp du cours, il y a id et pseudo écrit dans la session dans cette partie du code.

oui j'ai remplacé id car je  ne savais pas ce que c'était

JulesLeSaux a écrit:

pour le reste tu peux m'aider stp ?

Il te faut faire la vérification que la valeur pour le pseudo et le mot de passe ne soit pas vide ainsi que les clé pour ces inputs existent bien dans la variable $_POST, ce qui peut se faire pour chacun à l'aide d'une seule fonction, car il ne suffit pas de vérifier si le formulaire à été soumis, il faut également vérifier la présence des valeurs de chaque inputs, ainsi que leur valeur ne soient pas vide et leurs formats.

pour verifier qu'ils ne soient pas vides j'ai deja fait avec un required

JulesLeSaux a écrit:

je n'ai pas d'erreurs PDO

Il te faut activer les erreurs PDO lors de la connexion à la base de données, soit dans ton fichier database.php.

comment je fait ?



  • Partager sur Facebook
  • Partager sur Twitter