Créer un espace membre en php
Résolu/Fermé
A voir également:
- Espace membre php pdo
- Espace insécable word - Guide
- Comment liberer de l'espace sur gmail - Guide
- Membre indisponible vinted - Guide
- Easy php - Télécharger - Divers Web & Internet
- Espace de stockage google - Guide
3 réponses
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
28 mai 2021 à 09:12
28 mai 2021 à 09:12
Bonjour j'ai créer un espace d'inscription sauf que :
Pouvez-vous m'aidez à le combatre svp
Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1 in C:\xampp\htdocs\PRO-ENT\index.php:43 Stack trace: #0 C:\xampp\htdocs\PRO-ENT\index.php(43): PDOStatement->execute(Array) #1 {main} thrown in C:\xampp\htdocs\PRO-ENT\index.php on line 43
Mon arme:
<!DOCTYPE html>
<html lang="fr">
<head>
<title>PRO ENT</title>
</head>
<body>
<!-- Menu de navigation -->
<?php include 'menunavigation.php'; ?>
<form method="post">
<input type="email" name="semail" id="semail" placeholder="Votre Email" requierd><br>
<input type="password" name="password" id="password" placeholder="Votre Mot de passe" requierd><br>
<input type="password" name="cpassword" id="cpassword" placeholder="Confirme votre Mot de passe" requierd><br>
<input type="submit" name="formsend" id="formsend" value="Ok">
</form>
<?php
if(isset($_POST['formsend'])){
extract($_POST);
if(!empty($password) && !empty($cpassword) && !empty($semail)){
if($password == $cpassword){
$options = [
'cost' => 12,
];
$hashpass = password_hash($password, PASSWORD_BCRYPT, $options);
include 'includes/database.php';
global $db;
$c = $db->prepare("SELECT email FROM users WHERE email = :email");
$c->execute(['email' => $semail]);
$q = $db->prepare("INSERT INTO users(email,password) VALUES(:email,:password");
$q->execute([
'email' => $semail,
'password' => $hashpass
]);
}
// if(password_verify('vinaigrette22', $hashpass)){
// echo "Le mot de passe est le meme";
// } else {
// echo "Le mot de passe n'est pas correcte";
// }
}else{
echo "Les champs ne sont pas tous remplis";
}
}
?>
</body>
</html>
Ligne 43: 'password' => $hashpass
Pouvez-vous m'aidez à le combatre svp
Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1 in C:\xampp\htdocs\PRO-ENT\index.php:43 Stack trace: #0 C:\xampp\htdocs\PRO-ENT\index.php(43): PDOStatement->execute(Array) #1 {main} thrown in C:\xampp\htdocs\PRO-ENT\index.php on line 43
Mon arme:
<!DOCTYPE html>
<html lang="fr">
<head>
<title>PRO ENT</title>
</head>
<body>
<!-- Menu de navigation -->
<?php include 'menunavigation.php'; ?>
<form method="post">
<input type="email" name="semail" id="semail" placeholder="Votre Email" requierd><br>
<input type="password" name="password" id="password" placeholder="Votre Mot de passe" requierd><br>
<input type="password" name="cpassword" id="cpassword" placeholder="Confirme votre Mot de passe" requierd><br>
<input type="submit" name="formsend" id="formsend" value="Ok">
</form>
<?php
if(isset($_POST['formsend'])){
extract($_POST);
if(!empty($password) && !empty($cpassword) && !empty($semail)){
if($password == $cpassword){
$options = [
'cost' => 12,
];
$hashpass = password_hash($password, PASSWORD_BCRYPT, $options);
include 'includes/database.php';
global $db;
$c = $db->prepare("SELECT email FROM users WHERE email = :email");
$c->execute(['email' => $semail]);
$q = $db->prepare("INSERT INTO users(email,password) VALUES(:email,:password");
$q->execute([
'email' => $semail,
'password' => $hashpass
]);
}
// if(password_verify('vinaigrette22', $hashpass)){
// echo "Le mot de passe est le meme";
// } else {
// echo "Le mot de passe n'est pas correcte";
// }
}else{
echo "Les champs ne sont pas tous remplis";
}
}
?>
</body>
</html>
Ligne 43: 'password' => $hashpass
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
Modifié le 6 juin 2021 à 15:37
Modifié le 6 juin 2021 à 15:37
Bonjour
Tu n'as pas fermé la quôte au bonne endroit
Tu n'as pas fermé la quôte au bonne endroit
$q = $db->prepare("INSERT INTO users(email,password) VALUES(:email,:password");
$q = $db->prepare("INSERT INTO users(email,password) VALUES(:email,:password)";
Gammer68
>
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
6 juin 2021 à 19:23
6 juin 2021 à 19:23
Merci beaucoup ???? je ne sais pas quoi dire ????
Bonjour j'ai coder un espace membre mais j'ai une erreur:
le virus: ( ! ) Parse error: syntax error, unexpected ''HOST'' (T_CONSTANT_ENCAPSED_STRING) in C:\wamp64\www\site\includes\database.php on line 2
mon arme:
<?php
define'HOST','localhost');
define'DB_NAME','siteweb');
define'USER','root');
define'PASS','');
try{
$db = new PDO("mysql:host=" ; . HOST .";dbname=" . DB_NAME, USERR, PASS);
$db=>setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
echo $e;
}
?>
le virus: ( ! ) Parse error: syntax error, unexpected ''HOST'' (T_CONSTANT_ENCAPSED_STRING) in C:\wamp64\www\site\includes\database.php on line 2
mon arme:
<?php
define'HOST','localhost');
define'DB_NAME','siteweb');
define'USER','root');
define'PASS','');
try{
$db = new PDO("mysql:host=" ; . HOST .";dbname=" . DB_NAME, USERR, PASS);
$db=>setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
echo $e;
}
?>
28 mai 2021 à 16:22
Une idee ?
28 mai 2021 à 17:07
29 mai 2021 à 18:02
Je vous l’envoie plus tard car je ne suis pas chez moi
Merci cordialement
30 mai 2021 à 11:59
Une idee de quelle est le problème ?
30 mai 2021 à 12:02
<?php
/* Indique le bon format des entêtes (par défaut apache risque de les envoyer au standard ISO-8859-1)*/
header('Content-type: text/html; charset=UTF-8');
/* Initialisation de la variable du message de réponse*/
$message = null;
/* Récupération des variables issues du formulaire par la méthode post*/
$pseudo = filter_input(INPUT_POST, 'pseudo');
$pass = filter_input(INPUT_POST, 'pass');
/* Si le formulaire est envoyé*/
if (isset($pseudo,$pass))
{
/* Teste que les valeurs ne sont pas vides ou composées uniquement d'espaces */
$pseudo = trim($pseudo) != '' ? $pseudo : null;
$pass = trim($pass) != '' ? $pass : null;
/* Si $pseudo et $pass différents de null */
if(isset($pseudo,$pass))
{
/* Connexion au serveur : dans cet exemple, en local sur le serveur d'évaluation
A MODIFIER avec vos valeurs */
$hostname = "localhost";
$database = "espace_membres";
$username = "root";
$password = "";
/* Configuration des options de connexion */
/* Désactive l'éumlateur de requêtes préparées (hautement recommandé) */
$pdo_options[PDO::ATTR_EMULATE_PREPARES] = false;
/* Active le mode exception */
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
/* Indique le charset */
$pdo_options[PDO::MYSQL_ATTR_INIT_COMMAND] = "SET NAMES utf8";
/* Connexion */
try
{
$connect = new PDO('mysql:host='.$hostname.';dbname='.$database, $username, $password, $pdo_options);
}
catch (PDOException $e)
{
exit('problème de connexion à la base');
}
/* Requête pour récupérer les enregistrements répondant à la clause : champ du pseudo et champ du mdp de la table = pseudo et mdp posté dans le formulaire */
$requete = "SELECT * FROM membres WHERE pseudo = :nom AND pass = :password";
try
{
/* Préparation de la requête*/
$req_prep = $connect->prepare($requete);
/* Exécution de la requête en passant les marqueurs et leur variables associées dans un tableau*/
$req_prep->execute(array(':nom'=>$pseudo,':password'=>$pass));
/* Création du tableau du résultat avec fetchAll qui récupère tout le tableau en une seule fois*/
$resultat = $req_prep->fetchAll();
$nb_result = count($resultat);
if ($nb_result == 1)
{
/* Démarre une session si aucune n'est déjà existante et enregistre le pseudo dans la variable de session $_SESSION['login'] qui donne au visiteur la possibilité de se connecter. */
if (!session_id()) session_start();
$_SESSION['login'] = $pseudo;
$message = 'Bonjour '.htmlspecialchars($_SESSION['login']).', vous êtes connecté';
/*ou redirection vers une page en cas de succès ex : menu.php*/
/*header("Location: menu.php");
exit();*/
/* Si vous voulez récupérer les données elles se trouvent dans la première et unique ligne du tableau $resultat par exemple */
/* $result = $resultat[0];
echo $result['pseudo'];
echo $result['date_enregistrement'];
}
else if ($nb_result > 1)
{
/* Par sécurité si plusieurs réponses de la requête mais si la table est bien construite on ne devrait jamais rentrer dans cette condition */
$message = 'Problème de d\'unicité dans la table';
}
else
{ /* Le pseudo ou le mot de passe sont incorrect */
$message = 'Le pseudo ou le mot de passe sont incorrect';
}
}
catch (PDOException $e)
{
$message = 'Problème dans la requête de sélection : '.$e->getMessage();
}
}
}
else
{/*au moins un des deux champs "pseudo" ou "mot de passe" n'a pas été rempli*/
$message = 'Les champs Pseudo et Mot de passe doivent être remplis.';
}
?>
<!doctype html>
<html lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Formulaire de connexion</title>
<!--[if IE]>
<style type="text/css">
body {background-color: #cccccc !important;}
/style>
<![endif]-->
<style type="text/css">
<!--
body, p, h1,form, input, fieldset
{
margin:0;
padding:0;
}
body
{
background-color: #F4F4F4;
}
#connexion
{
width:400px;
background:#FFFFFF;
margin:20px auto;
font-family: Arial, Helvetica, sans-serif;
font-size:1em;
border:1px solid #ccc;
border-radius:10px;
}
#connexion fieldset
{
text-align:center;
font-size:1.2em;
background:#333333;
padding-bottom:5px;
margin-bottom:15px;
color:#FFFFFF;
letter-spacing:0.05em;
border-top-left-radius:10px;
border-top-right-radius:10px;
border:1;
}
#connexion p
{
padding-top:15px;
padding-right:50px;
text-align:right;
}
#connexion input
{
margin-left:30px;
width:150px;
}
#connexion #valider
{
width:155px;
font-size:0.8em;
}
#connexion #message
{
height:27px;
color:#F00;
font-size:0.8em;
font-weight:bold;
text-align:center;
padding:10px 0 0 0;
}
-->
</style>
</head>
<body>
<div id = "connexion">
<form action = "#" method="post">
<fieldset>Connexion</fieldset>
<p><label for="pseudo">Pseudo : </label><input type="text" name="pseudo" id="pseudo" /></p>
<p><label for="pass">Mot de passe : </label><input type="password" name="pass" id="pass" /></p>
<p><input type="submit" value="Envoyer" id = "valider" /></p>
</form>
<p id = "message"><?= $message?:'' ?></p>
</div>
</body>
</html>