Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/04/2011, 14h52   #1
Membre régulier
 
Homme Nicolas
Étudiant
Inscription : mai 2010
Messages : 308
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2010
Messages : 308
Points : 74
Points : 74
Par défaut Trigger MySql et sessions

Bonjour à tous,

pour compléter mon site perso, j'aimerais rajouter des triggers pour empêcher certaines actions bien définies.
Ce que j'aimerais savoir, c'est comment couplé ces triggers avec mes sessions ?

Je dispose d'un espace connexion dans mon site.
3 cas s'offre alors :
  • l'utilisateur n'est pas connecté. Il ne peut que visualiser les documents
  • l'utilisateur est connecté et son statut est "user". Il peut dans ce cas visualiser les documents et en ajouter d'autres.
  • l'utilisateur est connecté et son statut est "admin". Il dispose de tous les droits, aucun problème.

Tout ceci fonctionne. Par contre, si l'utilisateur non connecté tape dans la barre d'adresse http://monSite.fr/suppression (par exemple), il y aura quand même accès Je souhaite donc rajouter des triggers pour être certains que les ajouts ne sont pas effectués par des non-connectés et etc.

Le code que j'ai pour l'instant :
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
 
<h1 align=center>Gestion des livres, films et jeux </h1>
<?php
	if (isset($_SESSION['nom']) AND ($_SESSION['type'] == "admin"))
	{
		echo'
			<div id="menu">
				<ul>
					<li><h4> Espace Visualisation 
					&nbsp&nbsp&nbsp&nbsp&nbsp;
					</h4>
						<ul>
							<li><a href="livre.php">Livres</a></li>
							<li><a href="film.php">Films</a></li>
							<li><a href="jeux.php">Jeux</a></li>
						</ul>
					</li>
					&nbsp&nbsp&nbsp&nbsp&nbsp;
					<li><h4> Espace Ajout
					&nbsp&nbsp&nbsp&nbsp&nbsp;
					</h4>
						<ul>
							<li><a href="AjoutLivre.php">Livres</a></li>
							<li><a href="AjoutFilm.php">Films</a></li>
							<li><a href="AjoutJeux.php">Jeux</a></li>
						</ul>
					</li>
					&nbsp&nbsp&nbsp&nbsp&nbsp;
					<li><h4> Espace Edition/Suppression
					&nbsp&nbsp&nbsp&nbsp&nbsp;
					</h4>
						<ul>
							<li><a href="EditLivre.php">Livres</a></li>
							<li><a href="EditFilm.php">Films</a></li>
							<li><a href="EditJeux.php">Jeux</a></li>
						</ul>
					</li>
					<li><h4><a href="deconnexion.php">Espace deconnexion</a></h4></li>
				</ul>
			</div>
		';
	}
	elseif (isset($_SESSION['nom']) AND ($_SESSION['type'] == "user"))
	{
	echo '
		<div id="menu">
			<ul>
				<li><h4> Espace Visualisation 
				&nbsp&nbsp&nbsp&nbsp&nbsp;
				</h4>
					<ul>
						<li><a href="livre.php">Livres</a></li>
						<li><a href="film.php">Films</a></li>
						<li><a href="jeux.php">Jeux</a></li>
					</ul>
				</li>
				&nbsp&nbsp&nbsp&nbsp&nbsp;
				<li><h4> Espace Ajout
				&nbsp&nbsp&nbsp&nbsp&nbsp;
				</h4>
					<ul>
						<li><a href="AjoutLivre.php">Livres</a></li>
						<li><a href="AjoutFilm.php">Films</a></li>
						<li><a href="AjoutJeux.php">Jeux</a></li>
					</ul>
				</li>
				<li><h4><a href="deconnexion.php">Espace deconnexion</a></h4></li>
			</ul>
		</div>
	';
	}
	else
	{
	echo '
		<div id="menu">
			<ul>
				<li><h4> Espace Visualisation 
				&nbsp&nbsp&nbsp&nbsp&nbsp;
				</h4>
					<ul>
						<li><a href="livre.php">Livres</a></li>
						<li><a href="film.php">Films</a></li>
						<li><a href="jeux.php">Jeux</a></li>
					</ul>
				</li>
				<li><h4><a href="connexion.php">Espace connexion</a></h4></li>
			</ul>
		</div>
	';
	}
