(php/mysql) session administrateur
Résolu/Fermé
Gwendo69
Messages postés
147
Date d'inscription
lundi 29 septembre 2008
Statut
Membre
Dernière intervention
28 juin 2013
-
21 mars 2009 à 18:33
HabibSalhi Messages postés 1 Date d'inscription dimanche 7 mai 2017 Statut Membre Dernière intervention 7 mai 2017 - 7 mai 2017 à 14:18
HabibSalhi Messages postés 1 Date d'inscription dimanche 7 mai 2017 Statut Membre Dernière intervention 7 mai 2017 - 7 mai 2017 à 14:18
A voir également:
- (php/mysql) session administrateur
- Mot de passe administrateur - Guide
- Easy php - Télécharger - Divers Web & Internet
- Invite de commande administrateur - Guide
- Mysql community server - Télécharger - Bases de données
- Formater un pc bloqué par administrateur - Guide
6 réponses
bissdebrazza
Messages postés
2065
Date d'inscription
vendredi 29 juin 2007
Statut
Contributeur
Dernière intervention
7 décembre 2017
712
23 mars 2009 à 00:20
23 mars 2009 à 00:20
salut!
voici un exemple simple:
Bon voila,tu adaptes et ça devrai marché!
voici un exemple simple:
<?php session_start(); // début de session // Paramètres de connexion $hostname= "localhost"; // nom ou ip de votre serveur $database = ""; // nom de votre base de données $username= "root"; // nom d'utilisateur (root par défaut) $password= ""; // mot de passe $db = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR); if (isset($_POST['login'])){ // execution uniquement apres envoi du formulaire (test si la variable POST existe) $login = addslashes($_POST['login']); // mise en variable du nom d'utilisateur $pass = addslashes(($_POST['pass'])); // mise en variable du mot de passe // requete sur la table administrateurs (on récupère les infos de la personne) mysql_select_db($database, $db); $verif_query=sprintf("SELECT * FROM ta_table WHERE login='$login' AND password='$pass'"); $verif = mysql_query($verif_query, $db) or die(mysql_error()); $row_verif = mysql_fetch_assoc($verif); $admin = mysql_num_rows($verif); if ($admin) { // On test s'il y a un utilisateur correspondant session_register("authentification"); // enregistrement de la session // déclaration des variables de session $_SESSION['nom'] = $row_verif['nom']; // Son nom $_SESSION['login'] = $row_verif['login']; // Son Login header("Location:espaceadmin.php"); // redirection si OK } else { header("Location:connectadmin.php?erreur=login"); // redirection si utilisateur non reconnu } } // Gestion de la déconnexion if(isset($_GET['erreur']) && $_GET['erreur'] == 'logout'){ // Test sur les paramètres d'URL qui permettront d'identifier un contexte de déconnexion $nom = $_SESSION['nom']; // On garde le prénom en variable pour dire au revoir session_unset("authentification"); header("Location:connectadmin.php?erreur=delog&nom=$nom"); } ?> <html> <!-- DW6 --> <head> <!-- Copyright 2005 Macromedia, Inc. All rights reserved. --> <title>::Espace Administrateur::</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#64748B"> <form action="" method="post" name="connect"> <p align="center" class="titre"><strong>- : : : CONNEXION CLIENT : : : -</strong></p> <p align="center" class="title"> <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "login")) { // Affiche l'erreur ?> <strong class="erreur"><font color="#FF0000">Echec d'authentification !!! > login ou mot de passe incorrect</font></strong> <?php } ?> <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "delog")) { // Affiche l'erreur ?> <strong class="reussite"><font color="#00FF00">Déconnexion réussie... A bientôt </font><?php echo $_GET['nom'];?> !</strong> <?php } ?> <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "intru")) { // Affiche l'erreur ?> <strong class="erreur"><font color="#FF0000">Echec d'authentification !!! > Aucune session n'est ouverte ou vous n'avez pas les droits pour afficher cette page</font></strong> <?php } ?> </p> <table width="300" border="0" align="center" cellpadding="10" cellspacing="0" bgcolor="#eeeeee" class="tableaux"> <tr> <td width="50%""><div align="right">login</div></td> <td width="50%"><input name="login" type="text" id="login"></td> </tr> <tr> <td width="50%""><div align="right">mot de passe</div></td> <td width="50%"><input name="pass" type="password" id="pass"></td> </tr> <tr> <td height="34" colspan="2"><div align="center"> <input type="submit" name="Submit" value="Se connecter"> </div></td> </tr> </table> </form> </body> </html>
Bon voila,tu adaptes et ça devrai marché!
bissdebrazza
Messages postés
2065
Date d'inscription
vendredi 29 juin 2007
Statut
Contributeur
Dernière intervention
7 décembre 2017
712
21 mars 2009 à 18:57
21 mars 2009 à 18:57
Salut!
Voici un tuto pour faire la connexion avec login et mot de passe.
N'hésite pas si tu rencontres des difficultés!
Voici un tuto pour faire la connexion avec login et mot de passe.
N'hésite pas si tu rencontres des difficultés!
Gwendo69
Messages postés
147
Date d'inscription
lundi 29 septembre 2008
Statut
Membre
Dernière intervention
28 juin 2013
13
23 mars 2009 à 09:30
23 mars 2009 à 09:30
Merci beaucoup!
Ça marche impec! En plus au passage j'ai appris des choses en essayant de comprendre le code, vive les mémento!
J'ai encore un peu de mal à comprendre certains trucs avec les requêtes sur la table pour récupérer les infos de l'utilisateur et la gestion des erreurs au niveau du code php (pas dans le formulaire, ça j'ai compris) mais je vais essayer de trouver.
Merci encore, Gwendo.
Ça marche impec! En plus au passage j'ai appris des choses en essayant de comprendre le code, vive les mémento!
J'ai encore un peu de mal à comprendre certains trucs avec les requêtes sur la table pour récupérer les infos de l'utilisateur et la gestion des erreurs au niveau du code php (pas dans le formulaire, ça j'ai compris) mais je vais essayer de trouver.
Merci encore, Gwendo.
Gwendo69
Messages postés
147
Date d'inscription
lundi 29 septembre 2008
Statut
Membre
Dernière intervention
28 juin 2013
13
22 mars 2009 à 10:15
22 mars 2009 à 10:15
Bonjour,
D'abord merci pour la réponse. Mais je suis désolée, j'ai du faire une erreur quelque part. J'ai adapté le code pour mon site et parce que le nom de ma table et de mes champs sont différents, mais ça pose encore problème.
J'ai fait une première page connexion.php. Voici le code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Creer un compte</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<p>
<a href="compte.php">Creer le nouveau compte utilisateur</a>
</p>
</body>
</html>
Ensuite, j'ai créé la page compte.php:
<?php
// Redirige l'utilisateur s'il est déjà identifié
if(isset($_COOKIE["ID_UTILISATEUR"]))
{
header("Location: index.php");
//index.php est la page d'accueil du site
}
else
{
// Formulaire visible par défaut
$masquer_formulaire = false;
// Une fois le formulaire envoyé
if(isset($_POST["BT_Envoyer"]))
{
// Vérification de la validité des champs
if(!ereg("^[A-Za-z0-9_]{4,20}$", $_POST["TB_Nom_Utilisateur"]))
{
$message = "Votre nom d'utilisateur doit comporter entre 4 et 20 caractères<br />\n";
$message .= "L'utilisation de l'underscore est autorisée";
}
elseif(!ereg("^[A-Za-z0-9]{4,}$", $_POST["TB_Mot_de_Passe"]))
{
$message = "Votre mot de passe doit comporter au moins 4 caractères";
}
elseif($_POST["TB_Mot_de_Passe"] != $_POST["TB_Confirmation_Mot_de_Passe"])
{
$message = "Votre mot de passe n'a pas été correctement confirmé";
}
elseif(!ereg("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,4}$",
$_POST["TB_Adresse_Email"]))
{
$message = "Votre adresse e-mail n'est pas valide";
}
else
{
// Connexion à la base de données
// Valeurs à modifier selon vos paramètres configuration
mysql_connect("localhost", "root", "");
mysql_select_db("musique");
// Vérification de l'unicité du nom d'utilisateur et de l'adresse e-mail
$result = mysql_query("
SELECT nom_tilisateur, adresse_email
FROM utilisateur
WHERE nom_utilisateur = '" . $_POST["TB_Nom_Utilisateur"] . "'
OR adresse_email = '" . $_POST["TB_Adresse_Email"] . "'
");
// Si une erreur survient
if(!$result)
{
$message = "Une erreur est survenue lors de la création de votre compte utilisateur";
}
else
{
// Si un enregistrement est trouvé
if(mysql_num_rows($result) > 0)
{
while($row = mysql_fetch_array($result))
{
if($_POST["TB_Nom_Utilisateur"] == $row["nom_utilisateur"])
{
$message = "Le nom d'utilisateur " . $_POST["TB_Nom_Utilisateur"];
$message .= "est déjà utilisé";
}
elseif($_POST["TB_Adresse_Email"] == $row["adresse_email"])
{
$message = "L'adresse e-mail " . $_POST["TB_Adresse_Email"];
$message .= "est déjà utilisée";
}
}
}
else
{
// Génération de la clef d'activation
$caracteres = array("a", "b", "c", "d", "e", "f", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
$caracteres_aleatoires = array_rand($caracteres, 8);
$clef_activation = "";
foreach($caracteres_aleatoires as $i)
{
$clef_activation .= $caracteres[$i];
}
// Création du compte utilisateur
$result = mysql_query("
INSERT INTO utilisateur
(nom_utilisateur, mot_de_passe, adresse_email, date_inscription, clef_activation)
VALUES(
'" . $_POST["TB_Nom_Utilisateur"] . "'
, '" . md5($_POST["TB_Mot_de_Passe"]) . "'
, '" . $_POST["TB_Adresse_Email"] . "'
, '" . time() . "'
, '" . $clef_activation . "'
)
");
// Si une erreur survient
if(!$result)
{
$message = "Une erreur est survenue lors de la création de votre compte utilisateur";
}
else
{
// Envoi du mail d'activation
$sujet = "Activation de votre compte utilisateur";
$message = "Pour valider votre inscription, merci de cliquer sur le lien suivant :\n";
$message .= "[http://]" . $_SERVER["SERVER_NAME"];
$message .= "/activer-compte-utilisateur.php?id=" . mysql_insert_id();
$message .= "&clef=" . $clef_activation;
// Si une erreur survient
if(!@mail($_POST["TB_Adresse_Email"], $sujet, $message))
{
$message = "Une erreur est survenue lors de l'envoi du mail d'activation<br />\n";
$message .= "Veuillez contacter l'administrateur afin d'activer votre compte";
}
else
{
// Message de confirmation
$message = "Votre compte utilisateur a correctement été créer<br />\n";
$message .= "Un email vient de vous être envoyer afin de l'activer";
// On masque le formulaire
$masquer_formulaire = true;
}
}
}
}
}
// Fermeture de la connexion à la base de données
mysql_close();
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Creer un espace membre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php if(isset($message)) { ?>
<p><?php= $message; ?></p>
<?php } if($masquer_formulaire != true) { ?>
<form action="http://<?php= $_SERVER["SERVER_NAME"] . $_SERVER["SCRIPT_NAME"]; ?>" method="post">
<p>
Nom d'utilisateur : <input type="text" name="TB_Nom_Utilisateur" />
</p>
<p>
Mot de passe : <input type="password" name="TB_Mot_de_Passe" />
</p>
<p>
Confirmation du mot de passe : <input type="password" name="TB_Confirmation_Mot_de_Passe" />
</p>
<p>
Adresse e-mail : <input type="text" name="TB_Adresse_Email" />
</p>
<p>
<input type="submit" name="BT_Envoyer" value="Envoyer" />
</p>
</form>
<?php } ?>
</body>
</html>
Au final, sur la page du formulaire il y a bien le formulaire mais aussi marqué " method="post"> au dessus. Les données ne s'enregistrent pas non plus dans la table, puisqu'il n'y a pas d'envoi de message.
Je continue à chercher, mais si quelqu'un a une autre idée. Merci.
Gwendo.
D'abord merci pour la réponse. Mais je suis désolée, j'ai du faire une erreur quelque part. J'ai adapté le code pour mon site et parce que le nom de ma table et de mes champs sont différents, mais ça pose encore problème.
J'ai fait une première page connexion.php. Voici le code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Creer un compte</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<p>
<a href="compte.php">Creer le nouveau compte utilisateur</a>
</p>
</body>
</html>
Ensuite, j'ai créé la page compte.php:
<?php
// Redirige l'utilisateur s'il est déjà identifié
if(isset($_COOKIE["ID_UTILISATEUR"]))
{
header("Location: index.php");
//index.php est la page d'accueil du site
}
else
{
// Formulaire visible par défaut
$masquer_formulaire = false;
// Une fois le formulaire envoyé
if(isset($_POST["BT_Envoyer"]))
{
// Vérification de la validité des champs
if(!ereg("^[A-Za-z0-9_]{4,20}$", $_POST["TB_Nom_Utilisateur"]))
{
$message = "Votre nom d'utilisateur doit comporter entre 4 et 20 caractères<br />\n";
$message .= "L'utilisation de l'underscore est autorisée";
}
elseif(!ereg("^[A-Za-z0-9]{4,}$", $_POST["TB_Mot_de_Passe"]))
{
$message = "Votre mot de passe doit comporter au moins 4 caractères";
}
elseif($_POST["TB_Mot_de_Passe"] != $_POST["TB_Confirmation_Mot_de_Passe"])
{
$message = "Votre mot de passe n'a pas été correctement confirmé";
}
elseif(!ereg("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,4}$",
$_POST["TB_Adresse_Email"]))
{
$message = "Votre adresse e-mail n'est pas valide";
}
else
{
// Connexion à la base de données
// Valeurs à modifier selon vos paramètres configuration
mysql_connect("localhost", "root", "");
mysql_select_db("musique");
// Vérification de l'unicité du nom d'utilisateur et de l'adresse e-mail
$result = mysql_query("
SELECT nom_tilisateur, adresse_email
FROM utilisateur
WHERE nom_utilisateur = '" . $_POST["TB_Nom_Utilisateur"] . "'
OR adresse_email = '" . $_POST["TB_Adresse_Email"] . "'
");
// Si une erreur survient
if(!$result)
{
$message = "Une erreur est survenue lors de la création de votre compte utilisateur";
}
else
{
// Si un enregistrement est trouvé
if(mysql_num_rows($result) > 0)
{
while($row = mysql_fetch_array($result))
{
if($_POST["TB_Nom_Utilisateur"] == $row["nom_utilisateur"])
{
$message = "Le nom d'utilisateur " . $_POST["TB_Nom_Utilisateur"];
$message .= "est déjà utilisé";
}
elseif($_POST["TB_Adresse_Email"] == $row["adresse_email"])
{
$message = "L'adresse e-mail " . $_POST["TB_Adresse_Email"];
$message .= "est déjà utilisée";
}
}
}
else
{
// Génération de la clef d'activation
$caracteres = array("a", "b", "c", "d", "e", "f", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
$caracteres_aleatoires = array_rand($caracteres, 8);
$clef_activation = "";
foreach($caracteres_aleatoires as $i)
{
$clef_activation .= $caracteres[$i];
}
// Création du compte utilisateur
$result = mysql_query("
INSERT INTO utilisateur
(nom_utilisateur, mot_de_passe, adresse_email, date_inscription, clef_activation)
VALUES(
'" . $_POST["TB_Nom_Utilisateur"] . "'
, '" . md5($_POST["TB_Mot_de_Passe"]) . "'
, '" . $_POST["TB_Adresse_Email"] . "'
, '" . time() . "'
, '" . $clef_activation . "'
)
");
// Si une erreur survient
if(!$result)
{
$message = "Une erreur est survenue lors de la création de votre compte utilisateur";
}
else
{
// Envoi du mail d'activation
$sujet = "Activation de votre compte utilisateur";
$message = "Pour valider votre inscription, merci de cliquer sur le lien suivant :\n";
$message .= "[http://]" . $_SERVER["SERVER_NAME"];
$message .= "/activer-compte-utilisateur.php?id=" . mysql_insert_id();
$message .= "&clef=" . $clef_activation;
// Si une erreur survient
if(!@mail($_POST["TB_Adresse_Email"], $sujet, $message))
{
$message = "Une erreur est survenue lors de l'envoi du mail d'activation<br />\n";
$message .= "Veuillez contacter l'administrateur afin d'activer votre compte";
}
else
{
// Message de confirmation
$message = "Votre compte utilisateur a correctement été créer<br />\n";
$message .= "Un email vient de vous être envoyer afin de l'activer";
// On masque le formulaire
$masquer_formulaire = true;
}
}
}
}
}
// Fermeture de la connexion à la base de données
mysql_close();
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Creer un espace membre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php if(isset($message)) { ?>
<p><?php= $message; ?></p>
<?php } if($masquer_formulaire != true) { ?>
<form action="http://<?php= $_SERVER["SERVER_NAME"] . $_SERVER["SCRIPT_NAME"]; ?>" method="post">
<p>
Nom d'utilisateur : <input type="text" name="TB_Nom_Utilisateur" />
</p>
<p>
Mot de passe : <input type="password" name="TB_Mot_de_Passe" />
</p>
<p>
Confirmation du mot de passe : <input type="password" name="TB_Confirmation_Mot_de_Passe" />
</p>
<p>
Adresse e-mail : <input type="text" name="TB_Adresse_Email" />
</p>
<p>
<input type="submit" name="BT_Envoyer" value="Envoyer" />
</p>
</form>
<?php } ?>
</body>
</html>
Au final, sur la page du formulaire il y a bien le formulaire mais aussi marqué " method="post"> au dessus. Les données ne s'enregistrent pas non plus dans la table, puisqu'il n'y a pas d'envoi de message.
Je continue à chercher, mais si quelqu'un a une autre idée. Merci.
Gwendo.
jordane45
Messages postés
38446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2025
4 737
>
salma
12 mai 2016 à 15:59
12 mai 2016 à 15:59
Bonjour
Et oui.... c'est obsolète....
Va faire un tour ici : https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
Puis converti le code en Mysqli ou PDO .
Et oui.... c'est obsolète....
Va faire un tour ici : https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
Puis converti le code en Mysqli ou PDO .
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bissdebrazza
Messages postés
2065
Date d'inscription
vendredi 29 juin 2007
Statut
Contributeur
Dernière intervention
7 décembre 2017
712
22 mars 2009 à 14:33
22 mars 2009 à 14:33
Salut Gwendo(même prénom que ma sœur ainée)
Dis tu utilises l'envoi de mail sur ton projet?je vois que c'est assez complexe pour toi.je te monte rapidement un script pour te connecter ok?
Dis tu utilises l'envoi de mail sur ton projet?je vois que c'est assez complexe pour toi.je te monte rapidement un script pour te connecter ok?
Gwendo69
Messages postés
147
Date d'inscription
lundi 29 septembre 2008
Statut
Membre
Dernière intervention
28 juin 2013
13
22 mars 2009 à 19:55
22 mars 2009 à 19:55
Salut,
En fait j'ai essayé d'adapter ce qui est marqué dans le tuto, mais plus c'est simple mieux c'est (pour l'instant ça a pas l'air d'être le cas, j'essaie de trouver le problème mais bon c'est pas encore ça).
L'envoie de mail n'est pas obligatoire si il y a une autre solution.
Le principal est que l'administrateur puisse accéder à des pages (pour les mises à jours) en plus, contrairement aux autres utilisateurs.
Enfin, si tu peux et que tu as le temps pour m'aider, c'est impec.
A+.
En fait j'ai essayé d'adapter ce qui est marqué dans le tuto, mais plus c'est simple mieux c'est (pour l'instant ça a pas l'air d'être le cas, j'essaie de trouver le problème mais bon c'est pas encore ça).
L'envoie de mail n'est pas obligatoire si il y a une autre solution.
Le principal est que l'administrateur puisse accéder à des pages (pour les mises à jours) en plus, contrairement aux autres utilisateurs.
Enfin, si tu peux et que tu as le temps pour m'aider, c'est impec.
A+.
7 mai 2017 à 14:18