Session_start()
Résolu
kazouu
Messages postés
466
Date d'inscription
Statut
Membre
Dernière intervention
-
kazouu Messages postés 466 Date d'inscription Statut Membre Dernière intervention -
kazouu Messages postés 466 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un site en réseau au quelle on se connecte via session_start()
mais comme des suppression et des modification sur une base de donnée sont faisable j'aimerai que un seul utilisateur ne se connecte a la foi pour éviter les changement simultané
comment faire ?
merci d'avance
cordialement kazou
j'ai un site en réseau au quelle on se connecte via session_start()
mais comme des suppression et des modification sur une base de donnée sont faisable j'aimerai que un seul utilisateur ne se connecte a la foi pour éviter les changement simultané
comment faire ?
merci d'avance
cordialement kazou
A voir également:
- Session_start()
- &Quot;session_start" et "header()" ✓ - Forum Programmation
- Une session php a été créée par un appel de fonction session_start(). cela interfère avec l’api rest et les requêtes de boucle (loopback). la session devrait être fermée par session_write_close() avant d’effectuer toute requête http. - Forum Programmation
7 réponses
Bonjour
je me lance en tt cas si j'ai bien compris pour réaliser cette implementation, ma solution serait que
tu crées un champ dans la table des utilisateurs,
du genre Champ_en_ligne a qui tu attribuera une valeur 0 ou 1 en suivant le faite qu'il soit connecté ou pas
Ce qui fait que lorsqu'une personne se connecte tu modifie le champ en lui attribuant la valeur 1
Donc à chaque connection d'un nouvel utilisateur tu vas verifier s'il ya une valeur 1 dans le champ d'un utilisateur, dans le cas contraire il pourra se connecter .
C'est une strategie que je viens d'adopter si tu vois la marche a suivre tu verras comment continuer sinon tu me fais signe.
Cordialement yvau
je me lance en tt cas si j'ai bien compris pour réaliser cette implementation, ma solution serait que
tu crées un champ dans la table des utilisateurs,
du genre Champ_en_ligne a qui tu attribuera une valeur 0 ou 1 en suivant le faite qu'il soit connecté ou pas
Ce qui fait que lorsqu'une personne se connecte tu modifie le champ en lui attribuant la valeur 1
Donc à chaque connection d'un nouvel utilisateur tu vas verifier s'il ya une valeur 1 dans le champ d'un utilisateur, dans le cas contraire il pourra se connecter .
C'est une strategie que je viens d'adopter si tu vois la marche a suivre tu verras comment continuer sinon tu me fais signe.
Cordialement yvau
je n'utilise pas de table d'utilisateur mais un fichier de connection unique avec une seul utilisateur possible
<?php
$_admin_passg = md5('****'); // on crypt pour pouvoir comparer - plus securisé
$_admin_loging = 'root';
?>
et je ne veux pas que sur 2 machine différentes on puisse se connecter avec ce même login et mot de passe
<?php
$_admin_passg = md5('****'); // on crypt pour pouvoir comparer - plus securisé
$_admin_loging = 'root';
?>
et je ne veux pas que sur 2 machine différentes on puisse se connecter avec ce même login et mot de passe
En fait le principe est le même peu importe que tu veuilles créer de table ou pas l'astuce c'est d'affecter un variable dans ton fichier de connexion qui est modifié a chaque fois qu'un utilisateur est en ligne, c'est juste pour que ton systeme puisse savoir si quelqu'un est connecté
<?php
$_admin_passg = md5('****'); // on crypt pour pouvoir comparer - plus securisé
$_admin_loging = 'root';
$_admin_connexion = 'en_cour';
?>
donc apres deconnexion le mm fichier devient par exemple
<?php
$_admin_passg = md5('****'); // on crypt pour pouvoir comparer - plus securisé
$_admin_loging = 'root';
$_admin_connexion = 'hors_ligne';
?>
En tt cas c comme ça que je vois la choz si tu ne me suis pas fais moi signe
Yvau
<?php
$_admin_passg = md5('****'); // on crypt pour pouvoir comparer - plus securisé
$_admin_loging = 'root';
$_admin_connexion = 'en_cour';
?>
donc apres deconnexion le mm fichier devient par exemple
<?php
$_admin_passg = md5('****'); // on crypt pour pouvoir comparer - plus securisé
$_admin_loging = 'root';
$_admin_connexion = 'hors_ligne';
?>
En tt cas c comme ça que je vois la choz si tu ne me suis pas fais moi signe
Yvau
hum je vois et comprend le raisonnement, mais comment modifier la variable a chaque connexion ? et il faut que le mec clic sur "déconnexion" a chaque fin d'utilisation ?
ok je vois pour la connexion, pour mettre la variable a "ON" met pour la déconnexion comment je sais que l'utilisateur a cliqué sur déconnexion ?
Ok je vois que tu me suis, c'est vraiment simple et delicat à la fois, pourquoi
d'abord solution 1 tu vas prier les utilisateurs de ton application à se deconnecter via le lien que tu auras créé comme on voit dans toutes les applications web, à partir de ce lien tu vas activer ton script qui va modifier ton fichier de connexion
solution 2 tu pourras utiliser des cookies avec une durée de vie limité a par exemple 30 min, enfin tout dependra de la stratégie que tu auras defini pour tes utilisateurs (voici ou reside l'aspect delicat du truc mais ce n'est juste q'une strategie a adopter) donc apres les 30 min le fichier connexion sera modifier en $connexion='off';
solution 3 tu pourras mettre un script de modification directement sur l'interface où l'utilisateur se connecte ;PHP sait exactement la date de modification d'un avec la fonction filemtime ( $filename ) dans ce cas tu pourras comparer la date de dernière modification du fichier et celle en cours pour permettre l'acces de lutilisateur a l'interface d'adiministration
voici un peu les solutions proposées
Cordialement Yvau
d'abord solution 1 tu vas prier les utilisateurs de ton application à se deconnecter via le lien que tu auras créé comme on voit dans toutes les applications web, à partir de ce lien tu vas activer ton script qui va modifier ton fichier de connexion
solution 2 tu pourras utiliser des cookies avec une durée de vie limité a par exemple 30 min, enfin tout dependra de la stratégie que tu auras defini pour tes utilisateurs (voici ou reside l'aspect delicat du truc mais ce n'est juste q'une strategie a adopter) donc apres les 30 min le fichier connexion sera modifier en $connexion='off';
solution 3 tu pourras mettre un script de modification directement sur l'interface où l'utilisateur se connecte ;PHP sait exactement la date de modification d'un avec la fonction filemtime ( $filename ) dans ce cas tu pourras comparer la date de dernière modification du fichier et celle en cours pour permettre l'acces de lutilisateur a l'interface d'adiministration
voici un peu les solutions proposées
Cordialement Yvau
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je viens de rencontré un probleme de taille :
a la connexion quand je fais "$_admin_status="en_ligne"
il ne modifie pas dans mon fichier de connexion mais crée une nouvelle variable :s
pourtant j'ai bien inclus mon fichier
<?php
session_start(); // on initalise les sessions php
include("./configg.php"); // on inclu la page de config
?>
a la connexion quand je fais "$_admin_status="en_ligne"
il ne modifie pas dans mon fichier de connexion mais crée une nouvelle variable :s
pourtant j'ai bien inclus mon fichier
<?php
session_start(); // on initalise les sessions php
include("./configg.php"); // on inclu la page de config
?>
fichier connexion
<?php
$_admin_passg = md5('2206'); // on crypt pour pouvoir comparer - plus securisé
$_admin_loging = 'root';
$_admin_status = 'hors_ligne';
?>
et apres dans mon questionnaire je fais :
<?php
$_admin_passg = md5('2206'); // on crypt pour pouvoir comparer - plus securisé
$_admin_loging = 'root';
$_admin_status = 'hors_ligne';
?>
et apres dans mon questionnaire je fais :
<?php session_start(); // on initalise les sessions php // on inclu la page de config include("./configg.php"); if($_POST && !empty($_POST['loging']) && !empty($_POST['mdpg'])) { $loging = htmlentities($_POST['loging'], ENT_QUOTES); $mdpg = htmlentities($_POST['mdpg'], ENT_QUOTES); // on crypt le mot de passe envoyer par le formulaire $password_md5g = md5($mdpg); if(($_admin_loging == $loging) && ($password_md5g == $_admin_passg)) { if($_admin_status == 'hors_ligne'){ $_SESSION['_loging'] = $loging; $_SESSION['_passg'] = $password_md5g; echo '<h1>Connexion réussi! </h1>'; $_admin_status = "en_ligne"; echo "<a href='premiere.php' target='centre.php'>connect</a>"; #header('Location: premiere.php'); } else { echo '<p style="color:red">un autre utilisateur est deja connecté</p>'; header('Location: index.php'); } }
voici comment on crée un fichier en php
<?php
$connect = fopen('connect/connect.php','w+');
fputs($connect,"<?php\r\n");
fputs($connect,'$_admin_passg = md5("2206");'."\r\n");
fputs($connect,'$_admin_loging = "root";'."\r\n");
fputs($connect,'$_admin_status = "hors_ligne";'."\r\n");
fputs($connect,"?>\r\n");
fclose($connect);
?>
<?php
$connect = fopen('connect/connect.php','w+');
fputs($connect,"<?php\r\n");
fputs($connect,'$_admin_passg = md5("2206");'."\r\n");
fputs($connect,'$_admin_loging = "root";'."\r\n");
fputs($connect,'$_admin_status = "hors_ligne";'."\r\n");
fputs($connect,"?>\r\n");
fclose($connect);
?>