?>

Donc, au niveau des questions :
  • Ce que j'aimerais savoir, c'est comment couplé ces triggers avec mes sessions ?
  • Pour bloquer le traitement de la requête, ma doc oracle m'indique
    "raise application error..." Est-ce pareil sur MySql ?
    PS : je connais la syntaxe de base des triggers sur Oracle

Merci à ceux qui répondront.
feldi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 15h42   #2
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
Citation:
Tout ceci fonctionne. Par contre, si l'utilisateur non connecté tape dans la barre d'adresse http://monSite.fr/suppression (par exemple), il y aura quand même accès Je souhaite donc rajouter des triggers pour être certains que les ajouts ne sont pas effectués par des non-connectés et etc.
Tu as un problème coté php si c'est le cas. L'utilisateur peux taper http://monSite.fr/suppression si ca lui chante mais il doit se faire gentilement (ou pas) refouler par ton appli si il n'a pas les droits suffisants !

Citation:
Ce que j'aimerais savoir, c'est comment couplé ces triggers avec mes sessions ?
Pas possible à ma connaissance. Les triggers sont déclenchés sur les événements intervenants sur une table , aucune relation avec PHP et encore moins avec les session
grunk est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/04/2011, 15h51   #3
Membre régulier
 
Homme Nicolas
Étudiant
Inscription : mai 2010
Messages : 308
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2010
Messages : 308
Points : 74
Points : 74
Citation:
Envoyé par grunk Voir le message
Tu as un problème coté php si c'est le cas. L'utilisateur peux taper http://monSite.fr/suppression si ca lui chante mais il doit se faire gentilement (ou pas) refouler par ton appli si il n'a pas les droits suffisants !
C'est possible sans remodifier tout le code ?

Citation:
Pas possible à ma connaissance. Les triggers sont déclenchés sur les événements intervenants sur une table , aucune relation avec PHP et encore moins avec les session
Je voudrais bien que le script de suppression/ajout/update ne se fasse pas si l'utilisateur n'a pas les "droits" pour ça. C'est pas possible ?
feldi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 15h56   #4
Membre éprouvé
 
Avatar de radicaldreamer
 
Homme Guillaume
Développeur Web
Inscription : décembre 2007
Messages : 353
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 21
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 353
Points : 473
Points : 473
Sans modifier tout le code c'est possible, mais va falloir le modifier quand même.

Il faut que dans ta session, tu stockes le type d'utilisateur. user ou admin.

Lors de l'appel de /suppression tu testes le type d'utilisateur. Si il est user ou non connecté, tu le rediriges, sinon, tu executes le code (en gros, si il est admin)
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

- Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
radicaldreamer est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/04/2011, 16h02   #5
Membre régulier
 
Homme Nicolas
Étudiant
Inscription : mai 2010
Messages : 308
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2010
Messages : 308
Points : 74
Points : 74
Citation:
Envoyé par radicaldreamer Voir le message
Sans modifier tout le code c'est possible, mais va falloir le modifier quand même.

Il faut que dans ta session, tu stockes le type d'utilisateur. user ou admin.

Lors de l'appel de /suppression tu testes le type d'utilisateur. Si il est user ou non connecté, tu le rediriges, sinon, tu executes le code (en gros, si il est admin)
Ah ok, en fait je fais simplement comme je fais pour afficher le menu pour le moment en rajoutant un message d'erreur s'il ne peut pas ?
feldi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 16h03   #6
Membre éprouvé
 
Avatar de radicaldreamer
 
Homme Guillaume
Développeur Web
Inscription : décembre 2007
Messages : 353
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 21
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 353
Points : 473
Points : 473
Exactement.
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

- Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
radicaldreamer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 16h03   #7
Membre régulier
 
Homme Nicolas
Étudiant
Inscription : mai 2010
Messages : 308
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2010
Messages : 308
Points : 74
Points : 74
Cool merci !
feldi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h03.


 
 
 
 
Partenaires

Hébergement Web