|
Documentation
Système EBS (Easy Base System)
(maj : 01/12/2001, version système 2.1)
Avertissement
Ce système n'est pas et ne sera jamais destiné à remplacer
une base de données, il est distribué dans l'espoir qu'il
sera utile, mais il l'est sans aucune garantie, sans même la
garantie de commercialisation ou d'utilité pour un but
quelconque.
De nombreux tests ont été effectués pour s'assurer de la
stabilité et du bon fonctionnement du programme, cependant ce
dernier est encore à l'heure actuelle en version beta.
Pour des problèmes évidents de sécurité aucunes données
confidentielles ne doivent être enregistrées par le biais de
ce système, nous déclinons toutes responsabilités en cas
de mauvaise utilisation du programme.
Quand et pourquoi l'utiliser ?
Dans la communauté php la principale base de données utilisée
est une base MySQL, cet outil reste la meilleure solution pour
enregistrer vos informations.
Cependant, les hébergeurs gratuits offrant ce genre de
services proposent à l'heure actuelle dans la quasi totalité
des cas un service de basse qualité : l'appel à la base
ralenti considérablement la rapidité d'affichage des pages
qui l'utilisent. Pour d'autres personnes le problème est
encore plus gênant : elles ne disposent pas de base de données.
Voilà la principale raison d'être de ce système, son gros défaut
reste la sécurité, mais il peut néanmoins apporter des
services non négligeables à qui saura l'utiliser dans des
conditions appropriées.
Principe
Toutes les données sont enregistrées dans un simple fichier
texte, elles sont organisées de façon spécifique pour être
reconnues par le programme.
Un exemple de fichier EBS est visualisable ici.
La classe et noyau du système est visualisable ici.
1) Utilisation de la classe
L'utilisation du programme est extrêmement simple, la
notion de programmation objet n'est absolument pas
nécessaire.
Commencez d'abord par télécharger la dernière version de la
classe ici.
Pour utiliser la classe par la suite, un include sur chacune
des pages faisant appel à cette dernière suffira. Exemple
:
|
Page
"exemple1.php" |
<?php
// on inclut le fichier
contenant la classe
include ("class_ebs.php");
// votre code d'appel à la
classe (...)
?> |
2) Création
d'une table
La syntaxe d'appel est la suivante :
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ebs_create(nom et chemin du fichier à créer [string],
nom des champs [array], nom du champ auto-incrémenté s'il existe [string]);
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
! ATTENTION !
Sur les machines Unix pour créer un fichier dans un répertoire
vous devez disposer des droits appropriés (chmod 777). Ce
changement de droits pose un sérieux problème de sécurité,
bien que souvent négligé, gardez à l'esprit qu'il est
préférable de créer un fichier ebs en local, pour le
télécharger ensuite en ligne sur vos serveurs par ftp, vous
évitez ainsi une première faille très importante de
sécurité.
Exemple avec
un champ auto-incrémenté :
|
Page
"exemple1.php" |
|
<?php
include ("class_ebs.php");
// connexion à la classe
$enr=new
ebs_connect();
// création de la table
$enr->ebs_create("exemple.ebs.php",array("id","exemple1","exemple2","exemple3"),"id");
?>
|
Exemple sans
champ auto-incrémenté
:
|
Page
"exemple1.php" |
|
<?php
include ("class_ebs.php");
$enr=new
ebs_connect();
$enr->ebs_create("exemple.ebs.php",array("exemple1","exemple2","exemple3"),"");
?>
|
Si vous ouvrez le fichier ainsi créé, voici ce que vous
devriez voir apparaître si l'opération s'est déroulée
avec succès (fichier avec champ "id"
auto-incrémenté) :
|
Page
"exemple.ebs.php" |
|
<?php
#=#id#=#exemple1#=#exemple2#=#exemple3#=##-#auto:id:0#-#[START_EBS_VALUES]
[END_EBS_VALUES]##EBS FILE tech 2.1 - nov 2001, by
Prologin.fr## ?>
|
Les caractères
d'ouverture/fermeture de lignes php "<?php (..)
?>" sont extrêmement importants, si un
"étranger" tente de lire votre fichier par
l'intermédiaire d'un navigateur, le résultat apparent sera une
page blanche.
L'extension ".php" n'a pas d'importance, essayez
simplement d'en rajouter une interprétée par le serveur de
votre hébergeur, vous pourriez tout aussi bien terminer le
fichier par ".htm" par exemple. Laissez cependant le
".ebs." au milieu du nom, il permet de distinguer le
type du fichier.
3) Effacer une table
La syntaxe d'appel est la suivante :
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ebs_delete(nom et chemin du fichier à créer [string]);
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
! ATTENTION !
Le problème de sécurité (droits Unix) est ici le même que
pour la création d'une table, la suppression manuelle est recommandée... Exemple
de suppression :
|
Page
"exemple2.php" |
|
<?php
include ("class_ebs.php");
// connexion à la classe
$enr=new
ebs_connect();
// suppression de la table
$enr->ebs_delete("exemple.ebs.php");
?>
|
4) Se connecter à la table et insérer des données
La syntaxe de connexion est la suivante :
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
new ebs_connect(nom et chemin de la table [string]);
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- Si le fichier n'existe pas, vous rencontrerez une erreur
du type :
|
#EBS erreur => le fichier choisi n'existe pas ou son nom n'a pas été renseigné, veuillez modifier les paramètres suivant :
- fonction "ebs_connect()" a renseigner.
|
La syntaxe
d'insertion est la suivante :
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
insert(nom des valeurs à insérer [array]);
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- Si la valeur de l'un des champs à insérer est
auto-incrémentée, la valeur passée en argument devra être
"[auto]".
- Vous ne pouvez pas passer en argument plus de champs que
contenus dans les déclarations de la table, le cas échéant
vous rencontrerez une erreur du type :
|
#EBS insert erreur :
- vous souhaitez insérer plus de champs que ceux déclarés dans le fichier EBS
|
- Si vous déclarez moins de champs
que contenus dans les déclarations de la table, une erreur ne
sera pas générée, les derniers arguments seront simplement
déclarés comme étant nulls.
Exemple
de connexion/insertion:
|
Page
"exemple3.php" |
|
<?php
include ("class_ebs.php");
// connexion à la table
$enr=new
ebs_connect("exemple.ebs.php");
// insertion des données
$enr->insert(array("[auto]","mon
premier exemple d'insertion","le test
va-t-il fonctionner ?","j'espère que oui !"));
?>
|
Si vous ouvrez le fichier, voici ce que vous devriez voir
apparaître si l'opération s'est déroulée avec succès :
|
Page
"exemple.ebs.php" |
|
<?php
#=#id#=#exemple1#=#exemple2#=#exemple3#=##-#auto:id:1#-#[START_EBS_VALUES]#/#1#/#mon premier exemple d'insertion#/#le test va-t-il fonctionner ?#/#j'espère que oui !#/#[END_EBS_VALUES]##EBS FILE tech 2.1 - nov 2001, by Prologin.fr##
?>
|
5) Modifier des données
La syntaxe de modification est la suivante :
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
update(nom du/des champ(s) à modifier [array],
valeur du/des champ(s) à modifier [array],
condition(s) [array]);
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- le dernier argument "condition(s)" n'est pas
obligatoire, s'il n'est pas renseigné tous les champs
seront modifiés
- Si le nombre de champs à modifier est différent de celui des valeurs qui lui sont attribuées,
l'erreur suivante sera générée :
|
#EBS
update erreur :
- le nombre de champs à modifier est différent de celui des valeurs qui lui sont attribuées
|
- Si au moins l'un des champs devant être
modifié n'existe pas, l'erreur générée sera du type :
|
#EBS
update erreur :
- au moins l'un des champs à modifier n'existe
pas
|
- Si le nombre de champs à modifier est différent de celui des valeurs qui lui sont attribuées,
l'erreur suivante sera générée :
|
#EBS
update erreur :
- le nombre de champs à modifier est différent de celui des valeurs qui lui sont attribuées
|
- Vous pouvez connaître le nombre de
champs ayant subit des modifications par l'intermédiaire de la
variable "$affect" de la class "ebs_connect".
Exemple
de modification :
|
Page
"exemple4.php" |
|
<?php
include ("class_ebs.php");
$enr=new
ebs_connect("exemple.ebs.php");
// modification des données
$enr->update(array("exemple1"),array("test de
remplacement"),array("id=1"));
// on récupère la valeur du
nombre de champs ayant subit des modifications
$nb_modif=$enr->affect;
echo "Nombre
de champs ayant été modifiés : $nb_modif";
?>
|
Si vous ouvrez le fichier, voici ce que vous devriez voir
apparaître si l'opération s'est déroulée avec succès :
|
Page
"exemple.ebs.php" |
|
<?php
#=#id#=#exemple1#=#exemple2#=#exemple3#=##-#auto:id:1#-#[START_EBS_VALUES]#/#1#/#test de remplacement#/#le test va-t-il fonctionner ?#/#j'espère que oui !#/#[END_EBS_VALUES]##EBS FILE tech 2.1 - nov 2001, by Prologin.fr##
?>
|
6) Effacer une
ligne d'enregistrement
La syntaxe de modification est la suivante :
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
delete(condition(s) du/des ligne(s) à supprimer [array]);
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- A l'heure actuelle seule seule la commande "AND" est
acceptée pour la/les condition(s) du/des ligne(s) à
supprimer
- Si l'une des conditions de suppression n'est pas valide,
l'erreur suivante sera générée :
|
#EBS
delete erreur :
- au moins l'une des conditions de suppression n'est pas valide
|
Exemple
de suppression de l'ensemble des données d'une table :
|
Page
"exemple5.php" |
|
<?php
include ("class_ebs.php");
$enr=new
ebs_connect("exemple.ebs.php");
// suppression des données
$enr->delete("");
// on récupère la valeur du
nombre de champs ayant été supprimés
$nb_modif=$enr->affect;
echo "Nombre
de champs supprimés : $nb_modif";
?>
|
Exemple
de suppression avec condition des données d'une table :
|
Page
"exemple5.php" |
|
<?php
include ("class_ebs.php");
$enr=new
ebs_connect("exemple.ebs.php");
// suppression des données avec
la/les condition(s) spécifiées
$enr->delete(array("id=1"));
// on récupère la valeur du
nombre de champs ayant été supprimés
$nb_modif=$enr->affect;
echo "Nombre
de champs supprimés : $nb_modif";
?>
|
Si vous ouvrez le fichier, voici ce que vous devriez voir
apparaître si l'opération s'est déroulée avec succès :
|
Page
"exemple.ebs.php" |
|
<?php
#=#id#=#exemple1#=#exemple2#=#exemple3#=##-#auto:id:1#-#[START_EBS_VALUES]
[END_EBS_VALUES]##EBS FILE tech 2.1 - nov 2001, by Prologin.fr##
?>
|
7) Récupérer
des données
La syntaxe de récupération est la suivante :
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
select(condition(s) du/des champ(s) à récupérer [array],
classement des valeurs [string], ordre du classement [string]);
recup_select(nom du champ à récupérer [string]);
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- A l'heure actuelle seule seule la commande "AND" est
acceptée pour la/les condition(s) du/des champ(s) à récupérer
- Le classement des valeurs ne peut s'effectuer que suivant 1
champ
- Si le champ de classement des valeurs n'existe pas, voici
l'erreur qui sera générée :
|
#EBS
select erreur :
- le champ de classement des valeurs n'existe pas dans la table
|
- L'ordre de classement doit être
égal à "ASC" ou "DESC" (ordre inverse), dans
le cas contraire l'erreur suivante sera générée :
|
#EBS
select erreur :
- l'ordre de classemement n'est pas correct, sa valeur doit être égale à
"ASC" (ordre normal) ou "DESC" (ordre inverse)
|
- Si l'une des conditions de
sélection n'est pas correcte ou est mal renseignée, l'erreur
suivante sera générée :
|
#EBS
select erreur :
- au moins l'une des conditions de sélection n'est pas correcte ou est mal renseignée
|
Pour les exemples qui vont
suivrent, commencez par ré-insérer 5 ou 6 champs dans la table.
Exemple
de récupération des données d'une table avec condition et
classement :
|
Page
"exemple6.php" |
|
<?php
include ("class_ebs.php");
$enr=new
ebs_connect("exemple.ebs.php");
// récupération des données
$enr->select(array("id=3"),"exemple2","ASC");
$tab_id=$enr->recup_select("id");
$tab_exemple1=$enr->recup_select("exemple1");
$tab_exemple2=$enr->recup_select("exemple2");
$tab_exemple3=$enr->recup_select("exemple3");
// on récupère la valeur du
nombre de champs récupérés
$nb_select=$enr->affect;
echo "Nombre
de champs sélectionnés : $nb_select<br><br><br>";
echo "Liste des valeurs des
différents tableaux :<br><br>";
$i = 1;
while ($i <=
$nb_select)
{
echo
"id, clé du tableau n°$i : $tab_id[$i]<br>";
echo
"exemple1, clé du tableau n°$i : $tab_exemple1[$i]<br>";
echo
"exemple2, clé du tableau n°$i : $tab_exemple2[$i]<br>";
echo
"exemple3, clé du tableau n°$i : $tab_exemple3[$i]<br>";
echo
"<br>";
$i++;
}
?>
|
Exemple
de récupération des données d'une table sans condition,
avec classement et ordonné en ordre inverse :
|
Page
"exemple6.php" |
|
<?php
include ("class_ebs.php");
$enr=new
ebs_connect("exemple.ebs.php");
// récupération des données
$enr->select("","exemple2","DESC");
$tab_id=$enr->recup_select("id");
$tab_exemple1=$enr->recup_select("exemple1");
$tab_exemple2=$enr->recup_select("exemple2");
$tab_exemple3=$enr->recup_select("exemple3");
// on récupère la valeur du
nombre de champs récupérés
$nb_select=$enr->affect;
echo "Nombre
de champs sélectionnés : $nb_select<br><br><br>";
echo "Liste des valeurs des
différents tableaux :<br><br>";
$i = 1;
while ($i <=
$nb_select)
{
echo
"id, clé du tableau n°$i : $tab_id[$i]<br>";
echo
"exemple1, clé du tableau n°$i : $tab_exemple1[$i]<br>";
echo
"exemple2, clé du tableau n°$i : $tab_exemple2[$i]<br>";
echo
"exemple3, clé du tableau n°$i : $tab_exemple3[$i]<br>";
echo
"<br>";
$i++;
}
?>
|
8) Insérer des déclarations dans la table
La syntaxe d'insertion est la suivante :
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
alter_insert(nom du/des champs à insérer [array], valeur
par défaut du/des champs à insérer [array]);
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- Si le nombre de champs à insérer est différent de celui des valeurs qui lui sont attribuées,
l'erreur suivante sera générée :
|
#EBS
alter_insert erreur :
- le nombre de champs à insérer est différent de celui des valeurs qui lui sont attribuées
|
- Si l'un des champs à insérer existe déjà dans la
table, l'erreur suivante sera générée :
|
#EBS
alter_insert erreur :
- au moins l'un des champs devant être insérer existe déjà dans la table
|
Exemple d'insertion de déclarations dans une table :
|
Page
"exemple7.php" |
|
<?php
include ("class_ebs.php");
$enr=new
ebs_connect("exemple.ebs.php");
// insertion des données
$enr->alter_insert(array("exemple4","exemple5"),array("nouvelle
valeur 1","nouvelle valeur 2"));
// on récupère la valeur du
nombre de champs ayant subit la/les modifications(s)
$nb_modif=$enr->affect;
echo "Nombre
de champs ayant subit la/les modification(s) : $nb_modif";
?>
|
Si vous ouvrez le fichier, voici un exemple de ce que vous devriez voir
apparaître si l'opération s'est déroulée avec succès :
|
Page
"exemple.ebs.php" |
|
<?php
#=#id#=#exemple1#=#exemple2#=#exemple3#=#exemple4#=#exemple5#=##-#auto:id:9#-#
[START_EBS_VALUES]#/#2#/#mon deuxième exemple d'insertion#/#le test va-t-il fonctionner ?#/#j'espère que oui !#/#nouvelle valeur 1#/#nouvelle valeur 2#/#[END_EBS_VALUES]##EBS FILE tech 2.1 - nov 2001, by Prologin.fr##
?>
|
9) Supprimer des déclarations dans la table
La syntaxe de suppression est la suivante :
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
alter_delete(nom du/des champs à supprimer [array]);
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- Si l'un des champs à supprimer n'existe pas dans la table,
l'erreur suivante sera générée :
|
#EBS
alter_delete erreur :
- au moins l'un des champs devant être
supprimé n'existe pas dans la table
|
Exemple de suppression de déclarations d' une table :
|
Page
"exemple7.php" |
|
<?php
include ("class_ebs.php");
$enr=new
ebs_connect("exemple.ebs.php");
// suppression des déclarations
choisies
$enr->alter_delete(array("exemple4","exemple5"));
// on récupère la valeur du
nombre de champs ayant subit la/les suppression(s)
$nb_modif=$enr->affect;
echo "Nombre
de champs ayant subit la/les suppression(s) : $nb_modif";
?>
|
Si vous ouvrez le fichier, voici un exemple de ce que vous devriez voir
apparaître si l'opération s'est déroulée avec succès :
|
Page
"exemple.ebs.php" |
|
<?php
#=#id#=#exemple1#=#exemple2#=#exemple3#=##-#auto:id:9#-#[START_EBS_VALUES]#/#2#/#mon deuxième exemple d'insertion#/#le test va-t-il fonctionner ?#/#j'espère que oui !#/#[END_EBS_VALUES]##EBS FILE tech 2.1 - nov 2001, by Prologin.fr##
?>
|
10) Remarques et suggestions
Ce système en toujours en version beta, si vous remarquez
des disfonctionnements n'hésitez pas à nous les signaler : <systeme_ebs@prologin.fr>.
Sachez cependant que nous travaillons à son amélioration, et de
nouvelles fonctionnalités devraient rapidement être ajoutées,
gardez l'œil !
Un forum est disponible pour permettre à la communauté
php de dialoguer sur le sujet ici.
N'hésitez pas non plus à nous envoyer les éventuelles
modifications/ajout de fonctionnalités apportés à la classe :
<systeme_ebs@prologin.fr>.
Enfin, les développeurs ayant écrits des scripts basés sur
ce système peuvent aussi nous envoyer leurs sources, ces
scripts seront publiés sur le site de prologin.fr.
|