Chti cadeau : detection temsp réel nouveaux visiteurs

WRInaute accro
Dans un autre topic, on a eu une discussion sur les possibilités ou non possibilités d'une gestion des datas en fichiers sur le serveur plutot qu'en bdd ...

Et comme je viens de me coder un petit truc qui illustre bien la chose, je vous le livre ...

Objet : Identifier en temps réel si un visiteur est nouveau ou pas (plus besoin d'attendre analytics pour connaitre son % de nouvelles visites ...)
Mise en oeuvre : Juste un include a ajouter au debut de chaquepage de votre site
Impact sur votre base données : aucun, nada, nib, quedalle :wink:
Impact sur votre serveur : juste un dossier IP_OK avec quelques doc.txt dedans. Pensez à le creer (le code de la routine ne contient pas de is dir ni de mk dir ... ils ont sauté au gré de mes copier couper coller )

Le principe : On maintient a jour une liste des ip visiteuses du site avec pour chaque ip sa date de première visite. cette liste est stockée sous forme de petits blocs (sur les 4 premieres catactères de l'ip). Pour info (puisque vous n'avez pas à vous en préoccuper, le bloc nommé IP_24_1.txt aura un contenu de ce type :

Code:
2010_07_11/24.155.12.83/
2010_07_14/24.107.66.174/
2010_07_17/24.139.146.155/
2010_07_22/24.122.245.184/
2010_07_31/24.161.187.65/
2010_07_31/24.196.173.243/
2010_08_03/24.161.99.99/
2010_08_03/24.192.240.80/
2010_08_04/24.13.133.85/
2010_08_08/24.122.17.8/
2010_08_12/24.118.198.193/
2010_08_12/24.141.247.77/
2010_08_13/24.144.245.97/
2010_08_13/24.132.46.191/
2010_08_19/24.183.217.111/

La routine : il vous suffit de créer nv_routine.php sur votre serveur et de coller dedans le code ci-dessous :

Code:
<?
// La routine nv_memo.php est a appeler par un include en tete de chaque page
// juste après avoir fait un start_session. Elle identifie le visiteur et maintient
// à jour la 'table' des IP datée (première apparition). En sortie, elle retourne
// deux infos :
// 1 - si le visiteur est un nouveau ou pas
// 2 - la date de premiere visite 
//
// Toutes la variables du script sont préfixées $nv_ ou nv_ pour les variables session
//
// *** Note : pour ceux qui ne veulent pas gérer de sessions, il suffit de mettre $nv_session
// a false ci-dessous 
//
// *** Note 2 : le format de date est AAAA_MM_JJ parce que j'en avait besoin par ailleurs sous
// cette forme mais libre a vous d'adopter un autre format. Par contre la position de la date
// devant l'ip dans les fichiers n'est pas innocente : elle permet un accès aisé à la date avec
// $nv_pos-10 quelle que soit la longueur de l'IP.
//
// *** Note 3 : J'ai retenu une longueur de 4 caractères pour le decoupage des fichiers d'IP car
// cela me semble un bon compromis en terme de ratio nb de fichiers / taille unitaire des fichiers.
// Si vous avez une très forte volumétrie de visiteurs, il pourra être opportun de gérer la chose
// avec les 5 premiers caractères (plus de fichiers mais pas de fichier trop gros).
//
// *** Note 4 : J'ai volontairement fait l'impasse sur les flock ... en effet, la nature meme du
// script fait que si sur une page, le hasard fait que ca passe pas, le visiteur a toutes les chances
// d'être correctement mémorisé à la page suivante (acceptable dans ce contexte).

$nv_session=true;
$nv_datejour=date ("Y_m_d");

// ---------- l'ip une premiere fois en debut de session

if ($nv_session)
{
	if (isset($_SESSION['nv_addr']) === false)
		{
				$nv_addr=$_SERVER['REMOTE_ADDR'];
		 		$_SESSION['nv_addr']=$nv_addr;		
		}
		else
		{
				$nv_addr=$_SESSION['nv_addr'];		
		}
}
else
{
	$nv_addr=$_SERVER['REMOTE_ADDR'];
}

//
// ---------- on ajoute au fichier des IP pour détection des new visitors
//
// on fabrique le nom du fichier (4 premiers car de l'ip)

$nv_deb_ip=$nv_addr[0].$nv_addr[1].$nv_addr[2].$nv_addr[3];
	if ($nv_deb_ip[1] == ".")
	{
		$nv_deb_ip[1]="_";
	}
	if ($nv_deb_ip[2] == ".")
	{
		$nv_deb_ip[2]="_";
	}
	if ($nv_deb_ip[3] == ".")
	{
		$nv_deb_ip[3]="_";
	}

$nv_chemindoc=$_SERVER["DOCUMENT_ROOT"]."/IP_OK/IP_".$nv_deb_ip.".txt";
$nv_chaine_ip="/".$nv_addr."/";
$nv_pos=false;
$nv_new=false;

if (file_exists($nv_chemindoc))
	{
		$nv_liste_ip=file_get_contents($nv_chemindoc);
		$nv_pos=strpos($nv_liste_ip, $nv_chaine_ip);
	}

if ($nv_pos === false) // c'est un new, on l'ajoute
	{
		$nv_fpagesreferer = fopen ($nv_chemindoc, "a+");
		fputs ($nv_fpagesreferer, $nv_datejour.$nv_chaine_ip."\n");  
		fclose ($nv_fpagesreferer);
		$nv_date_first=$nv_datejour;
		$nv_new=true;
	}
	else // c'est un existant, on recupere date premiere visite
	{
		$nv_date_first=substr($nv_liste_ip, $nv_pos-10, 10);
		if($nv_date_first == $nv_date_jour)
			{
				$nv_new=true;
			}
	}

// ----- En sortie
//
// $nv_new : false ou true
// $nv_date_first : date de premiere visite de l'ip
?>

puis d'ajouter en debut de chaquepage de votre site un simple appel par include :

Code:
include("nv_routine.php");

En sortie :

1 - la "table" des ip est maintenue a jour
2 - deux variables vous indiquent si le visiteur est nouveau ainsi que sa date de premiere visite.

Note : On peut bien sur faire la meme chose en stockant en bdd mais le propos ici était juste de montrer que c'est tout aussi facile (sans besoin d'aspirine) et performant en fichier .txt (et donc pas besoin d'encombrer une bdd avec ce type d'infos).

Note 2 : comme j'ai fait des copier coller pour l extraire de mon code et des renommages pour rendre la chose plus lisible, il peut trainer quelques bug mineur ou faute de frappe, merci de signaler les erreurs ...

Note 3 : J'ai fait l'impasse sur les flock partant du principe que dans ce contexte ce n'est pas vital du tout et dans le cas (rare) de conflit, de toute façon le visiteur sera mémorisé à la page suivante ...

Note 4 : le choix $nv_deb_ip=$nv_addr[0].$nv_addr[1].$nv_addr[2].$nv_addr[3]; peut surprendre ... j'explique : une vieille habitude du travail dans les bdd ou chaque fois que je le peux je réduis l'utilisation des appels à des commandes et donc au moteur du langage (dans certains langages c'est important, je ne sais pas si cela a un impact en php par rapport a un substr). Idem pour les 3 tests qui suivent au lieu d'un simple str_replace.

A votre disposition si vous avez des questions sur les choix faits ...
 
WRInaute accro
Il me semble que cette thématique (datas sans bdd) pourait faire l'objet de multiples petits outils mis à dispo de la communauté ... j'ai donc proposé cela a Olivier :

Salut olivier,

Je pense qua ca serait sympa d'initaliser un nouveau forum dédié aux développements alternatif "sans base de données".

Illustration avec un premier topic

Et du coup si ce type de petits scripts se multiplient, ca serait pratique de les avoir aisément sous la main :

- Dans un topic unique : peu pratique ... ou alors faut gérer un index en debut de topic ... mais au bout d'un certain temps on peut plus editer ... et puis ca va vite devenir un topic enorme inexploitable.

Solution : Un nouveau forum "Gestion de datas hors base de données" (placés sous le forum "Developpement d'un site web").

Si tu le crée, merci de deplacer le topic chti cadeau dedans ...
 
WRInaute passionné
Bonjour,

Tout est basé sur l'IP... suffit qu'elle change comme c'est le cas quotidiennement pour au moins 60% des internautes pour l'identifier comme nouveau...
Où est la pertinence ?

Analytics ne se base également que sur l'IP ? Je n'en ai pourtant pas l'impression...
 
WRInaute accro
Personnellement je n'ai jamais trouvé cette information comme fiable. Intéressante oui, mais fiable. La tendance peut être intéressante mais la valeur absolue... je ne sais pas. Il faudrait établir un comparatif en fonction des autres sites du meme secteur.
 
WRInaute accro
Bien sur que l exercice a ses limites, celles de la fiabilité de l'information IP ... perso à l'usage cela permet quand même d'etre moins dans le brouillard ... et apres analyse plus poussée, le résultat reste tres tres proche de ce que fournit google Analytics.

Mais bon là le propos était surtout le stockage de datas hors bases de données ...
 
WRInaute accro
Robinson a dit:
Bonjour,

Tout est basé sur l'IP... suffit qu'elle change comme c'est le cas quotidiennement pour au moins 60% des internautes pour l'identifier comme nouveau...
Où est la pertinence ?

Analytics ne se base également que sur l'IP ? Je n'en ai pourtant pas l'impression...
GA se base aussi très probablement sur le js pour filtrer en amont ... c'est aussi ce que je fais sur mon site en réel avec 2 filtrage en amont :

- la détéction du js non activé (un refresh en noscript vers une page chargeant une var)
- l'identification préalable d'une liste de bots connus

et donc je n'applique mon suivi que sur ce qui reste (du vrai visiteur donc pour l'essentiel). Alors c'est vrai reste le probleme des IP qui changent ... mais bon les synthèses me paraissent néanmoins assez probantes.
 
WRInaute accro
Robinson a dit:
Analytics ne se base également que sur l'IP ? Je n'en ai pourtant pas l'impression...
non, sur les cookies. En plus, sur l'ip, avec les utilisateurs qui passent via des proxy (grandes entreprises, université, ...) et ceux qui passent par des plateformes (genre téléphone mobile), cela fait pas mal de cas où une même ip peut correspondre à plusieurs utilisateurs
 
WRInaute accro
Leonick a dit:
cela fait pas mal de cas où une même ip peut correspondre à plusieurs utilisateurs
Oui mais la probabilité que deux utilisateurs récupérant la meme IP viennet ensuite sur ton site sur une courte période avec cette même IP doit statistiquement réduire les cas à pas grand chose (en tout cas sur des sites a petit ou moyen traffic).
 
WRInaute accro
Zecat a dit:
Leonick a dit:
cela fait pas mal de cas où une même ip peut correspondre à plusieurs utilisateurs
Oui mais la probabilité que deux utilisateurs récupérant la meme IP viennet ensuite sur ton site sur une courte période avec cette même IP doit statistiquement réduire les cas à pas grand chose (en tout cas sur des sites a petit ou moyen traffic).

les IP d'université et de grosses boites, surtout quand tu écris un article sur la boite en question
 
WRInaute accro
sim100 a dit:
Et pour les gros sites, le fichier va vite contenir des millions de lignes...
Allez partons sur la base de 1 million de lignes (IP différentes) ...

Sur la base du découpage avec 4 caractères, on peut estimer qu'il sera découpé en disons au pifomètre 3000 petits blocs ... et donc en moyenne eniron 300 Ip par fichier et donc des fichiers de 4 ou 5 k en moyenne... rien de monstrueux.

Comme indiqué le ratio 4 octest corespond à un choix pour des sites petist ou moyen. Sur des gros sites il suffit de passer à 5 octets pour repousser la limite de viabilité ... et pour ne pas avoir trop de fichiers dans un seul répertoire on peut imaginer (c'est surement ce que je ferais avec 5 octets) :

9 dossiers : nommés 1 à 9 (le premier octet de l'ip)
Dans chaque dossier : les fichiers d'ip correspondants

Fait le test. Mets le en service sur un site a fort traffic et regarde ce que ca genère en version 4 octets et en version 5 octets ... et de toute façon meme avec 3 millions d'ip mémorisées, la routine n'accèera jamais chaque fois qu'a un petit doc de 1 à 3 k dans lequel elle fera juste un strpos ... :wink:

Petite optimisation si on veut gagner un peu de place : puisque le nom de fichier contient par définitionles 4 ou 5 premier octets de l'ip, on peut optimiser l espace en ne stockant dna sles fichiers de les octets suivants de chaque IP ... Dans le meme esprit on peut stocker l'année sur 1 octets en partant de A pour 2010, B pour 2011 et ne pas mettre les _ et donc les dates seraienr A0823 etc etc ... donc 4 octets + 5 octets economisés soit une reduction de 50 % du volume par rapport à la version de base ...

Bref il reste de la marge de manoeuvre. La j'ai juste présenté la démarche sans trop compliquer le code ...
 
WRInaute accro
finstreet a dit:
Zecat a dit:
Leonick a dit:
cela fait pas mal de cas où une même ip peut correspondre à plusieurs utilisateurs
Oui mais la probabilité que deux utilisateurs récupérant la meme IP viennet ensuite sur ton site sur une courte période avec cette même IP doit statistiquement réduire les cas à pas grand chose (en tout cas sur des sites a petit ou moyen traffic).

les IP d'université et de grosses boites, surtout quand tu écris un article sur la boite en question
Je viens de regarder sur la journée d'hier ce que me dit GA et ce qui ressort d emes comptages ...

GA me dit que j'ai 72,91 %
NV me dit que j'ai 71,12 %

de nouveau visiteurs (le taux est haut parce que c'est un site lancé il y a un mois et donc en phase de montée en puissance).

Et si on y pense un peu, c'ets logique de les changements d'ip aient un impact faible puisque tous les vrai nouveaux, par définition c'est bon (donc la on est deja bon sur 70 % c'est sur (*) ). La seule incertitude porte sur les 30 % restant dans lesquels il peut y avoir des visites considérées comme non nouvelles alors qu'elles le sont ...

(*) heu non pas tout a fait puisque un meme gars peut venir trois jours de suite avec 3 ip ... mais bon manifestement vu les chiffres ci-dessus, ce semble l'un dans l'autre s'équilibrer entre le taux de vrai faux et de faux vrai :wink:
 
WRInaute passionné
Zecat a dit:
Je viens de regarder sur la journée d'hier ce que me dit GA et ce qui ressort d emes comptages ...

GA me dit que j'ai 72,91 %
NV me dit que j'ai 71,12 %

de nouveau visiteurs (le taux est haut parce que c'est un site lancé il y a un mois et donc en phase de montée en puissance).

Et si on y pense un peu, c'ets logique de les changements d'ip aient un impact faible puisque tous les vrai nouveaux, par définition c'est bon (donc la on est deja bon sur 70 % c'est sur (*) ). La seule incertitude porte sur les 30 % restant dans lesquels il peut y avoir des visites considérées comme non nouvelles alors qu'elles le sont ...

(*) heu non pas tout a fait puisque un meme gars peut venir trois jours de suite avec 3 ip ... mais bon manifestement vu les chiffres ci-dessus, ce semble l'un dans l'autre s'équilibrer entre le taux de vrai faux et de faux vrai :wink:
Tes stats n'ont aucun sens...

Tu aurais un site comme le mien avec seulement 15% de nouveaux visiteurs chaque jour, ton script me dirait que j'en ai 60%... :?
 
WRInaute accro
et GA me dirait quoi ?

Ton affirmation est peut etre pertinente (ou pas) mais une fois l'affirmation faite, quelques arguments pour l'étayer serait bienvenus ... sinon ca reste une affirmation ...
 
WRInaute passionné
Les 15% sont calculés par GA...

Petit script rapide sur mes visiteurs inscrits (dont la connexion est enregistrée à chaque visite).
(si je tenais compte des nouveaux visiteurs qui ne s'inscrivent pas, le taux de nouveaux visiteurs serait donc plus élevé)

Sur 200 IP connectées aujourd'hui (prises au hasard), 78 seulement se sont déjà connectés les 48 heures précédentes.
122 nouvelles adresses ip sur 200... 61%...

Alors qu'il s'agit de visiteurs très réguliers se connectant jusqu'à 5 fois par jour...

En poussant jusqu'au 1er aout (plus on pousse loin, plus les chances de revoir une même ip avec un visiteur différent est grande, ce qui diminue la pertinence du taux), le taux diminue à 35% de nouvelles visites.


Ce qui reste encore bien loin des 15% calculés par GA qui lui prend en compte tous les visiteurs et pas seulement les inscrits.
 
WRInaute accro
Je crois que ce qu'il veut te dire, c'est que détermination d'un visiteur comme "nouveau" en se basant simplement sur l'IP est un peu réductrice.

Google Analytics, de mémoire, c'est un cookie de 30 jours.

Note que tu peux ajouter un cookie check à ton script... c'est assez simple ;)
 
WRInaute passionné
Zecat a dit:
j ai rien compris a ta demonstration :roll: enfin bon po grave
Ton script nouveaux visiteurs :
=> uniquement basé sur IP
=> non prise en compte des changements d'IP des visiteurs
=> non prise en compte des visiteurs ayant même IP

Et par le saint-esprit, t'espères que cela s'équilibre :mrgreen:

Y'a-t-il vraiment besoin d'une démonstration pour te prouver le contraire ?


Tu as donné ton site en exemple, je te donne le mien avec des données complètement différentes, c'est tout :roll:
 
WRInaute accro
T excite pas robinson :

1 - si tu lis bien le topic, ce coté incertain d el'IP a été relevé depuis le debut
2 - si tu lis bien le topic (2), l'essentiel du propos concerne le principe du stockage de données hors bases de données ...
 
WRInaute accro
HawkEye a dit:
Google Analytics, de mémoire, c'est un cookie de 30 jours.
Note que tu peux ajouter un cookie check à ton script... c'est assez simple ;)
oui effectivement ... ca change pas grand chose. Allez je te laisse compléter le code ... c'est cuikiditkiyes :mrgreen:
 
WRInaute accro
HawkEye a dit:
Google Analytics, de mémoire, c'est un cookie de 30 jours.
Note que tu peux ajouter un cookie check à ton script... c'est assez simple ;)
Vous les gardez vous les cookies ? Perso ça dégage a chaque fermeture du navigateur comme tout le cache les mots de passe etc ...
C'est hors sujet mais ce serait marrant de savoir les habitudes a ce sujet.

Sinon effectivement la démonstration de l'usage d'un fichier 'base / cache / data' etc est claire et évidente, ça peut aider.
D'ailleurs si la base était la fin du fin pour stocker des données peu complexes, tous les soft gérant un log aurait une base.

Un autre plus qu'apporte les donnée brut dans un fichier txt est la possibilité d'user et d'abuser des commandes shell pour fouiller dans les données. Dans ce cas l'interface php / OS est assez mince pour garantir des perfs interessantes
 
WRInaute passionné
@Zecat : comme je suis un bon élève et que j'aime discuter plutôt technique, je vais revenir sur le but initial de ton topic, à savoir l'alternative fichiers texte à la base de données :p

Je pense que le grand souci avec l'utilisation de ce genre de méthodes, c'est l'éventuel ralentissement/blocage de page lors d'accès concurrents, (plusieurs centaines/milliers) celà pourrait rendre le site inaccessible puisque toutes les pages font appel à ce script qui fait des E/S sur un seul est même fichier...

y'en a qui me diront que les bases de données ne sont que des fichiers donc confrontés au même problème ... la réponse est non car les moteur de BDD ont été pensés pour éviter, entre autres, ce genre de problèmes... ou du moins le limiter au max.
 
WRInaute accro
aladdin a dit:
Je pense que le grand souci avec l'utilisation de ce genre de méthodes, c'est l'éventuel ralentissement/blocage de page lors d'accès concurrents, (plusieurs centaines/milliers) celà pourrait rendre le site inaccessible puisque toutes les pages font appel à ce script qui fait des E/S sur un seul est même fichier...
Regarde mieux le code :wink: et tcomprendras que ce n'est pas le cas ...

cette ligne en particulier :

$nv_chemindoc=$_SERVER["DOCUMENT_ROOT"]."/IP_OK/IP_".$nv_deb_ip.".txt";

Partant du principe qu'il y a en moyenne 300 à 500 fichiers d'IP ... ca veux dire, toujours statistiquement que si tu a 500 visiteurs simultanés (je veux dire qui accèdent à une page du site dans le meme quart de seconde ...), il y aura 1 accès en lecture par fichier à un moment donné ...

En ecriture, pour arriver a un premier conflit potentiel, il faudrait que 500 visiteurs arrivent sur le site pour la premiere fois en meme temps (dans le meme quart de seconde) ! Et encore on ne parle que de conflit potentiel puisque qu'il faut en plus que parmi eux deux ayant la meme racine d'IP se bouscule en plus au portilon eux meme dans le meme quart de secondes ... 500 nouvelles IP dans le meme quart de seconde ... faut au moins 1.000.000 vu jours pour imaginer cela non ...

Bref avant que ca coince y a une sacrée marge ...

aladdin a dit:
y'en a qui me diront que les bases de données ne sont que des fichiers donc confrontés au même problème ... la réponse est non car les moteur de BDD ont été pensés pour éviter, entre autres, ce genre de problèmes... ou du moins le limiter au max.
Te bile pas ... les notions de verrouillages/déverrouillages de record ne me sont pas inconnues ... à une époque je codais des gestionnaires de base de données ... mais là le probleme ne se pose vraiment pas ...
 
WRInaute accro
Je viens de faire le calcul : 1 millions de vu / jour --> 694 vu a la minute en moyenne ... donc 11 vu a la seconde !

si on table sur 50 % de nouvelles IP, on est donc a 6 par secondes qui vont aller tapper sur 6 fichiers au plus parmi 500 fichiers !

cqfd ...
 
WRInaute accro
Juste en passant, et sans autre avis sur la question: tu supposes que ton audience est répartie de façon linéaire sur la journée, ce qui est très rarement le cas.

Pour 1MVU/jour, je dirais qu'on a une moyenne de 60KVU/h, avec des pointes à 150KVU/h aux bonnes heures.
En pointe, ça te ferait alors une quarantaine d'accès fichier par seconde.
 
WRInaute accro
HawkEye a dit:
Juste en passant, et sans autre avis sur la question: tu supposes que ton audience est répartie de façon linéaire sur la journée, ce qui est très rarement le cas..
Ouii oui tout a fait d'accord mais bon pour la simplicité d el'exposé j'ai raisonné statistiquement.

HawkEye a dit:
Pour 1MVU/jour, je dirais qu'on a une moyenne de 60KVU/h, avec des pointes à 150KVU/h aux bonnes heures.
En pointe, ça te ferait alors une quarantaine d'accès fichier par seconde.
Oui probablement en pointe ... reparti sur 500 fichiers (options 4 caractères) ou sur 2 ou 3000 (option 5 caracteres) et donc toujours assez peu de risque de collision ... et on raisonne quand même sur les bases assez rares du mlllion de vu jour !!!!

Sur les bases encore confortables de 100.000 vu jour, on tombe a 4 accès fichier par seconde parmi 500 fichiers ...
 
WRInaute passionné
[Robinson la mauvaise langue]
En attendant, ton script, tu l'utilises sur un site avec 10 visiteurs par jour ^^
Il est certain que ça ne posera pas de soucis XD

Et au passage, je suis certain que c'est plus efficace et rapide via BDD... sans oublier la facilité de gestion... Il faut bien supprimer régulièrement les données qui datent. C'est effectif en une seule petite requête en BDD; avec tous tes fichiers, tu dois programmer un nouveau script et le tester, bref gestion non simplifiée.

Les fichiers textes, je les utilise seulement pour stocker des données subissant très peu de traitements.

Sinon beh euh ton script est bien beau mais y'a pas grand chose de nouveau dedans, c'est les bases du php quoi...
[/Robinson la mauvaise langue]
 
WRInaute accro
MODE : SI TU ME CHERCHES, AFFUTE TES ARGUMENTS ROBINSON

Robinson a dit:
En attendant, ton script, tu l'utilises sur un site avec 10 visiteurs par jour ^^
Il est certain que ça ne posera pas de soucis XD
On vient de démontrer que meme avec 100.000 vu jours ca pose aucun souci ... c'est pas mauvaise langue le bon terme mais "mauvaise foi" ... ou bigleux au choix ...

Robinson a dit:
Et au passage, je suis certain que c'est plus efficace et rapide via BDD...
C'est aussi ce que m'affirmait un de mes postes qui ne jure que par les bdd mysql ... et qui dans un autre post a reconnu qu'il avait été surpris par les perf ... De mémoire son propos a été "on interroge une base de données de 3 millions de record en ayant l'impression qu'il y a 200 records" (ce sont ses mots a peu de chose près ... je vais retrouver le topic ...)

bref Je me méfie toujours des gens plein de certitudes ... :mrgreen: (je fais référence a toi pas a mon pote qui lui est parti sur une logique "va falloir que je teste pour en avoir le coeur net ... alors que toi tu es certain ... grand bien te fasse).

Robinson a dit:
sans oublier la facilité de gestion... Il faut bien supprimer régulièrement les données qui datent.
Et pourquoi donc supprimer des datas ... ca prend peu de place et c'est bien de garder un histo qui derange personne ... et si on veux archiver, y a jsute a renommer le dossier IP_OK en IP_OK_2010 et de le zipper ... c'est dur hein !

Robinson a dit:
Les fichiers textes, je les utilise seulement pour stocker des données subissant très peu de traitements.
Ben tant mieux pour toi, moi je les utilise aussi pour les fichier mouvementés ... et mon propos est juste de dire que c'est aussi viable dans nombres de cas que la bdd !

Robinson a dit:
Sinon beh euh ton script est bien beau mais y'a pas grand chose de nouveau dedans, c'est les bases du php quoi...
Qui a dit que c'était un cours de php ? C'est juste une illustration du stockage hors Bdd ... mais bon j'insiste pas puisque tu sembles vouloir faire les question et les réponses ... et faire feu de tout bois (fut ce du petit bois) pour tenter de donner un peu de poids a tes objections ... des arguments autres que "je suis certain" seraient plus convaincants ... :roll:

Parce que en l'état, tes arguments se limitent à :
- Une affirmation que au dela de 10 vu jours, point de salut sans bdd ... bof bof
- La bdd sera plus efficace, tu en es certain ... re bof
- Tu n'utilises les fichiers que sur les datas pas trop mouvementées (ok c'est ton choix et cela ne rend nullement d'autres choix débiles).

Edit : Voila j'ai retrouvé le topic :

https://www.webrankinfo.com/forum/comment-reagir-face-plantage-base-donnees ... 32315.html

tu pourras notamment y lire :

skyll a dit:
Franchement, pour avoir vu le système mentionné de très près, effectivement, pour moi, le budget aspirine éclate carrément :mrgreen:

mais niveau perf... j'ai été étonné... ca fonctionne vraiement pas mal, en gros, on à l'impression d'interroger une bdd avec 200 enregistrements, pas 3 millions...

et aussi

zeb a dit:
On a discuté de cela avec Zecat il y a une 15aine de jours alors que je cherchais des solution pour esquiver la base de donnée. il est vrai que j'ai eu le temps de "penser ma solution fichier en vacance" et je constate un traitement divisé par 3 en zapant l'usage de la base. (dans mon cas il y avait forcement 2 requêtes car deux bases différentes sur deux serveurs différents).

La solution fichier mis en oeuvre me permet a partir de la demande du visiteur de déterminer où se trouve le fichier sur le disque et quel est le fichier a utiliser (un fichier de cache en php contenant plein de trucs qui étaient en base auparavant).
La charge est nettement moindre et le temps de réponse nettement supérieur.
(*) il voulait dire : supérieur au sens de meilleur ...

Bref avant de cantonner le stockage dans fichier txt aux sites a 10 vu jours tourne sept fois ta souris autour du clavier ...

/ MODE : SI TU ME CHERCHES, AFFUTE TES<ARGUMENTS
 
WRInaute passionné
Zecat a dit:
Robinson a dit:
En attendant, ton script, tu l'utilises sur un site avec 10 visiteurs par jour ^^
Il est certain que ça ne posera pas de soucis XD
On vient de démontrer que meme avec 100.000 vu jours ca pose aucun souci ... c'est pas mauvaise langue le bon terme mais "mauvaise foi" ... ou bigleux au choix ...
Génial, la théorie est désormais une démonstration... Je ne savais pas qu'on faisait des maths, l'administration d'un serveur web, c'est tout autre, et si tu faisais des maths, il faudrait tenir compte des autres variables... tu ne fais que parler du nombre d'accès par seconde sans t'occuper du temps de traitement, sans penser que cela s'ajoute à tous les traitements habituels... y'a pas un soucis ?

Zecat a dit:
Robinson a dit:
Et au passage, je suis certain que c'est plus efficace et rapide via BDD...
C'est aussi ce que m'affirmait un de mes postes qui ne jure que par les bdd mysql ... et qui dans un autre post a reconnu qu'il avait été surpris par les perf ... De mémoire son propos a été "on interroge une base de données de 3 millions de record en ayant l'impression qu'il y a 200 records" (ce sont ses mots a peu de chose près ... je vais retrouver le topic ...)
Euh perso, ma base de données a près de 100 millions d'enregistrements pour une centaine de tables, je n'ai aucun soucis de traitement.
Zecat a dit:
Robinson a dit:
sans oublier la facilité de gestion... Il faut bien supprimer régulièrement les données qui datent.
Et pourquoi donc supprimer des datas ... ca prend peu de place et c'est bien de garder un histo qui derange personne ... et si on veux archiver, y a jsute a renommer le dossier IP_OK en IP_OK_2010 ... c'est dur hein !
Pourquoi supprimer des données usagées ???? LOL
Tu n'as jamais géré un gros site visiblement.
Supprimer des données ne signifie pas ne pas archiver. Les sauvegardes, ça existe :oops:

Et dans ce cas précis, si tu gardes les vieilles IP indéfiniment, ton nombre de nouveaux visiteurs va tendre vers 0 (bah oui c'est mathématique).

Si tu renommes ton dossier, PAF remise à zéro de ton compteur de nouveaux visiteurs, ça repart à 100% de nouveaux, c'est génial mais ça te bousille tes stats qui n'ont plus aucune utilité ^^

Donc je continue d'affirmer que la gestion est plus que simplifiée via une base de données et que c'est le plus performant en terme de vitesse de traitement ET de gestion !

Quand on gère un site relativement important, la facilité de gestion est toute aussi importante que les performances, voire plus.

Si tu dois passer plus de 10 minutes assez régulièrement pour des détails si insignifiants, je vois mal comment tu pourrais gérer tout un site internet...


Stockage de données en fichiers textes, ok, t'as montré un script le réalisant, mais ces données stockées, il faut les traiter sinon il n'y a aucune utilité au stockage et tu trompes de solution... et ce traitement, il ne se fait pas aussi facilement qu'en base de données et doit être pensé en amont.
Dans ce cas précis, il est complètement inutile de stocker ces infos, un simple cookie chez l'internaute est beaucoup plus fiable, simple, et performant.
 
WRInaute accro
ok robinson, tu es dans ton truc ... bonne nuit. (de la bdd de données j'en ai bouffé 30 ans et je n'ai pas attendu tes "cours" pour en mesurer les avantages et inconvénients ...).

PS : j'adore (enfin ...second degré) ta reponse :

"Euh perso, ma base de données a près de 100 millions d'enregistrements pour une centaine de tables, je n'ai aucun soucis de traitement."

Qui est censé démontrer que gérer quelques millions de records en fichier texte ca le fait pas ... tu es bien resté en mode mauvaise foi ...

"Ma voiture roule a 150"
"- Moi ma moto tappe le 250, donc tu vois bien ..."

Si tu ne sais argumenter/contre-argumenter que comme cela restons en la ...

Et ta façon de mélanger le fond (stockage hors bdd) et le detail (ton code php n'est pas revolutionnaire etc) est assez puant et ne m'incite pas a discuter plus avant avec toi. Bonne nuit. mode CLOSE avec toi !
 
WRInaute passionné
Zecat a dit:
ok robinson, tu es dans ton truc ... bonne nuit. (de la bdd de données j'en ai bouffé 30 ans et je n'ai pas attendu tes "cours" pour en mesurer les avantages et inconvénients ...).
Oui la gestion d'un serveur web, c'est mon truc, visiblement pas trop le tien :roll:

C'est pas facile d'admettre que le script sur lequel on a bossé de longues minutes ne sert à rien dans son état.

Et chercher du réconfort pour ses idées auprès de personnes ayant du mal à gérer leurs bases de données, je trouve cela assez petit :mrgreen:

Bonne nuit.
 
WRInaute accro
Voila comme ca on est au clair :

je suis petit
tu es puant

Fin du débat !

Ah oui juste pour te paraphraser :

"Euh perso, ma "base" de données (fichiers de données) a près de 10 millions d'enregistrements pour une trentaine de tables (8 millions dans la plus grosse table), je n'ai aucun soucis de traitement (en fichier txt) ... sur un banal mutu (pas tres performant en plus puisque j'ai pu le comparer à un autre mutu qui va deux fois plus vite)". Cela ne demontre en rien que ta base de 100 millions est hérésie, pas plus que tu ne démontres que mon stockage en fichiers en est une. Cette fois mode CLOSE.

Robinson a dit:
auprès de personnes ayant du mal à gérer leurs bases de données
Les concernées apprécieront les leçons de Môssieur Robinson :roll:
 
WRInaute passionné
TON stockage, c'est pas une hérésie, c'est un script sans aucune valeur, il ne sert à rien, est ingérable en l'état.

Il existe de nombreux systèmes utilisant des fichiers pour stocker des données (les statistiques par exemple), la différence, c'est qu'ils ont été soigneusement pensés et travaillés, et que l'utilisateur final n'a pas à mettre les mains dans la merde et à perdre son temps pour gérer ces données.

Tu parles des avantages et inconvénients des bases de données que tu connais bien, mais tu zappes volontairement tous les inconvénients du stockage en fichier... Inconvénients que j'ai pleinement exposés et que tu as nié et continues de nier (bah oui si t'admettais les inconvénients cités, ton topic n'aurait plus aucun sens, déjà que le titre est trompeur ^^)
 
WRInaute occasionnel
Ca peut effectivement en aider certains, néanmoins j'aurais gérer le truc surement un peu différement. Dans le répertoire contenant ton fichier d'ip j'aurais surement à chaque visiteur crée un fichier numero-de-session.txt pour chaque nouveau visiteur ou si le fichier existait déjà je l'aurais juste ouvert et refermé (pour mettre à jour la date de modif).

Ensuite en traitant la date de création / modification du fichier on aurait pu obtenir des stats de visites (première visite et dernière visite) et ensuite libre à chacun de stocker des infos supplémentaires sur le visiteur dans le fichier (provenance, nombre de pages vues...). En fait en y pensant j'aurais plutot fait un fichier numero-de-session.xml ;-)

Mais avec des "si" on peut aller loin encore faut-il le faire. Merci pour ta contribution.
 
WRInaute accro
silef a dit:
Ca peut effectivement en aider certains, néanmoins j'aurais gérer le truc surement un peu différement. Dans le répertoire contenant ton fichier d'ip j'aurais surement à chaque visiteur crée un fichier numero-de-session.txt pour chaque nouveau visiteur ou si le fichier existait déjà je l'aurais juste ouvert et refermé (pour mettre à jour la date de modif).

Ensuite en traitant la date de création / modification du fichier on aurait pu obtenir des stats de visites (première visite et dernière visite) et ensuite libre à chacun de stocker des infos supplémentaires sur le visiteur dans le fichier (provenance, nombre de pages vues...). En fait en y pensant j'aurais plutot fait un fichier numero-de-session.xml ;-)

Mais avec des "si" on peut aller loin encore faut-il le faire. Merci pour ta contribution.
Tout cela (et bien plus : tracking intégral de tout ce qui rentre et de toutes les navigations internes) je le fais mais ailleurs ... la c'etait juste un petit noyau "detection new" pour illustrer le stockage en fichier (avec trop de code un peu touffu ca aurait perdu en lisibilité).
 
WRInaute accro
Les contre arguments basés sur un exemple de gestion de stat via un serveur SQL sont un peut bidon dans la mesure ou les statistiques liés a un site sont vraiment le dernier truc a gérer via une base (conso énorme pour le service rendu).

Bref Robinson, je ne pense pas que Zecat soit là pour vendre les mérites d'une application révolutionnaire, mais il a senti, a raison je pense, qu'un petit exemple simple d'utilisation de données en fichier pouvait donner des idées a d'autres.

Alors bien sur comme toujours sur WRI (et ailleurs) il suffit d'exposer un trucs pour que 90% des lecteurs prennent le truc en question au pied de la lettre et décortiquent le bébé pour aller renifler de près le fond de la couche et ... s'apercevoir que cela ne sent pas bon. Mais au delà de cette réaction primaire il est parfois intéressant de se poser des questions pour voir si justement virer une BDD ne vaut pas le coup (c'est la question que je me posais et la réponse a été oui pour 90% de mes pages consultés qui ne font l'objet d'aucun traitement si ce n'est servir une page déjà vue 1000 fois).

Le problème de fond des informaticiens c'est que ces même 90% ne jurent que par une bibliothèque ou une autre un CMS ou un autre bref un système dont ils sont rarement l'auteur et qu'ils ont eu le temps d'étudier. Vus par cette lorgnette restrictive le reste du monde n'est que merdouillage sans non et point de salut. A ce petit jeu beaucoup (90% des 90%) ont fini par ne même plu écrire une ligne de code pour tester un truc. Ceux qui ont encore l'audace d'essayer autre chose sont taxé de ré-inventeur de roue et passent pour des doux réveurs.

Ici on a donc le cas d'un doux rêveur (désolé Zecat t'est catalogué maintenant) qui a utilisé un truc plus vieux que les bases de données (mais moins souple certe) pour faire plus vite ce que 90% des informaticiens d'il y a 30 ans faisait tous les jours. Car la gestion de data ça c'est toujours fait comme ça avant les bases (et d'une certaine façon ça continu de ce faire ainsi au coeurs même d'une dll dernier cri mais dans la mémoire)

Le seul truc c'est que effectivement si on prend le temps de "penser un modèle de données" et qu'on prend autant de temps pour réfléchir une "structure de fichiers" on a de gros risque d'y croiser des perfs intéressantes et dans mon cas bien supérieures a une BDD (mais je code sûrement comme une vache depuis 25 ans maintenant et j'ai du avoir un coup de bol sur ce coup :lol: ).

Dans mon cas (celui que citait Zecat), je perd un peut de temps lors des consultations de pages ayant fait l'objet d'un traitement POST (moins de 10% des consultation), et je gagne 2/3 de temps sur toutes les autres consultations (y compris et surtout celle de google qui sont celles pour lesquels je souhaitait une réponse rapide).
Les visiteurs qui arrivent sur le site (forcement en GET) sont gagnant, donc la primo impression est meilleur et tant qu'il consultent ça rupte. Pour ceux qui participent ça perd un peut de temps pour la gestion du fichier ciblé mais c'est regagné a la consultation suivante.

En résumé ce que j'aime moi c'est les contre solutions argumentés basées sur des tests concrets avec un résultat qui parle. Chez moi si j'en étais resté a une consultation de base de donnée, j'aurai du me connecter / interroger / dépouiller le résultats et formater l'affichage. A cette heure j'inclus un fichier php et j'ai juste a faire un echo pour avoir le résultat déjà formaté. il n'y a pas photo.

C'est pas un petite appli, c'est juste un CMS multi domaine qui gère 400 000 pages sur 4 sites différents tout en pouvant en gérer jusqu'a environ 650 000 avec une déclinaison html / wml / xml / txt par page (a noter que le 650 K est du a la façon dont j'ai décidé d'ordonner mes données et a la quantité de RAM dispo sur le serveur mais qu'avec une arbo plus riche il est ultra simple de multiplier par 16 le nombre de pages gérées sans changer quoi que ce soit aux perfs).

Sinon pour revenir dans le sujet il me semble concernant les accès concurrents aux fichiers évoqués plus haut que ça doit se faire au travers des couches logicielles de l'OS et que ça doit être plus ou moins géré par lui (mais ça reste a vérifier)
 
WRInaute accro
zeb a dit:
Mais au delà de cette réaction primaire il est parfois intéressant de se poser des questions pour voir si justement virer une BDD ne vaut pas le coup (c'est la question que je me posais et la réponse a été oui pour 90% de mes pages consultés qui ne font l'objet d'aucun traitement si ce n'est servir une page déjà vue 1000 fois).
oui, mais dans ce cas, le mieux reste, quand même, de se créer son propre serveur de cache qui va aller créer ses fichiers statiques à partir des données de la BDD, au fil de l'eau (ou globalement) et qu'on peut, si besoin est, supprimer de façon très ciblée. C'est ce que je fais sur mes sites : quand je change des infos sur une fiche produit, lors de la validation des modifications, je supprime sa fiche ainsi que celles qui y sont liées (catégories ou le produit apparait, éventuellement, menus, si une catégorie a été modifiée), mais ça s'arrête là. Pas besoin de supprimer les autres fichiers cache.
Ce qui fait que quand le cache a été créé, si la bdd est hors ligne, je ne perds que mes stats (et encore, ça me crée un fichier script sql qui incorporera les données dans la bdd dès sa remise en route).
Il faut savoir utiliser le "meilleur" de chacune des solutions, quand nécessaire. :wink:
 
WRInaute passionné
Entre un "serveur de cache" et de la gestion de données "actives", y'a une sacrée différence ^^

zeb, je n'ai jamais utilisé un seul CMS ou autre système prêt à fonctionner, j'ai toujours tout développé de A à Z, même mon forum autrefois était fait sur-mesure. Bon depuis, je suis passé du côté obscure de la fainéantise, tout en répondant aux besoins des internautes... (ils aiment ce qu'ils connaissent).
Les fichiers "textes", je les utilise très souvent et grâce à eux je fais de grosses économies de conso serveur !

Ils sont évidemment incontournables pour les pages quasi-statiques.

Ici, on parle de gestion de données, passons sur l'inutilité du script en lui-même (les données ne permettant pas de calculer le taux de nouveaux visiteurs grâce à elles mais avec un traitement supplémentaire à chaque affichage de page). Pour gérer des données, il faut tout d'abord des outils permettant leur stockage et leur traitement. Les fichiers textes répondent très bien au stockage. Le hic, c'est leur traitement, si on veut commencer à les trifouiller très très souvent, les problèmes arrivent vite. Ça limite grandement leur champ d'action.
Il ne faut pas leurrer le jeune (et moins jeune) développeur en lui disant que c'est possible et efficace via de simples fichiers, il y a beaucoup de contraintes dépendant des fonctions recherchées et sur l'évolutivité.

On commence à développer un petit script tout simple, on y passe quelques heures, et puis hop on se dit que ça serait bien d'y ajouter telle fonction... Oups implémentation impossible, on recommence à zéro via base de données...
Bref, à utiliser dans de très rares cas (et pas le cas présent).
 
WRInaute accro
Robinson a dit:
Les fichiers "textes", je les utilise très souvent et grâce à eux je fais de grosses économies de conso serveur !
C'ets bien de le reconnaitre ... après avoir mis en cause leur prétendues piètre performances :roll:

Et donc si les fichiers textes permettent des économies de conso serveur, j'ai trouvé interessant sur le gros site que j'ai évoqué plus haut de voir jusqu'ou on pouvait pousser le bouchon pour profiter de ces economies de conso (que tu admets désormais ...). Skyll qui l'a vu fonctionner t'a donné son sentiment ... ensuite libre a toi de le considérer comme un newbi en bdd à la recherche de performances :roll:

Le résultat est un site entier totalement dynamique et sans bdd qui :

- à matos et ressources égales
- va bien plus vite et consomme bien moins que si il s'appuyait sur une bdd

Aloors certes, c'ets probablement un peu plus "prise d'aspirine" ... mais est ce un mal ?

Mais de grace Robinson, arrête de vouloir donner des leçons de base de données sans savoir a qui tu parles (vu mon grand age il est probable que je "Merisait" déjà avant que tu titilles ton premier octet ...
 
WRInaute accro
Tu te fixe trop sur l'appli proposée et sur la notion de fichier texte (je pense je peut me tromper).

En imaginant 2 seconde qu'au lieu de coder un simple fichier texte tu encode PHP et tes donnée sont accessibles en include avec de bonne vieille variables. Là la donne est différente car tu peut instantanément manipuler tes données et éventuellement y appliquer un traitement.

Eval() peut aussi faire des miracles avec ce genre de technique.

Dans le cas traité chez moi c'est du code HTML brut et du code php qui est mis en cache (les pages contiennent des plugin ou modules (moi je les appel objets dynamiques) qui ne peuvent être traités par un cache).
Donc je me trouve effectivement dans un cas de gestions de données actives ET dans un cas de cache.
Maintenant ça ne gére pas de stat car encore une fois apache fait ça très bien et je ne voie pas l'utilité d'en remettre une couche en base ou pas.

Bref, à utiliser dans de très rares cas (et pas le cas présent).
Je ne pense pas que Zecat ai voulu présenter l'application reine pour la gestion des nouveaux visiteurs. D'ailleurs son post ne m'a pas étonné car il fait suite a deux autres où on a débatu de solution pour BDD HS et un autre lié a mon problème. Et en tous cas il ne le présente pas comme tel, si tu suis son mode de pensée, il met l'accent sur la façon dont il va déterminer où se trouvent et comment il va stocker des données, pas sur l'utilité de savoir que 154.89.10.23 est passé a 3h18 GMT le jour de la saint Valentin en étant jamais venu.
C'est surtout :
- l'esprit d'une structuration des données menant a les retrourer facilement (ordonnancement, offset, taille (esprit FAT))
- l'esprit de se passer d'une base pour ne pas tout confier a un système lourd (entend par là volumineux et annexe au serveur web parfois)
- l'esprit de faire simple quand c'est possible (il y a des 10aine de trucs qui n'ont rien a faire en base car on ne fera jamais de requête autre que insert / select dessus)

Contrairement a toi je pense que les petits jeunes devrait plus souvent se poser cette question car si bien souvent pour pas qu'il réinvente le fil a couper le beurre, on les aiguille vers des usines a tout faire (au nom de la rentabilité ???), on ne leur donne pas les moyens de prendre du recul et de penser des solutions marginales. Comparé a des gens comme Zecat et moi, voir toi peut être qui codons depuis des décennies (donc qui ont vécu l'invention de l'informatique) ils n'auront pas les moyens de "penser autre" le jour ou il le faudra justement.

Quand je regarde les couches de code sur les couches de codes des OS actuels je ne suis pas certains que ce soit une bonne chose.
A titre d'exemple, j'ai lu ici il y a qque jours des gens défendre une solution ajax (donc avec un dial client serveur) pour avoir un lien sur le pourtour du cadre de contenu d'un site (le bacground). J'ai parfois des allus quand je voie les bulldozer utilisés pour une broutille genre un lien fullscreen placé derrière le contenu (pour un peu il y en aurait sûrement qui serait allé chercher l'url de la home en base via leur script ajax et qui aurait implanté un frameWork pour ça en invoquant la sécurité).

bref ... le fichier est pas mort face a la BDD (a mon humble avis) qui devrait être utilisée pour des vrais modèles de données complexes et pas pour y mettre des IP ou des useragents dont on a en fait que foutre très rapidement.
 
WRInaute accro
zeb a dit:
Comparé a des gens comme Zecat et moi, voir toi peut être qui codons depuis des décennies (donc qui ont vécu l'invention de l'informatique) ils n'auront pas les moyens de "penser autre" le jour ou il le faudra justement.
Déjà que je suis plus tout jeune, si tu me vieilli encore, tu vas m'enterrer :mrgreen: J'ai pas vécu l'invention ... je suis arrivé à l'époque des gros bacs de cartes perforées (pour ceux qui en étaient, vous savez les gros bacs de carte de 5 kilos avec 80 colonnes par cartes et une carte par ligne et on ecrivait au gros feutre sur la tranche des paquets de carte pour nommer le programme en question ou repérer les morceau logiques par des traits obliques :mrgreen: Oh pitin c'était ya longtemps ... allez disons il y a 30 ou 35 ans :wink:
 
WRInaute accro
Robinson a dit:
Il ne faut pas leurrer le jeune (et moins jeune) développeur en lui disant que c'est possible et efficace via de simples fichiers,
Bien sur que si ! C'est possible et efficace ... simplement le "jeune developpeur" n'y pense pas forcément ou n'a pas le recul pour lever le nez du guidon comme souligné par zeb ...
Robinson a dit:
il y a beaucoup de contraintes dépendant des fonctions recherchées et sur l'évolutivité.
Personne ne le nie, il suffit ensuite de mettre en balance avantages/inconvénients et d'arbitrer ... Mais pour arbitrer encore faut il se laisser les deux portes ouvertes ... Ce qui ne semble pas être ta tasse de thé !
 
WRInaute passionné
Zecat a dit:
Robinson a dit:
Les fichiers "textes", je les utilise très souvent et grâce à eux je fais de grosses économies de conso serveur !
C'ets bien de le reconnaitre ... après avoir mis en cause leur prétendues piètre performances :roll:
C'est pas bien de lire et comprendre seulement ce que tu veux comprendre :mrgreen:

Stockées en "dur" des informations qui ne font que principalement être lues, c'est tellement basique que ça ne mérite même pas débat. On en parle sans cesse quand on aborde l'optimisation.

Pour ma part, je "serialize" très souvent des array, mais il ne me viendrai jamais à l'esprit d'utiliser ces données exclusivement dans les fichiers textes, ces fichiers textes sont produits grâce à la BDD qui elle subit des modifications fréquentes. Se passer de la BDD et modifier directement les fichiers textes, c'est ingérable, impossible à faire évoluer... La moindre modification de structure et c'est des heures de perdues ! Et c'est sans parler des possibles problèmes d'accès au fichier et de pertes de données.

La gestion de données via fichier texte doit vraiment être restreint à de petites données unitaires qui ont un but bien précis et sur lesquelles tu n'as (presque) aucun traitement et aucune opération de masse.
 
WRInaute accro
zeb a dit:
A titre d'exemple, j'ai lu ici il y a qque jours des gens défendre une solution ajax (donc avec un dial client serveur) pour avoir un lien sur le pourtour du cadre de contenu d'un site (le bacground). J'ai parfois des allus quand je voie les bulldozer utilisés pour une broutille genre un lien fullscreen placé derrière le contenu (pour un peu il y en aurait sûrement qui serait allé chercher l'url de la home en base via leur script ajax et qui aurait implanté un frameWork pour ça en invoquant la sécurité)
c'est sur que ajax est mis à toutes les sauces. javascript c'est du langage de grand père, mais ajax c'est mieux :wink:
Il faudrait leur dire, aux p'tits jeunes que ajax c'est du javascript avec appel serveur et que, quand il n'y a pas besoin d'appel serveur, c'est du javascript tout simple, autrefois appelé dhtml.
L'essentiel du travail effectué par beaucoup, c'est plus de l'assemblage que du développement : on choisit une plateforme de blog, car on a beaucoup de plugins existants et on se retrouve ainsi avec des multitudes de clones (y compris, voire surtout, au niveau du contenu).
Quand je vois que pour une fonctionnalité toute simple, qui se fait en 3 lignes de js, on préconise d'installer scriptaculous ou jquery, car c'est "tout simple" à utiliser, mais qu'en contrepartie, on fait charger au navigateur moults fonctions sans intérêt pour la navigation courante, avec des risques d'interférence avec d'autres scripts :roll:
 
WRInaute accro
Robinson, je me cite comme tu sembles ne pas savoir (vouloir) bien lire :

Mais de grace Robinson, arrête de vouloir donner des leçons de base de données sans savoir a qui tu parles (vu mon grand age il est probable que je "Merisait" déjà avant que tu titilles ton premier octet ...
 
WRInaute accro
Robinson a dit:
Stockées en "dur" des informations qui ne font que principalement être lues, c'est tellement basique que ça ne mérite même pas débat. On en parle sans cesse quand on aborde l'optimisation.
C'est marrant ca ... c'ets justement le cas de mon petit exemple ... tu es assez fortiche dans ton genre ... arrivant a dire dans le meme topic tout et son contraire ... et en déclarant comme basique ce que tu déclares hérétique quelques lignes plus haut (juste histoire de corriger tes excès) ..

Bref, debat avec toi vraiment sans intéret à mes yeux. Reste sur ton idée et je reste sur la mienne, ca evitéra de la dépense d'énergie inutile.

Je te rappelle juste les 3 premiere slignes de ce topic :

Dans un autre topic, on a eu une discussion sur les possibilités ou non possibilités d'une gestion des datas en fichiers sur le serveur plutot qu'en bdd ...

Et comme je viens de me coder un petit truc qui illustre bien la chose, je vous le livre ...

que tu aurais pu lire avec plus d'attention (mais bon on a vu que cela n'etait pas ton fort ... tu es fort en bdd, on peut pas être fort en tout) et cela t'aurai éviter de pourrir ce topic avec tes oeillères ...

En ce qui me concerne je n'interviendrais plus dans ce topic que tu a totalement dénaturé. Tchao.
 
WRInaute passionné
Zecat a dit:
Robinson a dit:
Stockées en "dur" des informations qui ne font que principalement être lues, c'est tellement basique que ça ne mérite même pas débat. On en parle sans cesse quand on aborde l'optimisation.
C'est marrant ca ... c'ets justement le cas de mon petit exemple ... tu es assez fortiche dans ton genre ... arrivant a dire dans le meme topic tout et son contraire ... et en déclarant comme basique ce que tu déclares hérétique quelques lignes plus haut (juste histoire de corriger tes excès) ..

Bref, debat avec toi vraiment sans intéret à mes yeux. Reste sur ton idée et je reste sur la mienne, ca evitéra de la dépense d'énergie inutile.
Ah bon ?

Moi qui croyait que le script était :
- récupérer le contenu d'un fichier
- rechercher telle information (parmi des dizaines de milliers de lignes possibles)
- écrire une ligne supplémentaire très souvent
- intégrer la "routine" à toutes les pages
- ne pouvoir rien faire de plus avec ces fichiers et données qui s'accumulent et gonflent non stop (hormis en cassant la fonctionnalité du script en lui-même)

Pour moi ça ne répond pas du tout à ma définition.

Il est trop facile de vanter les mérites d'une application quand on zappe les gardes-fous.
 
WRInaute accro
En ce qui me concerne je n'interviendrais plus dans ce topic que tu a totalement dénaturé. Tchao.
 
WRInaute accro
Merci zecat pour ce bel article mais entre nous (c'est aussi valables pour tous), je viens de prendre 4 mois de "congé Internet" par choix, à peine regardé une fois tous les 10 jours les stats visiteurs et même adsense.

Ca sert à quoi de savoir le pourcentage de nouveaux visiteurs, taux de rebond, ... tous les jours (et encore plus en temps réel) sinon passer son temps à analyser des stats. Déjà une fois par jour lors de grosses modifs de sites (genre ergonomie), c'est déjà pas si mal :wink:
 
WRInaute accro
ybet a dit:
Ca sert à quoi de savoir le pourcentage de nouveaux visiteurs, taux de rebond, ... tous les jours (et encore plus en temps réel) sinon passer son temps à analyser des stats. Déjà une fois par jour lors de grosses modifs de sites (genre ergonomie), c'est déjà pas si mal :wink:
Je te reponds en MP
 
Discussions similaires
Haut