[INFO] sur l'utilisation des sessions de phpBB2 sur son site

Ce forum aborde toutes les questions qu'un codeur ou webmaster pourrait se poser, et n'ayant aucun rapport direct avec phpBB.
Tout ce qui peut concerner la récupération des sessions de phpBB sur votre site, doit se faire dans ce forum.

Modérateur: Equipe

Re: [INFO] sur l'utilisation des sessions de phpBB2 sur son site

Messagede M@CfL€!D » 17 Oct 2008 à 19:17

Le fichier que j'ai mis dans mon précédent message est un fichier d'origine du mod arcade pour phpbb.
J'utilise les sessions sur mon site de jeux pour les compte de mon forum phpBB.
Je reprend en partie le mod arcade pour les scores dans les jeux de mon site. Dans le fichier que j'ai mis en lien ca fonctionne pourtant bien alors je comprend pas pourqoi chez moi sur mon fichier games (à ma sauce ca ne marche pas ...)
Dernière édition par M@CfL€!D le 12 Nov 2008 à 23:15, édité 2 fois.
M@CfL€!D
Posteur néophyte
Posteur néophyte
 
Messages: 66
Inscription: 24 Juil 2006 à 23:06
Localisation: Strasbourg / France

Re: [INFO] sur l'utilisation des sessions de phpBB2 sur son site

Messagede spitfire pat » 18 Oct 2008 à 05:19

M@CfL€!D a écrit:alors je comprend pas pourqoi chez moi sur mon fichier games (à ma sauce ca ne marche pas ...)

parce que dans 'ta sauce' tu as ajouté quelque chose qui ne marche pas. alors plutôt que nous montrer le fichier d'origine, tu ferais mieux de nous montrer celui 'à ta sauce' 8)
Avatar de l’utilisateur
spitfire pat
Superstar
 
Messages: 15007
Inscription: 18 Sep 2004 à 15:43
Localisation: bourgogne

Re: [INFO] sur l'utilisation des sessions de phpBB2 sur son site

Messagede M@CfL€!D » 12 Nov 2008 à 14:23

Salut et désolé pour le retard dans ma réponse,

Dans mon fichier games.php, au lieu de mettre :
Code: Tout sélectionner
elseif ($row['game_type'] == 4)
{
      $template->assign_block_vars('game_type_V2',array());
      setcookie('gidstarted', '', time() - 3600);
      setcookie('gidstarted',$gid);
      setcookie('timestarted', '', time() - 3600);
      setcookie('timestarted', time());

      $gamehash_id = md5($user_ip);
      $sql = "INSERT INTO " . GAMEHASH_TABLE . " (gamehash_id , game_id , user_id , hash_date) VALUES ('$gamehash_id' , '$gid' , '" . $userdata['user_id'] . "' , '" . time() . "')";

      if (!($result = $db->sql_query($sql)))
      {
            //message_die(GENERAL_ERROR, "Couldn't update hashtable", '', __LINE__, __FILE__, $sql);
      }
      $sql = "UPDATE " . GAMES_TABLE . " SET game_set = game_set+1 WHERE game_id =  '$gid'";
      $db->sql_query($sql) ;
}

J'ai mis :
Code: Tout sélectionner
elseif ($game_type == 4)
{
echo "<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,47,0\" name=\"mc3\" width=\"$game_width\" height=\"$game_height\" id=\"mc3\">\n";
echo "<param name=\"movie\" value=$url_jeu>\n";
echo "<param name=\"quality\" value=\"high\">\n";
echo "<embed src=$url_jeu width=\"$game_width\" height=\"$game_height\" quality=\"high\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" bgcolor=\"#101010\" name=\"mc3\"></embed>\n";
echo "</object>";

      setcookie('gidstarted', '', time() - 3600);
      setcookie('gidstarted',$jeu);
      setcookie('timestarted', '', time() - 3600);
      setcookie('timestarted', time());

      $gamehash_id = md5($user_ip);
      $sql = "INSERT INTO jeux_gamehash (gamehash_id , game_id , user_id , hash_date) VALUES ('$gamehash_id' , '$id' , '" . $userdata['user_id'] . "' , '" . time() . "')";

      if (!($result = $db->sql_query($sql)))
      {
            //message_die(GENERAL_ERROR, "Couldn't update hashtable", '', __LINE__, __FILE__, $sql);
      }

}

Je n'utilise pas les sessions phpBB mais tout fonctionne sauf ce problème dans les 4 lignes "setcookie" où j'ai l'erreur "...Cannot modify header information..."

Merci de votre aide.
M@CfL€!D
Posteur néophyte
Posteur néophyte
 
Messages: 66
Inscription: 24 Juil 2006 à 23:06
Localisation: Strasbourg / France

