Vous n'êtes pas identifié(e).
Salut tout le monde
je dispose des outils suivants:
- dreamweaver v8 fr
- easyPHP v12.1
- MS office
=> j'ai créer une base de données qui permet de gérer les données du personnels dans une petite administration
(cette base nomée: trfdb) qui contient des tableaux (trf, epa, cr, regies, ...)
j'ai fait de sorte que lorsqu'on choisit un champs & on saisi le critère de recherche, on obtient les données souhaitées...
actuellement, je veux - pour avancer plus mon travail - permettre la consultation de ma base & la modification (insertion, ajout, sepression, etc...) exclusivement à des personnes particulier:
je veux ajouter un espace "membres" pour permettre l'inscription & l'identification des ces personnes (et par la suite ils pourront modifier & consulter ma base)
Alors, je vous demande gentillement de m'aider à réaliser mon objectif optimalement, on me donnant les étapes, procédure, comment faire, etc...
et merci infiniment.
Moula
***************************
voici mon travail: www.trftozeur.eb2a.com
***************************
Tout aide, conseils, suggestion, ... sera la bienvenue. merci d'avance
***************************
& voilà "codes" de mes pages:
membres.php
**************
****************************
acces.php
// Connexion à la base de données
try
{
$bdd = new PDO('mysql:host=sql203.eb2a.com;dbname=eb2a_12211995_trfdb', 'eb2a_12211995', 'XXX');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
<?php
// Vérification de la validité des informations
if (isset($_POST['pass']) == $_POST['passconf']) // Si les 2 mots de passe sont identiques
{
// On affiche message de bienvenue
?>
<p><h1><strong><center>Bienvenue, vous êtes inscrit! merci de votre visite</center></strong></h1></p>
<?php
// Hachage du mot de passe
$pass_hache = sha1($_POST['pass']);
// Insertion
$req = $bdd->prepare('INSERT INTO membres(pseudo, pass, date) VALUES(:pseudo, :pass, CURDATE())');
$req->execute(array(
'pseudo' => $pseudo,
'pass' => $pass_hache,
));
?>
<?php
}
else // Sinon, on affiche un message d'erreur
{
echo '<center><p>Les mots de passe ne sont pas identiques</br><a href="membres.php">Réessayez</a></p></center>';
}
// Insertion du message à l'aide d'une requête préparée
$req = $bdd->prepare('INSERT INTO membres (id, pseudo, pass, date) VALUES(?, ?, ?, ?)');
$req->execute(array($_POST['id'], $_POST['pseudo'], $_POST['pass'], $_POST['date']));
// Redirection du visiteur vers la page du minichat
header('Location: membres.php');
?>
</body>
</html>
************************************************
inscription.php
******************************************
connexion.php
// Connexion à la base de données
try
{
$bdd = new PDO('mysql:host=sql203.eb2a.com;dbname=eb2a_12211995_trfdb', 'eb2a_12211995', 'XXX');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
<?php
// Vérification de la validité des informations
if (isset($_POST['pass']) == $_POST['passconf']) // Si les 2 mots de passe sont identiques
{
// On affiche message de bienvenue
?>
<p><h1><strong><center>Bienvenue, vous êtes inscrit! merci de votre visite</center></strong></h1></p>
<?php
// Hachage du mot de passe
$pass_hache = sha1($_POST['pass']);
// Insertion
$req = $bdd->prepare('INSERT INTO membres(pseudo, pass, date) VALUES(:pseudo, :pass, CURDATE())');
$req->execute(array(
'pseudo' => $pseudo,
'pass' => $pass_hache,
));
?>
<?php
}
else // Sinon, on affiche un message d'erreur
{
echo '<center><p>Les mots de passe ne sont pas identiques</br><a href="membres.php">Réessayez</a></p></center>';
}
// Insertion du message à l'aide d'une requête préparée
$req = $bdd->prepare('INSERT INTO membres (id, pseudo, pass, date) VALUES(?, ?, ?, ?)');
$req->execute(array($_POST['id'], $_POST['pseudo'], $_POST['pass'], $_POST['date']));
// Redirection du visiteur vers la page du minichat
header('Location: membres.php');
?>
</body>
</html>
****************************************
deconnexion.php
Dernière modification par elabadiabdelmoula (11-02-2013 12:05:21)
Hors ligne
>>mon objectif optimalement
pk utiliser mysql avec mysqli et pdo ??????????????????
a++
Hors ligne
salut Pierrot
svp explique
des suggestions pour améliorer ou réctifier mon travail
je veux avoir finalement un bon code fonctionnel
merci d'avance
Dernière modification par elabadiabdelmoula (11-02-2013 14:47:10)
Hors ligne
salut tout le monde
j'ai crée une petite base de données (pour petite administration) & je l'ai hebergée sur web
j'ai fait de sorte que :
- le visiteur ordinaire peut consulter seulement
- pour les membres: 1èrement: ils doivent s'inscrire tout d'abort, puis se connecter pour pouvoir: consulter & modifier la base
à ce niveau là, je me trouve bloqué:
comment pouvoir permettre aux membres de modifier une partie spécifique de la base (càd: Mr. X => peut modifier uniquement le tableau X1, etc...)
merci d'avance
Hors ligne
Saluton,
Le problème avec PHP, c'est que les droits MySQL (GRANT) sont attribués au serveur, pas au membre.
En fait, c'est PHP qui se connecte à MySQL, pas le navigateur, ni encore moins l'utilisateur lambda.
Donc, si tu veux restreindre les droits sur la base de données, il faut gérer cela à partir de PHP ou au travers de vues, un peu comme le fait BO.
Encore faudrait-il s'entendre sur ce que tu appelles
modifier une partie spécifique de la base (càd: Mr. X => peut modifier uniquement le tableau X1,
De quoi parles-tu au juste d'accès aux commandes DDL ou DML ?
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
merci Maljuna
j'explique:
je veux que seulement les membres inscrits puissent consulter & modifier
mais pas tous les membres: uniquement qlq uns peuvent modifier des tableaux spécifiques (par exemple: le membre Mr.X qui est identifié lors de sa connexion par son pseudo (ou identifiant unique) peut modifier uniquement tableau personnel, etc...)
en tout cas: ya t-il un tutos qui m'aidera?
Hors ligne
Tu ne m'as pas répondu clairement quant à l'étendue du pouvoir de modification. En gros s'agit-il de se cantonner à INSERT, UPDATE et DELETE (DML) ou bien pourront-ils intervenir sur la structure, les contraintes (index, clés, trigger, view,...) DDL ?
Par ailleurs, (je sais, ça fait pointilleux, mais il faut garder un maximum de rigueur dans l'exposé) dans les SGBD, il n'y a pas de tableaux, mais des tables contenant des lignes dont la structure en colonnes fait partie du schéma de la base de données.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
pour moi, je souhaite permettre aux membres modification (DML): juste insertion, supression, etc... pas de possibilité de modifier & intervenir sur la structure
Hors ligne
Un tuto spécifique je n'ai pas ça en magasin, par contre je peux te dire que les scripts d'accès en modification (INSERT/UPDATE/DELETE) devront gérer le profil de l'utilisateur (via session j'imagine), lequel profil (à définir) permettra de déterminer à quelle(s) table(s) ce dernier aura accès.
Le sujet est bien trop vaste pour pouvoir être exposé ici en quelques lignes.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bonjour,
pour moi, je souhaite permettre aux membres modification (DML): juste insertion, supression, etc... pas de possibilité de modifier & intervenir sur la structure smile
Il te suffit sur le profil MySQL du compte de connexion PHP de supprimer tous les droits relatifs aux modifications structurelles de schema (ALTER TABLE principalement) (il te faut éviter donc que ton application se connecte avec ton compte d'administration de ta base de données).
Je t'invite à consulter le manuel de MySQL pour plus de détails.
Dernière modification par Jc (15-02-2013 16:28:13)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Il te suffit sur le profil MySQL du compte de connexion PHP de supprimer tous les droits relatifs aux modifications structurelles de schema (ALTER TABLE principalement) (il te faut éviter donc que ton application se connecte avec ton compte d'administration de ta base de données).
Je t'invite à consulter le manuel de MySQL pour plus de détails.
Je crains que cela ne corresponde pas au besoin, il veut limiter l'accès à certains objets du schéma et pas forcément les mêmes pour tous les utilisateurs.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bonjour,
Je crains que cela ne corresponde pas au besoin, il veut limiter l'accès à certains objets du schéma et pas forcément les mêmes pour tous les utilisateurs.
Ce n'est pas ce que sa dernière citation semblait vouloir dire. Donc dans le doute, voici un récapitulatif
- Si le souci est de pouvoir limiter l'accès à certaines fonctionnalités applicatives et donc à certaines requêtes/relations avec une granularité distinguant un SELECT d'un UPDATE, DELETE, on est dans le cas évoqué par MK à savoir lorsqu'il dit ceci :
Un tuto spécifique je n'ai pas ça en magasin, par contre je peux te dire que les scripts d'accès en modification (INSERT/UPDATE/DELETE) devront gérer le profil de l'utilisateur (via session j'imagine), lequel profil (à définir) permettra de déterminer à quelle(s) table(s) ce dernier aura accès.
Le sujet est bien trop vaste pour pouvoir être exposé ici en quelques lignes.
J'y rajouterai que non seulement le sujet est vaste, mais que cela dépasse bien le cadre d'un simple script : il s'agit d'un module applicatif à part entière pour gérer cela. Cependant cela est limité et contrôlé via l'application, pas au sein de la base de données elle-même... d'où le cas suivant :
- Si le but est de protéger le schéma applicatif d'un hacker qui bypass PHP pour faire un ALTER TABLE via la connexion de l'application et de contrôler les accès au schéma "in the box", alors il n'y a pas le choix, il faut créer un module applicatif par type d'utilisateur qui ont chacun leur propre boîte de connexion (url distincte), pour lesquels une connexion dédiée sera ouverte avec un profil sur la BD distinct également. Il faut noter que dans les deux cas de figure, l'un n'empêche pas forcément l'autre et en même temps...
Dans tous les cas je déconseille fortement d'autoriser un ALTER TABLE ou un DROP sur une connexion applicative.
++
Dernière modification par Jc (15-02-2013 19:32:19)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne