COOKIE probléme de passage

Signaler
Messages postés
228
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
27 novembre 2013
-
Messages postés
228
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
27 novembre 2013
-
Bonjour ,

j 'aimerais faire passer certaine donnée de mon script log par une session cookie pour inseré les membre qui son online dans une table voila les debut de mais deux script ....

// script log

$sql = 'SELECT idx FROM trombino WHERE login="'.addslashes($_POST['login']).'" AND pass_md5="'.md5(addslashes($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$nb = mysql_num_rows($req);

$sql = 'SELECT sexe FROM trombino WHERE login="'.addslashes($_POST['login']).'"';
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$rs = mysql_fetch_array($req);
$_POST['sexe'] =$rs["sexe"];



if ($nb == 1) {
$data = mysql_fetch_array($req);


session_start();
$_SESSION['login'] = $_POST['login'];
$_SESSION['sexe'] = $_POST['sexe'];
$_SESSION['id'] = $data['idx'];
@setcookie('login',$_POST['login'],time()+3600,'/',0);
@setcookie('sexe',$_POST['sexe'],time()+3600,'/',0);
mysql_free_result($req);

echo "<script language="JavaScript">
setTimeout("window.location='comptes.php'",0); // delai en millisecondes </script>";

exit();

// haut page membre online

<?php

if (!isset($_COOKIE['login']) && (!isset($_COOKIE['sexe']))) {

echo "<script language="JavaScript">
setTimeout("window.location='index.php'",0); // delai en millisecondes
</script>";
exit();
}
include("config.php");
?>
BLABLA

$connecter = $_COOKIE['login'];
$sexy = $_COOKIE['sexe'];
$limite_temps=60; //1 minutes


$i=explode('.',$_SERVER['REMOTE_ADDR']);
$ip_client=$i[0].$i[1].$i[2].

$temps=time();
$temps_limite=$temps-$limite_temps;

if (empty($tri))
{
$tri="sexy";
}


mysql_query("DELETE FROM connectes WHERE temps<'$temps_limite' OR ip='$ip_client'") or die('Impossible d\'effectuer la requête');
mysql_query("INSERT INTO connectes VALUES('$ip_client','$connecter','$sexy','$temps')") or die('Impossible d\'effectuer la requête');
$req1=mysql_query("SELECT connecter,sexy FROM connectes order by $tri") or die('Impossible d\'effectuer la requête');

Cela ne fonction pas et je vois pas très bien pq merci de me renseigner la dessus c'est très sympa de votre par.

8 réponses

Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
$_POST['sexe'] =$rs["sexe"];



Tu ne peux pas remplir la superglobal !



Par contre, tu mélanges session et cookie !

session_start(); <== doit être inscrit sur toutes tes pages pour pouvoir utiliser $_SESSION[]



pour les cookies, c'est pas mal (peut mieux faire) mais si tu désactives les cookies, ca marche plus :)
Messages postés
228
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
27 novembre 2013

exemple si je passe la session d' un membre par exemple comme cela ci dessous cela marcherais pas svp??,

$connecter = $_SESSION['login'];

biensur a la place du cookie cela fonctionerais dans ma liste de connecter please j aurais tout mais membre svp??? online , j aimerais trouver la bonne solutions ....MERCI de vos réponse
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
salut



entre nous, on n'a pas vraiment envi de lire ce code...



il est bourré d'arobases alors que des or die devraient les remaplcer (gestion des erreurs...)


ta méthode n'est pas bonne, ici, tu peux encore avoir 9 chiffres...

$i=explode('.',$_SERVER['REMOTE_ADDR']);

$ip_client=256*256*256*$i[0]+256*256*$i[1]+$i[2]*256+$i[3];

ici, tu gardes les 4 paramètres, et ton ip est stoquée sur un INT UNSIGNED soit 4 octets...



sur une page t'as des sessions, une autre des cookis, et aparement pour faire la même chose...


In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
Messages postés
228
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
27 novembre 2013

Bonjoue et merci de cette reponse mais en utilisant uniquement le methode session comme je vous demande ici est que chaque nouveau membre ce connectant sera mis dans la liste des membre online en les inserant dans une table.

$connecter= $_SESSION['login'];

Avec cette methode tout les memebre ce connectant ce rajouterons a ma liste onlinde ou pas svp???
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
NON

$_SESSION est une donnée personelle à chaque client !!!



l'id de session passe par le COOKIE, et tout le monde à un COOKIE
différent (c'est le md5 de microtime() au moment ou le cookie est
généré...)

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
Messages postés
228
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
27 novembre 2013

Voilà cela ne fonction toujours pas a moins que sur easyphp cela ne serais fonctionner

<?php


if (!isset($_COOKIE['login']) && (!isset($_COOKIE['sexe']))) {

echo "<script language="JavaScript">
setTimeout("window.location='index.php'",0); // delai en millisecondes
</script>";
exit();
}
include("config.php");

BLABLALBALA

$connecter = $_COOKIE['login'];
$sexy = $_COOKIE['sexe'];
$limite_temps=60; //1 minutes






$i=explode('.',$_SERVER['REMOTE_ADDR']);
$ip_client=$i[0].$i[1].$i[2];


$temps=time();
$temps_limite=$temps-$limite_temps;

if (empty($tri))
{
$tri="sexy";
}


mysql_query("DELETE FROM connectes WHERE temps<'$temps_limite' OR ip='$ip_client'") or die('Impossible d\'effectuer la requête');
mysql_query("INSERT INTO connectes VALUES('$ip_client','$connecter','$sexy','$temps')") or die('Impossible d\'effectuer la requête');
$req1=mysql_query("SELECT connecter,sexy FROM connectes order by $tri") or die('Impossible d\'effectuer la requête');
?>

Je donne ma langue au chat je trouve pas pq cela ne fonctionne pas
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
ton code ne veut rien dire... aucun commentaire, et ton temps est
calculé pour rien, on ne sait pas non plus quand on envoi les cookies...



tu pourrais expliquer en FRANCAIS, en essayant de faire des phrases corectes, ce que tu veux faire stp ?

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
Messages postés
228
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
27 novembre 2013

Bonjour ,

Voilà quand je me log, j aimerais envoyez le cookie avec les donnée speudo et sexe sur une autre page ou les membres sont online mais cela ne fonction pas comme je le voudrais

c'est pour cela que je mais cela pour intergrée mon membres dans une table online

$sexe = $_COOKIE['sexe'];
$connecter = $_COOKIE['login'];

Et cela les inserer dans ma table.

En debut de la page online je mais cela.

if (!isset($_COOKIE['login']))) {

echo "<script language="JavaScript">
setTimeout("window.location='index.php'",0); // delai en millisecondes
</script>";
exit();
}
include("config.php");
?>

Et enfin la partie que l'on ce log voici comment je le fait .

$heure = time();



if ( isset($_COOKIE['login']) && !empty($_COOKIE['login'])){
if ( isset($_COOKIE['sexe']) && !empty($_COOKIE['sexe'] )){
session_start();
$_SESSION['login'] = $_COOKIE['login'];
$_SESSION['sexe'] = $_COOKIE['sexe'];


}
}
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {


$sql = 'SELECT idx FROM membre WHERE login="'.addslashes($_POST['login']).'" AND pass_md5="'.md5(addslashes($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$nb = mysql_num_rows($req);



if ($nb == 1) {
$data = mysql_fetch_array($req);


session_start();
$_SESSION['login'] = $_POST['login'];
$_SESSION['id'] = $data['idx'];
@setcookie("login","$login",time()+365*24*30*3600);
@setcookie("sexe","$sexe",time()+365*24*30*3600);
mysql_free_result($req);

echo "<script language="JavaScript">
setTimeout("window.location='comptes.php'",0); // delai en millisecondes </script>";

exit();