Re: [INFO] sur l'utilisation des sessions de phpBB2 sur son site

Messagede glouton » 12 Nov 2008 à 14:32

Salut,

Par restriction du protocole http les cookies doivent être envoyé avant tout autre chose or d'après ton code tu as déjà au moins "echoté" une animation Flash. L'erreur renvoyée est donc normale.
http://fr2.php.net/manual/fr/function.setcookie.php
glouton c'est wolverine en anglais.
C'est petit, tout rond et ça bouffe tout ! ;)
Web2Com | Ouverture Facile | Le Nid Barbar
Avatar de l’utilisateur
glouton
Roi des posts
Roi des posts
 
Messages: 545
Inscription: 26 Sep 2008 à 00:41
Localisation: Youhou ! Je suis là. Pourquoi ne me voyez-vous pas ?

Re: [INFO] sur l'utilisation des sessions de phpBB2 sur son site

Messagede M@CfL€!D » 12 Nov 2008 à 14:43

Merci pour la répose mais dans le code do'rigine :
Code: Tout sélectionner
      $template->assign_block_vars('game_type_V2',array());
      setcookie('gidstarted', '', time() - 3600);
      setcookie('gidstarted',$gid);
      setcookie('timestarted', '', time() - 3600);
      setcookie('timestarted', time());

On a aussi le code Flash qui se lance avant non ? Le template va bien chercher le même code que celui que je met en remplacement.
En plus j'ai déjà essayé de mettre les 4 lignes setcookie après mon code Flash et là ca marche pas non plus. Exactement la même erreur sur les 4 lignes.
Les fait d'utiliser des templates est le seul moyen de pas avoir ces erreurs ? Ou il existe une autre solution que j'ignore ?

Merci
M@CfL€!D
Posteur néophyte
Posteur néophyte
 
Messages: 66
Inscription: 24 Juil 2006 à 23:06
Localisation: Strasbourg / France

Re: [INFO] sur l'utilisation des sessions de phpBB2 sur son site

Messagede spitfire pat » 12 Nov 2008 à 14:53

M@CfL€!D a écrit: Le template va bien chercher le même code que celui que je met en remplacement.i
oui, mais il ne sera pas affiché avant l'instruction $template->pparse
Avatar de l’utilisateur
spitfire pat
Superstar
 
Messages: 15007
Inscription: 18 Sep 2004 à 15:43
Localisation: bourgogne

Re: [INFO] sur l'utilisation des sessions de phpBB2 sur son site

Messagede M@CfL€!D » 12 Nov 2008 à 15:11

OK merci je crois que je commence à comprendre :?
Mais dans mon cas, sans utiliser les templates, comment faire pour avoir ce résultat ?
Je viens d'essayer de mettre les 4 lignes setcookie tout en haut dans le code pour les sessions et à première vue, ca fonctionne (j'ai fais quelques essais vite fait).
Mais à mon avis c'est pas la meilleur solution que de mettre ce code tout en haut puisque c'est lancé à chaque page et non plus uniquement dans ma condition else. Du coup ca risque de foutre le bordel à un moment...

Il existe un moyen de faire une condition dans le code pour les sessions ? Ou une sorte d'étiquette goto ( :mrgreen: ) qui me prenne les setcookie placés tout en haut uniquement au lancement de ma condition "elseif ($row['game_type'] == 4)"

Merci
M@CfL€!D
Posteur néophyte
Posteur néophyte
 
Messages: 66
Inscription: 24 Juil 2006 à 23:06
Localisation: Strasbourg / France

Re: [INFO] sur l'utilisation des sessions de phpBB2 sur son site

Messagede glouton » 12 Nov 2008 à 15:39

Il faut juste que les setcookie() soient avant tout autre envoi vers la sortie. Donc ça dépend de l'ensemble du script, des inclusions éventuelles...
glouton c'est wolverine en anglais.
C'est petit, tout rond et ça bouffe tout ! ;)
Web2Com | Ouverture Facile | Le Nid Barbar
Avatar de l’utilisateur
glouton
Roi des posts
Roi des posts
 
Messages: 545
Inscription: 26 Sep 2008 à 00:41
Localisation: Youhou ! Je suis là. Pourquoi ne me voyez-vous pas ?

Re: [INFO] sur l'utilisation des sessions de phpBB2 sur son site

Messagede spitfire pat » 12 Nov 2008 à 16:10

