Résultats de la recherche (326 résultats)

NiCo
28 Septembre 2005, 9:12
Tiens voilà le contenu.

J'ai pas pris les commentaires de début de fichier ni le ?> à la fin pour plus de clarté mais le voici :

define('CACHE_FTP', 1);
define('CACHE_SQL', 2);

class cache
{
	var $dir;
	var $code_to_write = '';
	var $only_sql = array();

	/*
	** Constructeur, assigne un répertoire
	*/
	function cache($dir)
	{
		$this->dir = $dir;
	}

	/*
	** Méthode inspirée de la classe de FSB2
	** Permet de charger un fichier cache, soit depuis le FTP, soit depuis la table cache de la base de donnée
	** -----
	** $table ::	Nom de la table à  charger
	*/
	function load_table($table, $load_type = CACHE_FTP)
	{
		$fields = 'fields_' . $table;
		$count = 'compte_' . $table;
		global $bdd, $langue, $$count, $$fields, $$table;

		if ($load_type == CACHE_FTP)
		{
			if (file_exists($this->dir . 'fichier_' . $table . '.php'))
			{
				include($this->dir . 'fichier_' . $table . '.php');
			}
			else
			{
				die('Le fichier ' . $this->dir . 'fichier_' . $table . '.php n\'existe pas');
			}
		}
		else
		{
			$sql = 'SELECT * FROM ' . CACHE_TABLE . "
						WHERE cache_table = '$table'";
			$result = $bdd->requete($sql) OR die("$sql<br />" . $bdd->error());

			$row = $bdd->tableau($result);
			foreach (array('cache_content' => 'table', 'cache_fields' => 'fields') AS $key => $value)
			{
				$$$value = unserialize(stripslashes($row[$key]));
				if (!is_array($$$value))
				{
					$$$value = array();
				}
			}
			$$count = count($$table);
		}
	}

