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   -
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

7 réponses

yvau Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   1
 
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
0
kazouu Messages postés 466 Date d'inscription   Statut Membre Dernière intervention   12
 
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
0
yvau Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   1
 
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
0
kazouu Messages postés 466 Date d'inscription   Statut Membre Dernière intervention   12
 
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 ?
0
kazouu Messages postés 466 Date d'inscription   Statut Membre Dernière intervention   12
 
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 ?
0
yvau Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   1
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kazouu Messages postés 466 Date d'inscription   Statut Membre Dernière intervention   12
 
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
?>
0
yvau Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   1
 
quel Pb fais voir ton code
question ?Mais pourquoi pas dans une table?
0
kazouu Messages postés 466 Date d'inscription   Statut Membre Dernière intervention   12
 
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
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'); }
		}
0
yvau Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   1
 
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);



?>
0
kazouu Messages postés 466 Date d'inscription   Statut Membre Dernière intervention   12
 
ok merci beaucoup =)
0