Javascript php

Fermé
saha11 Messages postés 79 Date d'inscription samedi 20 septembre 2008 Statut Membre Dernière intervention 2 février 2009 - 21 janv. 2009 à 16:24
saha11 Messages postés 79 Date d'inscription samedi 20 septembre 2008 Statut Membre Dernière intervention 2 février 2009 - 22 janv. 2009 à 09:57
Bonjour,
hellpp
Comment détruire une session en javascript sachant quelle est crée avec du php

Merci de votre aide
A voir également:

8 réponses

Harricote Messages postés 417 Date d'inscription mercredi 21 janvier 2009 Statut Membre Dernière intervention 30 janvier 2011 41
21 janv. 2009 à 16:38
Bonjour,

pourquoi veux-tu la supprimer en javascript ?

Php serait plus approprié !
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
21 janv. 2009 à 16:41
la session crée par php est enregistrée côté serveur, et javascript s'exécute côté client (navigateur), donc tu ne peux la détruire que par du php

la solution: Ajax

c'est une particularité de javascript qui permet d'appeler un script php en "arrière plan" donc un script php de deconnexion
0
saha11 Messages postés 79 Date d'inscription samedi 20 septembre 2008 Statut Membre Dernière intervention 2 février 2009 1
21 janv. 2009 à 16:44
Merci de vos réponse le problème c'est que je sait pas utilisé l'ajax comment faire
En faite moi je veut qu'une requête soit envoyé pour voir si utilisateur utilise le site sinon il est déconnecter
Je cherche depuis cematin mais je trouve pas ! lol
Merci de votre aide
0
Harricote Messages postés 417 Date d'inscription mercredi 21 janvier 2009 Statut Membre Dernière intervention 30 janvier 2011 41
21 janv. 2009 à 17:40
Eh bien, pour savoir si l'utilisateur n'est pas inactif sur ton site, il faut faire avec time :

if( (time() - $_SESSION['dernier_acces']) > 900)
{
$_SESSION = array();
}

Tu dois créer une session dernier_acces que tu mets quand il se connecte sur ton site :

// Il se connecte et alors si il est bien connecté, tu mets :
$_SESSION['dernier_acces'] = time();

et ensuite, sur chaque page de ton site, tu dois insérer le 1er code (
if((time() - $_SESSION['dernier_acces']) > 900)
{
$_SESSION = array();
}
)

Voilà, c'est tout !
0

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

Posez votre question
saha11 Messages postés 79 Date d'inscription samedi 20 septembre 2008 Statut Membre Dernière intervention 2 février 2009 1
21 janv. 2009 à 21:15
salut merci de ta reponse moi je part sur le principe que la personne ferme sont navigateur ou son onglet et donc dans ce cas la sa lui ferme la session
Ton code il est top mais ne marche que si la personne et toujour sur le navigateur
C'est pour sa que le cherche un truc en javascript ou en ajax
Merci de ton aide si tu a la solution je suis prenant lol
0
Harricote Messages postés 417 Date d'inscription mercredi 21 janvier 2009 Statut Membre Dernière intervention 30 janvier 2011 41
21 janv. 2009 à 21:27
Salut,

il faut, dans ce cas que tu mettes ceci :

<?php if($_SERVER['HTTP_USER_AGENT'] === NULL)
{
$_SESSION = array();
}
?>
0
saha11 Messages postés 79 Date d'inscription samedi 20 septembre 2008 Statut Membre Dernière intervention 2 février 2009 1
22 janv. 2009 à 09:16
bonjour,
J'ai essayé mais sa marche pas
OK j'ai vais essayé de détaillé le problème
J'ai une page qui m'affiche les utilisateurs en ligne j'ai donc rajouté dans ton code ceci
<?php if($_SERVER['HTTP_USER_AGENT'] === NULL)
{
$_SESSION = array();

mysql_query('DELETE FROM connectes WHERE ip =\'' . $_SERVER['REMOTE_ADDR'] . '\'');
//qui va supprimer les utilisateurs non connecter et detruire la sessiion
	session_destroy();
}
?>
 