	/*
	** Ecrit le tableau passé en argument dans le cache en utilisant sa fonction spécifique
	** -----
	** $data :: Tableau à  écrire
	** $function :: Nom de la table
	** $count_data :: Argument obsolète
	*/
	function write_in_cache($data, $table, $count_data = 0, $ecrire_ftp = TRUE, $ecrire_sql = TRUE)
	{
		$fields = 'fields_' . $table;
		global $bdd, $langue, $$fields, $$table;

		if (!$this->is_aborting())
		{
			if ($this->only_sql[$table])
			{
				$ecrire_ftp = FALSE;
				$ecrire_sql = TRUE;
			}

			if ($ecrire_ftp)
			{
				$this->code_to_write = "<?php\n" . $this->obtain_cache_code($data, $table) . "\n?>";
				$this->write_data($this->code_to_write, $this->dir . 'fichier_' . $table . '.php');
			}

			if ($ecrire_sql)
			{
				$sql = 'REPLACE INTO ' . CACHE_TABLE . '
								(cache_table, cache_content, cache_fields)
							VALUES (\'' . $table . '\', \'' . addslashes(serialize($$table)) . '\', \'' . addslashes(serialize($$fields)) . '\')';
				$bdd->requete($sql) OR die("$sql<br />" . $bdd->error());
			}
		}
		else
		{
			die('La connexion a été intérompue, aucune donnée n\'a été écrite dans les fichiers');
		}
	}

	/*
	** génère le code à  écrire dans le fichier cache
	** -----
	** $data :: Tableau à  écrire
	** $function :: Nom de la table
	*/
	function obtain_cache_code($tab, $function)
	{
		$fields = 'fields_' . $function;
		global $$fields;

		if (count($$fields))
		{
			$code = get_array_code($$fields, 'fields_' . $function) . "\n";
		}
		else
		{
			$tmp = array();
			if (is_array($tab[0]))
			{
				foreach($tab[0] AS $k => $v)
				{
					$tmp[] = $k;
				}
			}
			$code = get_array_code($tmp, 'fields_' . $function) . "\n";
		}
  
		$code .= get_array_code($tab, $function) . "\n";
		$code .= '$compte_' . $function . ' = count($' . $function . ');';
		return ($code);
	}

	/*
	** Vérifie si la connexion n'a pas été intérompue (afin de ne pas corrompre un fichier)
	*/
	function is_aborting()
	{
		@ignore_user_abort(1);
		return (@connection_aborted() ? TRUE : FALSE);
	}

	/*
	** Ecrit des données dans un fichier
	** -----
	** $code :: Le texte à  écrire
	** $file :: Le fichier dans lequel écrire le texte
	*/
	function write_data($code, $file)
	{
		@umask(0);
		@chmod($file, 0666);
		$handle = @fopen($file, 'w');
		@flock($handle, LOCK_EX);
		if (@fwrite($handle, $code))
		{
			@fflush($handle);
			@flock($handle, LOCK_UN);
			@fclose($handle);
			@chmod($file, 0666);
			unset($code);
			return (TRUE);
		}
		else
		{
			die('Impossible d\'écrire dans le fichier ' . $file);
		}
	}

	/*
	** Convertit un tableau de cache en tableau associatif.
	** Le tableau de base ne doit comporter que deux champs par
	** ligne, avec comme clef 'name' et 'value'.
	** -----
	** $tab :: Tableau à  convertir
	*/
	function convert_to_simple_array($tab, $name = 'name', $value = 'value')
	{
		$new_tab = array();
		foreach ($tab AS $v)
		{
			$new_tab[$v[$name]] = $v[$value];
		}
		return ($new_tab);
	}

	/*
	** Convertit le tableau associatif en tableau de cache.
	** Le tableau doit être de la forme
	** $tab = array('k' => 'v', 'k' => 'v', 'k' => 'v', etc ...);
	** -----
	** $tab :: Tableau à  convertir
	*/
	function convert_to_normal_array($tab, $name = 'name', $value = 'value')
	{
		$new_tab = array();
		$k = 0;
		foreach ($tab AS $key => $v)
		{
			$new_tab[$k][$name] = $key;
			$new_tab[$k][$value] = $v;
			$k++;
		}
		return ($new_tab);
	}

	/*
	** Impose un cache SQL pour la table donnée
	** -----
	** $tablename ::		Nom de la table en question
	*/
	function use_sql($tablename)
	{
		$this->only_sql[$tablename] = TRUE;
	}
}
 
NiCo
27 Septembre 2005, 17:26
Mon forum est bien en 1.0.3A et le fichier includes/class/classes_cache.php est celui du zip de la 1.0.3A mais le problème persiste. Je viens de vérifier à nouveau que toutes les modifs depuis la 1.0.2A ont bien été faites et il n'y a pas d'erreur. J'ai rafraichi le cache de mon navigateur mais le forum reste bien là même après une synchronisation...

Peut-être que le fichier qui est dans la 1.0.3A est celui qui est dans la 1.0.3 (ça arrive un oubli dans la précipitation).
 
NiCo
27 Septembre 2005, 15:00
Bonjour,

Suite à la mise à jour en 1.0.3a, il n'est plus possible de supprimer un forum. En effet, maintenant que la gestion des forums passe par le SQL, la fonction supprimer_forum devrait être mise à jour pour en tenir compte (suppression SQL au lieu de la simple suppression du cache).

Merci d'avance de la correction ;)
 
NiCo
03 Mai 2005, 17:05
Bonjour,

Bon alors voilà , je voulais tester un petit script en php que j'ai créé mais il bugue.

Le principe :

C'est un script d'espace membre (c'est bidon mais j'ai codé ça rapidement).
L'utilisateur accède au script par la page index.php
Sur cette page lui est affiché un formulaire de connexion.
Si l'utilisateur est dans la base de données et qu'il a le bon mot de passe, alors il est redirigé vers la page espace_reserve.php
Sinon, il est redirigé vers l'index qui lui affiche un message d'erreur selon que son login ou son mot de passe est incorrect.

Bon, rien de bien compliqué en apparence.

J'ai utlisé une partie de la classe sql de FSB pour faire ça (en la modifiant un peu).

Le problème c'est que rien ne fonctionne.

Je mets le fichier en téléchargement pour que quelqu'un puisse m'aider.

Faites bien gaffe à créer une base de données utilisateurs, une table users contenant les champs login et pass et à bien remplir correctement le fichier config.php.

Merci à celui qui m'apportera son aide.

PS : c'est un truc sans interêt pour vous mais assez urgent pour moi... Aidez-moi svp ;)

http://www.neoinzematrix.dafun.com/espace_membre.zip
 
NiCo
30 Avril 2005, 15:55
2ème problème résolu, il existe la fonction aff_date intégrée à FSB. Elle fait parfaitement l'affaire ;)

Je pense avoir aussi trouvé une solution pour les permissions ;)
 
