PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 11-02-2013 11:40:17

elabadiabdelmoula
Membre
Inscription : 21-01-2013
Messages : 12

comment ajouter un espace membres sur mon site?

Salut tout le monde smile

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

**************

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd[/url]">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>membres</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    <body>
  <?php
$base = mysql_connect ('sql203.eb2a.com', 'eb2a_12211995', 'XXX');
mysql_select_db ('eb2a_12211995_trfdb', $base) ;
mysql_set_charset( 'utf8' );
?>
 
        <form action="acces.php" method="post">
            <p>Votre pseudo :<input type="text" name="pseudo" /></p>
      <p>Votre mot de passe :<input type="password" name="pass" /></p>
      <p>Confirmer votre mot de passe :<input type="password" name="passconf" /></p>
      <p>Envoyer :<input type="submit" value="valider" /></p>
        </form>
        <p>Cette page est réservée EXCLUSIVEMENT au personnel de la TRF tozeur.</p></center>
   
    <?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());
}
 
// Insertion des données
$req = $bdd->prepare('INSERT INTO membres(pseudo, pass, date) VALUES(:pseudo, :pass, CURDATE())');
$req->execute(array(
    'pseudo' => $pseudo,
    'pass' => $pass_hache,
    ));
 
// Affichage (toutes les données sont protégées par htmlspecialchars)
while ($donnees = $req->fetch())
{
    echo '<p><strong>' . htmlspecialchars($donnees['id']) . '</strong> : ' . htmlspecialchars($donnees['pseudo']) . . htmlspecialchars($donnees['date']) .'</p>';
}
 
$req->closeCursor();
 
?>
     
</body>
</html>
 

****************************
acces.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd[/url]">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>acces</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    <body>
    <?php
$base = mysql_connect ('sql203.eb2a.com', 'eb2a_12211995', 'XXX');
mysql_select_db ('eb2a_12211995_trfdb', $base) ;
mysql_set_charset( 'utf8' );
?>
<?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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd[/url]">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>inscription</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    <body>
  <?php
$base = mysql_connect ('sql203.eb2a.com', 'eb2a_12211995', 'XXX');
mysql_select_db ('eb2a_12211995_trfdb', $base) ;
mysql_set_charset( 'utf8' );
?>
 
        <form action="connexion.php" method="post">
            <p>Votre pseudo :<input type="text" name="pseudo" /></p>
      <p>Votre mot de passe :<input type="password" name="pass" /></p>
      <p>Confirmer votre mot de passe :<input type="password" name="passconf" /></p>
      <p>Envoyer :<input type="submit" value="valider" /></p>
        </form>
        <p>Cette page est réservée EXCLUSIVEMENT au personnel de la TRF tozeur.</p></center>
   
    <?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());
}
 
// Insertion des données
$req = $bdd->prepare('INSERT INTO membres(pseudo, pass, date) VALUES(:pseudo, :pass, CURDATE())');
$req->execute(array(
    'pseudo' => $pseudo,
    'pass' => $pass_hache,
    ));
 
// Affichage (toutes les données sont protégées par htmlspecialchars)
while ($donnees = $req->fetch())
{
    echo '<p><strong>' . htmlspecialchars($donnees['id']) . '</strong> : ' . htmlspecialchars($donnees['pseudo']) . . htmlspecialchars($donnees['date']) .'</p>';
}
 
$req->closeCursor();
 
?>
     
</body>
</html>
 

******************************************
connexion.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd[/url]">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>acces</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    <body>
    <?php
$base = mysql_connect ('sql203.eb2a.com', 'eb2a_12211995', 'XXX');
mysql_select_db ('eb2a_12211995_trfdb', $base) ;
mysql_set_charset( 'utf8' );
?>
<?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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd[/url]">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>acces</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    <body>
    <?php
$base = mysql_connect ('sql203.eb2a.com', 'eb2a_12211995', 'XXX');
mysql_select_db ('eb2a_12211995_trfdb', $base) ;
mysql_set_charset( 'utf8' );
?>
<?php
session_start();
 
// Suppression des variables de session et de la session
$_SESSION = array();
session_destroy();
 
// Suppression des cookies de connexion automatique
setcookie('login', '');
setcookie('pass_hache', '');
?>
    </body>
</html>

Dernière modification par elabadiabdelmoula (11-02-2013 12:05:21)

Hors ligne

#2 11-02-2013 12:23:42

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : comment ajouter un espace membres sur mon site?

>>mon objectif optimalement big_smile big_smile big_smile


pk utiliser mysql avec mysqli et pdo ??????????????????

a++

Hors ligne

#3 11-02-2013 14:46:06

elabadiabdelmoula
Membre
Inscription : 21-01-2013
Messages : 12

Re : comment ajouter un espace membres sur mon site?

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 smile

Dernière modification par elabadiabdelmoula (11-02-2013 14:47:10)

Hors ligne

#4 15-02-2013 12:08:17

elabadiabdelmoula
Membre
Inscription : 21-01-2013
Messages : 12

Re : comment ajouter un espace membres sur mon site?

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

#5 15-02-2013 13:45:58

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : comment ajouter un espace membres sur mon site?

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

elabadiabdelmoula a écrit :

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

#6 15-02-2013 15:30:29

elabadiabdelmoula
Membre
Inscription : 21-01-2013
Messages : 12

Re : comment ajouter un espace membres sur mon site?

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

#7 15-02-2013 15:42:08

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : comment ajouter un espace membres sur mon site?

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

#8 15-02-2013 15:52:35

elabadiabdelmoula
Membre
Inscription : 21-01-2013
Messages : 12

Re : comment ajouter un espace membres sur mon site?

smile
pour moi, je souhaite permettre aux membres modification (DML): juste insertion, supression, etc... pas de possibilité de modifier & intervenir sur la structure smile

Hors ligne

#9 15-02-2013 16:14:29

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : comment ajouter un espace membres sur mon site?

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

#10 15-02-2013 16:26:58

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : comment ajouter un espace membres sur mon site?

Bonjour,

elabadiabdelmoula a écrit :

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

#11 15-02-2013 18:33:58

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : comment ajouter un espace membres sur mon site?

Jc a écrit :

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

#12 15-02-2013 19:28:25

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : comment ajouter un espace membres sur mon site?

Bonjour,

Maljuna Kris a écrit :

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 :

Maljuna Kris a écrit :

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

Pied de page des forums