Page 1 sur 1
Bloquer l'utilisation d'un script à un utilisateur
Posté : 09 avr. 2012, 15:48
par roseline
Bonjour,
J'ai une console d'administration d'un site avec plusieurs utilisateurs autorisés.
Je dois mettre en place le "blocage" suivant:
Lorsque qu'un utilisateur fait la demande pour manipuler (par exemple mettre à jour) l'ID x mais qu'un autre utilisateur a déjà fait cette demande, il a un message "demande déjà en cours".
Avez-vous une idée ?
Merci d'avance

Re: Bloquer l'utilisation d'un script à un utilisateur
Posté : 09 avr. 2012, 16:50
par xTG
Ajouter l'id du compte demandeur sur le n-uplet concerné ?
Si id vide on peut, sinon on a l'id de la personne ayant fait la demande.
Ou bien faire une table externe regroupant les demandes, mais à réfléchir à la modélisation pour pas faire une usine à gaz.
Re: Bloquer l'utilisation d'un script à un utilisateur
Posté : 10 avr. 2012, 10:11
par roseline
Merci pour tes idées!
Ne connaissant pas l'utilisation d'un n-uplet... je passe
Je crois que je vais en effet partir sur une table annexe le plus simple possible, car il y a plusieurs scripts différents qui doivent être "contrôlés".
Je pense faire une table "transition" avec le USER et ID concerné.
Si l'ID n'est pas dans la table = on enregistre sur "transition" > exécute le script > on efface sur "transition".
Si l'ID est dans la table = on met un message "revenez plus tard!"
Re: Bloquer l'utilisation d'un script à un utilisateur
Posté : 10 avr. 2012, 11:14
par xTG
Un n-uplet c'est une ligne dans une table, un enregistrement si tu préfères.
Re: Bloquer l'utilisation d'un script à un utilisateur
Posté : 10 avr. 2012, 11:20
par roseline
Ok, merci!
Donc, si je comprends bien, à la place de faire ma table "transition", j'ajouterai un champ à ma table existante qui serait p.ex. "en cours d'utilisation"?
Re: Bloquer l'utilisation d'un script à un utilisateur
Posté : 10 avr. 2012, 11:56
par xTG
Oui c'est cela.
Re: Bloquer l'utilisation d'un script à un utilisateur
Posté : 13 avr. 2012, 15:55
par roseline
Pour info, j'ai donc créé une table sur laquelle je fais mon contrôle et cela fonctionne super bien!
Avant toute manipulation, je fais un contrôle et si c'est bon, j'insère l'info "en cours de manipulation"
$sql="SELECT * FROM inuse WHERE xInUse=$ID";
//execution de la requete:
$requete=mysql_query($sql, $cnx) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
if($result=mysql_fetch_object($requete))
{
echo("<span class='txt'><b>EST DEJA EN COURS DE MANIPULATION </b></span><br /><br />");
}
else
{
mysql_query("INSERT INTO inuse (xInUse, UserInUse, DateUse) VALUES ('$ID', '$UserID', '$Date')") or die(mysql_error());
ensuite, j’exécute ma requête - INSERT, UPDATE, etc....
et je ferme mon "en cours de manipulation" avec
mysql_query("DELETE FROM inuse WHERE xInUse = '$ID'") or die(mysql_error());
}