NiCo
30 Avril 2005, 15:53
Oui ça serait préférable...
 
NiCo
30 Avril 2005, 14:51
Franchement le gf-portail est très bien, j'espère que ton portail le sera aussi ;)

Pour la note, ne t'inquiète pas, je la mettrais et j'ai l'autorisation de giefca pour le faire ;)
 
NiCo
30 Avril 2005, 14:49
Ce système est complètement inutile. Le cryptage peut être contourné très facilement puisqu'il n'y a aucun .htaccess pour protéger les deux fichiers. Il suffit de récupérer a.php et config.php puis d'analyser le cryptage (c'est du md5 il me semble...).

La protection du config.php de fsb est bien plus efficace, simple et rapide...
 
NiCo
29 Avril 2005, 15:59
Bonjour ;)

Comme vous l'avez peut-être remarqué, je planche sur l'adaptation du mod arcade pour FSB.

Donc je crée ce topic pour q'on puisse m'aider lorsque je bloque sur quelque chose ;)

Alors voilà , premier problème (je savais déjà par avance que cela allait en être un) : le mod arcade possède son propre système de permission et j'aimerai savoir comment adapter celui-ci à FSB.

Je vais tenter d'expliquer le fonctionnement des permissions du mod arcade :

Les jeux sont regroupés dans différentes catégories. On peut définir les droits d'accès à une ou plusieurs catégories pour chaque utilisateur et/ou pour un ou plusieurs groupes.

Le problème, c'est que je ne vois pas du tout comment faire ça pour FSB...

Si quelqu'un peut m'aider là -dessus... (le reste de l'adaptation du mod ne pose apparemment pas de difficultés particulières).

Je continue l'adaptation des parties qui ne touchent pas les permissions en attendant ;)

EDIT : secnd problème pour la ligne :
'YOURDATEHIGH' => "<nobr>" . create_date( $board_config['default_dateformat'] , $liste_jeux[$row['arcade_catid']][$i]['score_date'] , $board_config['board_timezone'] ) . "</nobr>",


Il y a un équivalent à la fonction create_date de phpBB dans FSB ?
 
NiCo
29 Avril 2005, 15:11
Oui, il y a aussi le GF-Portail qui est bien (grummfy a dà» s'en inspirer pour son portail (enfin j'espère qu'il sera aussi fonctionnel :p).

Certains mods de phpBB sont quand même très populaires (ADR par exemple, ça serait bien si il était adapté mais c'est trop de boulot lol)

Pour le mod FSBArcade (bah ouais...), je vais m'aider des tutos effectivement ;)
 
NiCo
29 Avril 2005, 14:54
Bonjour à tous ;)

Je suis très intéressé par le projet FSB alors je vais essayer d'y apporter ma contribution.

Je trouve très bien le mod arcade de Giefca (http://www.gf-phpbb.com) donc je suggère de l'adapter à FSB ;)

Je vais commencer de ce pas mais, ne connaissant pas encore vraiment la manière dont est codé FSB, je risque d'avoir besoin de vos lumières ;)

Allez, c'est parti !!
 


.