j'ai regardé le script que tu m'as envoyé en PM (drôle d'idée, tu pouvais pas mettre le lien ici ?)
le seule endroit ou tu envoies des cookies c'est quand game_type est à 4, il faut donc que cette variable gametype soit connue avant tout affichage
donc ces lignes
Code: Tout sélectionner
include("inc/conf.php");
$requete = mysql_query('SELECT nom_jeu FROM '.$jeux_prefix_table.'games WHERE id='.intval($_GET['jeu']));
$nom_jeu = mysql_result($requete,0,"nom_jeu");
et
Code: Tout sélectionner
$requete = mysql_query('SELECT id, nom_jeu, url_jeu, description_jeu, game_scorevar, game_type, game_width, game_height, game_highscore_type FROM '.$jeux_prefix_table.'games WHERE id='.intval($_GET['jeu']));
if (mysql_num_rows($requete)==0)
{
    mysql_close($connect_db);
    echo("jeu introuvable");
    exit;
}

$id = mysql_result($requete,0,"id");
$nom_jeu = mysql_result($requete,0,"nom_jeu");
$url_jeu = mysql_result($requete,0,"url_jeu");
$description_jeu = mysql_result($requete,0,"description_jeu");
$game_scorevar = mysql_result($requete,0,"game_scorevar");
$game_type = mysql_result($requete,0,"game_type");
$game_width = mysql_result($requete,0,"game_width");
$game_height = mysql_result($requete,0,"game_height");
$highscore_type = mysql_result($requete,0,"game_highscore_type");
est à mettre juste après
Code: Tout sélectionner
init_userprefs($userdata);

et après tu ajoutes
Code: Tout sélectionner
if ($game_type == 4)
{
    setcookie('gidstarted', '', time() - 3600);
    setcookie('gidstarted',$jeu);
    setcookie('timestarted', '', time() - 3600);
    setcookie('timestarted', time());
}

et tu effaces tous les setcookies où ils étaient à l'origine

ps, je te signale que la variable $jeu est indéfinie
Avatar de l’utilisateur
spitfire pat
Superstar
 
Messages: 15007
Inscription: 18 Sep 2004 à 15:43
Localisation: bourgogne

Re: [INFO] sur l'utilisation des sessions de phpBB2 sur son site

Messagede M@CfL€!D » 12 Nov 2008 à 16:34

Merci !
Ca à l'air OK comme ca.
Pour la variable $jeu elle vient de l'adresse url "site.fr/page?jeu=1234" et est récupérée par "... id='.intval($_GET['jeu'])); ..."
M@CfL€!D
Posteur néophyte
Posteur néophyte
 
Messages: 66
Inscription: 24 Juil 2006 à 23:06
Localisation: Strasbourg / France

Re: [INFO] sur l'utilisation des sessions de phpBB2 sur son site

Messagede spitfire pat » 12 Nov 2008 à 16:41

M@CfL€!D a écrit:Pour la variable $jeu elle vient de l'adresse url "site.fr/page?jeu=1234" et est récupérée par "... id='.intval($_GET['jeu'])); ..."

nan msieu, ton id='.intval($_GET['jeu'])); place le $_GET['jeu'] dans la requête sql, mais ne définit en aucune façon la variable $jeu, et comme common.php détruit les variables globales, ta variable $jeu est vide et ça va fausser non seulement tes cookies, mais aussi cette requête
Code: Tout sélectionner
$sql = "INSERT INTO jeux_gamehash ( gamehash_id , game_id , user_id , hash_date ) VALUES ( '$gamehash_id' , '$jeu' ,
Avatar de l’utilisateur
spitfire pat
Superstar
 
Messages: 15007
Inscription: 18 Sep 2004 à 15:43
Localisation: bourgogne

Re: [INFO] sur l'utilisation des sessions de phpBB2 sur son site

Messagede M@CfL€!D » 14 Nov 2008 à 00:48

OK merci
Ma variable $jeu est identique à la variable $id

Et comme ca change selon l'adresse url, je sais pas comment la déclarer.
Une petite aide de plus serait sympa...
M@CfL€!D
Posteur néophyte
Posteur néophyte
 
Messages: 66
Inscription: 24 Juil 2006 à 23:06
Localisation: Strasbourg / France

Re: [INFO] sur l'utilisation des sessions de phpBB2 sur son site

Messagede spitfire pat » 14 Nov 2008 à 06:57

eh ben tu fais
Code: Tout sélectionner
$jeu = intval($_GET['jeu']);
non?

mais APRES l'inclusion de common.php
Avatar de l’utilisateur
spitfire pat
Superstar
 
Messages: 15007
Inscription: 18 Sep 2004 à 15:43
Localisation: bourgogne

Précédente

Retourner vers Coding, Webmastering et Sécurité informatique

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Exabot [Bot], Google [Bot] et 4 invités

Liens : phpBB.biz • phpBBHacks.com • phpBB-Seo.com • EzCom-fr.com • phpBB-Services.com • phpBB-Conseils.com • phpBB3 Styles • phpBB podpora • phpBB Portugal • Tapatalk • Net Avenir • PromoBenef • Ticket Gagnant •