COOKIE probléme de passage

speedylol Messages postés 228 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 27 novembre 2013 - 1 nov. 2005 à 23:52
speedylol Messages postés 228 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 27 novembre 2013 - 10 nov. 2005 à 12:22
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

FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
2 nov. 2005 à 00:03
$_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 :)
0
speedylol Messages postés 228 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 27 novembre 2013
4 nov. 2005 à 11:31
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
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
6 nov. 2005 à 10:04
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
0
speedylol Messages postés 228 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 27 novembre 2013
7 nov. 2005 à 12:28
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???
0

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

Posez votre question
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
7 nov. 2005 à 20:20
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
0
speedylol Messages postés 228 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 27 novembre 2013
9 nov. 2005 à 18:15
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
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
9 nov. 2005 à 19:06
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
0
speedylol Messages postés 228 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 27 novembre 2013
10 nov. 2005 à 12:22
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();
0
Rejoignez-nous