Créer un espace membre en php

Résolu/Fermé
Gammer68 - 28 mai 2021 à 08:13
 Gammer68 - 8 juin 2021 à 16:54
Bonjour, je souhaiterai créer un espace membre pour mon site et un espace administrateur sauf que je connais a peine le php

Si quelqu’un aurais un tuto qui marche bien ou un code a me donner ce serai formidable

Merci d’avance

3 réponses

jordane45 Messages postés 36372 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 octobre 2022 4 366
28 mai 2021 à 09:12
1
Merci mais j’ai chercher mais rien qui ne me convient j’ai créer un site de streaming et je voudrais que seul les membres pourront visionner les films et que moi l’admin pourra retirer des membres ou bien ajouter des pages

Une idee ?
0
jordane45 Messages postés 36372 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 octobre 2022 4 366 > Gammer68
28 mai 2021 à 17:07
Oui.. faire un espace membre en tu appuies sur les tutos qui se trouvent dans le lien que je t'ai donné...
0
Gammer68 > jordane45 Messages postés 36372 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 octobre 2022
29 mai 2021 à 18:02
Bonjour j’ai coder un espace membre en php avec un tuto mais quand je clique sur inscription ou connexion cela m’écris un code erreur

Je vous l’envoie plus tard car je ne suis pas chez moi

Merci cordialement
0
Gammer68 > jordane45 Messages postés 36372 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 octobre 2022
30 mai 2021 à 11:59
Quand je me connecte avec mon formulaire cela m’écrit : Problème dans la requête de sélection : SQLSTATE[42S22]:Column not found: 1054 Unknown column ‘pass’ in ´where clause’

Une idee de quelle est le problème ?
0
Gammer68 > Gammer68
30 mai 2021 à 12:02
Voici mon code :

<?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>
0
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
0
jordane45 Messages postés 36372 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 octobre 2022 4 366
Modifié le 6 juin 2021 à 15:37
Bonjour

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)";
0
Gammer68 > jordane45 Messages postés 36372 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 octobre 2022
6 juin 2021 à 19:23
Merci beaucoup ???? je ne sais pas quoi dire ????
0
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;
}

?>
0