Mais sa ne marche toujours pas et quand je revient sur la page après avoir ferme le navigateur sa ne marche toujours pas l'utilisateur est toujour connecté

Merci beaucoup de ton aide et de prendre du temps pour m'aidé
0
Harricote Messages postés 417 Date d'inscription mercredi 21 janvier 2009 Statut Membre Dernière intervention 30 janvier 2011 41
22 janv. 2009 à 09:44
Voilà, j'ai réfléchi et trouvé écrit ceci :

<?php
$_SESSION['user_ip'] = $_SERVER['REMOTE_ADDR'];
if(isset($_SESSION['user_ip']))
{
$_SESSION = array();
mysql_query('DELETE FROM connectes WHERE ip =\'' . $_SERVER['REMOTE_ADDR'] . '\'');
session_destroy();
}
?>

Voilà, essaye et moi-même, j'ai essayé et ça avait marché donc....
0
saha11 Messages postés 79 Date d'inscription samedi 20 septembre 2008 Statut Membre Dernière intervention 2 février 2009 1
22 janv. 2009 à 09:57
salut
voila le problème

/*ma page d'accueil contien cela*/
<?php
$_SESSION['user_ip'] = $_SERVER['REMOTE_ADDR'];
if(isset($_SESSION['user_ip']))
{
$_SESSION = array();
mysql_query('DELETE FROM connectes WHERE ip =\'' . $_SERVER['REMOTE_ADDR'] . '\'');
session_destroy();
}
?> 

voici le code qui gére la connexion
<?php
 session_start();
// Connexion à MySQL
mysql_connect("localhost", "root", "");
mysql_select_db("test");
$test = $_SESSION['login'];
// -------
// ETAPE 1 : on vérifie si l'IP se trouve déjà dans la table
// Pour faire ça, on n'a qu'à compter le nombre d'entrées dont le champ "ip" est l'adresse ip du visiteur
$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM connectes WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\'');
$donnees = mysql_fetch_array($retour);

if ($donnees['nbre_entrees'] == 0) // L'ip ne se trouve pas dans la table, on va l'ajouter
{
    mysql_query('INSERT INTO connectes VALUES(\'' . $_SERVER['REMOTE_ADDR'] . '\', ' . time() . ' , "'.$test.'")');
}
else // L'ip se trouve déjà dans la table, on met juste à jour le timestamp
{
    mysql_query('UPDATE connectes SET timestamp=' . time() . ' WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\'');
}
// -------
// ETAPE 2 : on compte le nombre d'ip stockées dans la table. C'est le nombre de visiteurs connectés
$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM connectes');
$donnees = mysql_fetch_array($retour);

// Ouf ! On n'a plus qu'à afficher le nombre de connectés !
echo '<p>Il y a actuellement ' . $donnees['nbre_entrees'] . ' visiteurs connectés sur mon site !</p>';
?>



et voici le code qui gére la connexion

<?php
session_start();
require_once("config.inc.php");
if($_GET['action']=="logout") {
mysql_query('DELETE FROM connectes WHERE ip =\'' . $_SERVER['REMOTE_ADDR'] . '\'');
	session_destroy();
}
 

require_once("fonctions.inc.php");

if($_POST) {
$login = $_POST['login'];
$mdp = $_POST['mdp'];

if ($_POST['login'] and $_POST['mdp'])
{
	if(verifierLogin($login, $mdp))
	{
		header("Location: accueil.php");
		$data = getInfosParId($login, $mdp);
		$_SESSION['id_utilisateur'] = $data['id_utilisateur'];
		$_SESSION['login'] = $data['login'];
		$_SESSION['dernier_acces'] = time();
		$_SESSION['user_ip'] = $_SERVER['REMOTE_ADDR'];
	}
	else 
	{
		header("Location:index.php?error=1");
	}
}

else 
{
	header("Location:index.php?error=2");
}
}
?>


Quand j'utilise ton code ma page connexion ne prend pas en compte l'utilisateur connecté mais la session est bien detruit quand l'utilisateur ferme la fenetre

Merci
0