Comme je l'avais dit précédemment à AKHENATHON :
"Je reviendrai lorsque j'aurai quelque chose de consistant à soumettre".
Voilà qui est fait avec une classe d'bjet qui permet d' :
- Effectuer des opérations SQL SELECT, INSERT, UPDATE ou autre sur des base MySQL ou Oracle
- Exporter à l'écran ou dans un fichier un jeu d'enregistrements au format brut, en HTML ou en valeurs séparées par un caractère délimiteur (ex. le csv)
Vous trouverez dans le fichier zip PDO_Lekod.php qui contient deux classes d'objets :
- Err_PDO_Lekod qui gère les exceptions PDO_Lekod
- PDO_Lekod qui fait le reste
Quelques précisions :
- Toute valeur relative aux champs ou au valeur des champs du formulaire est cryptée.
Les fonctions GenerationCle, Crypte et Decrypte ne sont pas de moi, et je prie à l'auteur de ces dernières de bien vouloir m'excuser de ne pas pouvoir l'identifier pour lui rendre hommage.
Bibliothèques requises :
- php_exif
- php_pdo
- php_pdo_mysql
- php_pdo_oci
- php_pdo_oci8
- php_mbstring
LIMITATIONS Oracle concernant la page d'affichage de renseignements
Pour l'élaboration du SQL ne pas imbriquer des fonctions à l'intérieure d'autres fonctions
Exemple : CONCAT('a',CONCAT('b','c')) => Dans ce cas, il faut utiliser un Alias (exemple : CONCAT('a',CONCAT('b','c')) Toto)
Vous trouverez dans la section "Source" le code qui a permis d'implémenter
http://www.vipere.lekod.com/francais/pdo_mondanites.php
Source / Exemple :
<?php
include('PDO_Lekod.php');
$Form= new PDO_Lekod('Mon serveur','Ma base','Mon login','Mon mot de passe');
Function xtTraiter($nompage)
{
$nompage = strtolower($nompage);
$nompage = eregi_replace("[àâä]","a",$nompage);
$nompage = eregi_replace("[îï]","i",$nompage);
$nompage = eregi_replace("[ôö]","o",$nompage);
$nompage = eregi_replace("[ùûü]","u",$nompage);
$nompage = eregi_replace("[éèêë]","e",$nompage);
$nompage = eregi_replace("[ç]","c",$nompage);
$nompage = eregi_replace("[@_:'~\\\/\\.\"-]","_",$nompage);
$nompage = eregi_replace(":space:","_",$nompage);
return $nompage;
}
function Decimale_fr($Variable)
{
$Variable=eregi_replace("[.]",",",$Variable);
return $Variable;
}
//Ajout des textes de début et de fin
$Form->Proepilogue(
'<h1 align="center">C\'est pire qu\'un hall de gare !</h1>
<p align="left">Voici, depuis le début de la partie, tous les <span class="Accentuation">intrépides
Vipernautes</span> qui, courageusement, décidèrent de se
lancer à la conquête du corps de <span class="Accentuation">Florent B.</span>,<br>ainsi que les
<span class="Accentuation">immondes couards</span> qui abandonnèrent
leurs troupes à une mort certaine après avoir déserté
leur poste de haut commandant en chef.<br></p>',
'<p>Si vous ne vous trouvez pas dans cette liste, c\'est qu\'à coup sûr,
<span class="Accentuation">vous ne vous êtes pas inscrit(e)</span>.</p>'
);
$Gest_lignes=array("Max liste"=>100,"Pas liste"=>10,"Classe"=>'Pas_Bouton');
$Gest_liens=array("Nbre liens"=>1,"Max lien"=>100,"Pas lien"=>10,"Classe"=>'Pas_Bouton');
$Gest_pages=array(
"Premiere Page"=>'<<<',
"X pages avant"=>'<<',
"Page precedente"=>'<',
"Page_suivante"=>'>',
"X pages apres"=>'>>',
"Derniere Page"=>'>>>',
"Infobulle premiere Page"=>'Première page',
"Infobulle X pages avant"=>' pages avant',
"Infobulle page precedente"=>'Page précédente',
"Infobulle Page X"=>'Page ',
"Infobulle page_suivante"=>'Page suivante',
"Infobulle X pages apres"=>' pages après',
"Infobulle derniere Page"=>'Dernière page',
"Liaison entre page"=>' - ',
"Style paragraphe"=>'align="center"',
"Style page actuelle"=>'',
"Style lien"=>'style="text-decoration:none;"'
);
$Form ->Init_form('Form_PDO','GET','','','SELECT t_carnets.Evt, t_carnets.Pseudo,DATE_FORMAT(t_carnets.Date,\'%d/%m/%Y %H:%i\') ladate FROM t_carnets',
'Date','DESC',true,$Gest_pages,$Gest_lignes,$Gest_liens,'<p align="center"><span class="Accentuation">Ben, au regard de vos choix de filtrage,<br>y a pas grand chose à afficher</span></p>',
array('Cellule1','Cellule2')
);
/*On ajoute un motif de recherche sur les conditions AVANT de déclarer les contrôles impactés par les motifs
car les motifs sont ajoutés à la valeur du contrôle lors de sa création*/
$Form->Renseigne_joker("T_Saisie",'', '%');//pour faire par exemple Pseudo LIKE 'fl%'
//$Form->Renseigne_joker("H_test2",'_', '_');//pour faire Pseudo = '_titi_'
//Les boutons radio
$Form ->Ajoute_option("O_Evt",$Form->Lit_tout_enr(),true,"Evt",'=','',"Tous les mouvements",true,"Bouton");
//$Form ->Ajoute_option("O_Evt","Arrivee",false,"Evt",'=','',"Bienvenue à",true,"Bouton","http://".$_SERVER['SERVER_NAME']."/Forum/images/smiles/6.gif");
//$Form ->Ajoute_option("O_Evt","Depart",false,"Evt",'=','',"Ils nous ont quitté (Paix à leur âme)",true,"Bouton","http://".$_SERVER["SERVER_NAME"]."/Forum/images/smiles/24.gif");*/
$Form ->Ajoute_option("O_Evt","Arrivee",false,"Evt",'=','',"Bienvenue à",true,"Bouton","http://www.vipere.lekod.com/Forum/images/smiles/6.gif");
$Form ->Ajoute_option("O_Evt","Depart",false,"Evt",'=','',"Ils nous ont quitté (Paix à leur âme)",true,"Bouton","http://www.vipere.lekod.com/Forum/images/smiles/24.gif");
//Les listes déroulantes
$Form ->Ajoute_liste("S_Lettre","SELECT DISTINCT UCASE(LEFT(CONVERT(`t_carnets`.`Pseudo` USING utf8 ),1)) AS Champ FROM t_carnets ORDER BY Champ","SELECT DISTINCT UCASE(LEFT(CONVERT(`t_carnets`.`Pseudo` USING utf8 ),1)) AS Champ FROM t_carnets ORDER BY Champ",
"UCASE(LEFT(CONVERT(`t_carnets`.`Pseudo` USING utf8 ),1))","=","Tout","","Uniquement les Vipernautes dont l'initiale est",false,"Bouton");
$Form ->Ajoute_liste("S_Date","SELECT DISTINCT LEFT(Date,10) AS Champ FROM t_carnets ORDER BY Champ","SELECT DISTINCT concat(substring(Date,9,2),'/',substring(Date,6,2),'/',substring(Date,1,4)) AS Champ FROM t_carnets ORDER BY LEFT(Date,10)",
"LEFT(Date,10)","=","Tout","","Uniquement les mouvements de la journée du",false,"Bouton");
//La zone de texte
$Form ->Ajoute_texte("T_Saisie","Pseudo","LIKE","","","Dont le nom du Vipernaute commence par ",false,"Bouton","Bouton","",50,50);
//Les cases à cocher
$Form ->Ajoute_case("C_AM","CONVERT(TIME(date),SIGNED)","<=",120000,false,"","Tous les évènements arrivés avant midi",true,"Bouton");
$Form ->Ajoute_case("C_PM","CONVERT(TIME(date),SIGNED)",">",120000,false,"","Tous les évènements arrivés après midi",true,"Bouton");
//Les zones invisibles
//$Form->Ajoute_hidden('H_test2','Pseudo','oueur ','LIKE');
//L'odre d'apparition des contrôles de filtre dans le formulaire
$Form->Init_ordre('H|O|L|T|C','<td align="center">|<table>');
//$Form->Init_ordre(array("T_Saisie","C_AM","S_Lettre"),array('<table>','<td align="center">','<td align="center">'),true);
//Les images pour les boutons de tri
$Form ->Init_Img_tri(array(
'http://www.vipere.lekod.com/Images/Fleches/Haut.gif',
'http://www.vipere.lekod.com/Images/Fleches/Haut_mvt.gif'
),
array(
'http://www.vipere.lekod.com/Images/Fleches/Bas.gif',
'http://www.vipere.lekod.com/Images/Fleches/Bas_mvt.gif'
),
array(
'Tri croissant',
'Tri décroissant'
)
);
//Les boutons de tris
$Form ->Ajoute_tri("B_Tri_Evt","Evt",true,"Evènement",true,"Accentuation");
$Form ->Ajoute_tri("B_Tri_Joueur","Pseudo",true,"Vipernaute",true,"Accentuation");
$Form ->Ajoute_tri("B_Tri_Date","Date",true,"Date de l'évènement",true,"Accentuation");
?>
<html dir="LTR">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="Title" lang="fr" content="PDO Lekod">
<meta name="Identifier-url" content=".http://www.vipere.lekod.com">
<meta name="Description" lang="fr" content="Jeu de strategie dans lequel vous devez envahir un corps humain grace a une armee de virus polymorphes.">
<meta name="keywords" lang="fr" content="jeu,jouer,en ligne,strategie,virus,vipere,polymorphe,gratuit,corps,humain,corps humain,anatomie,planche,planche anatomique,organes,dedecine,sante,conversion de devises,devises,conversion,devise">
<meta name="Category" content="Jeu">
<meta name="Author" lang="fr" content="Florent Benetiere">
<meta name="Reply-to" content="webmestre@lekod.com">
<meta name="Copyright" content="Florent Benetiere">
<meta name="revisit-after" content="8">
<meta name="Robot" content="index,follow,all">
<meta http-equiv="pragma" content="no-cache">
<TITLE>Carnets mondains PDO de V.I.P.E.R.E.</TITLE>
<style>
<!--
body {
font-weight:normal; font-size:12pt; color:#C0C000; background-color:#001E00; background-image:url('http://<?php echo $_SERVER['SERVER_NAME'] ?>/Images/Fond.jpg'); background-repeat:repeat; background-attachment:fixed;
scrollbar-face-color: #012901;
scrollbar-shadow-color: #004000;
scrollbar-highlight-color: #539054;
scrollbar-3dlight-color: #539054;
scrollbar-darkshadow-color: #002000;
scrollbar-track-color: #539054;
scrollbar-arrow-color: #FFFF00;
}
a:visited { font-style:italic; font-weight:bold; color:#FFCC33; }
a:link { font-weight:bold; color:#FEA70C; }
a:hover { font-weight:bold; color:#FFFF00; }
h1 { color:#FEA70C; text-align:center; text-decoration:underline;}
h2 { color:#FFCC33;text-align:center;text-decoration:none;}
TABLE,TD,TR
{
CURSOR: auto;
border: 0pt none;
valign:"middle";
}
/***** menu CSS *****/
@media print {
.menu, .ssmenu {
visibility:hidden;
}
}
.Cadre_int
{
border: medium inset #FFFF00;
}
.Cadre_ext
{
border: medium outset #FFFF00;
}
.menu, .ssmenu {
background-color:#FFFF3F;
font-size:10pt;
font-weight:bold;
border:1pt solid #FFFF00;
width:15em;
margin:1em;
}
.menu {
background-image:url(http://<?php echo $_SERVER['SERVER_NAME'] ?>/Images/Menu/Menu.jpg\');
text-align:center;
}
.ssmenu {
background-image:url(http://<?php echo $_SERVER['SERVER_NAME'] ?>/Images/Menu/Ss_menu.jpg\');
}
.ssmenu ul, .ssmenu li {
/*Les items (les <li>) des sous-menus, notamment pour enlever les puces des liste */
padding:0;
margin:0;
list-style-type:none;
}
.menu a, .ssmenu a, .menu a:visited, .ssmenu a:visited {
font-style:normal;
color:#004000;
padding:2pt 1pt;
text-decoration:none;
display:block;
margin:0pt;
width:100%;
}
html>body .menu a, html>body .menu a:visited, html>body .menu a:hover, html>body .menu a:active,
html>body .ssmenu a, html>body .ssmenu a:visited, html>body .ssmenu a:hover, html>body .ssmenu a:active {
width:auto;
}
.ssmenu ul:hover, .ssmenu a:hover, .ssmenu a:focus, .menu a:hover, .menu a:focus {
background-color:#003300;
color:#FFFF00;
text-decoration:none;
}
.menu a:hover, .menu a:focus {
background-image:url('http://<?php echo $_SERVER['SERVER_NAME'] ?>/Images/Menu/Menu_over.jpg\');
}
.ssmenu ul:hover, .ssmenu a:hover, .ssmenu a:focus {
background-image:url(http://'<?php echo $_SERVER['SERVER_NAME'] ?>/Images/Menu/Ss_menu_over.jpg\');}
img {
border:none;
align:"absmiddle";
}
.Titre { font-size:24pt; color:#FEA70C; text-decoration:underline; }
.Accentuation { font-weight:bold; color:#FEA70C; }
.Bouton { font-weight:bolder; font-size:10pt; color:#004000; background-color:#FEA70C; background-image:url(http://<?php echo $_SERVER['SERVER_NAME'] ?>/Images/Bouton.jpg\'); border-color:rgb(255,204,0);}
.Style_Bouton { font-weight:bolder; font-size:10pt; color:#004000; background-color:#FEA70C; background-image:url(http://<?php echo $_SERVER['SERVER_NAME'] ?>/Images/Bouton.jpg\'); border-color:rgb(255,204,0); border-style:outset; }
.Pas_bouton { font-weight:bolder; font-size:10pt; color:#004000; background-color:#FEA70C; border-color:#FFCC00; border-style:outset; }
.Cellule1 { font-weight:normal; color:#C0C000; background-color:#003300;border: medium inset #FFFF00;}
.Cellule1 a:link{ font-weight:normal;color:#C0C000;}
.Cellule1 a:hover,.Cellule1 a:focus{font-weight:bold;color:#FFFF00;text-decoration:none;}
.Cellule2 {font-weight:normal;color:#C0C000;background-color:#324E00;border:medium inset #FFFF00;}
.Cellule2 a:link{font-weight:normal;color:#C0C000;}
.Cellule2 a:hover,.Cellule2 a:focus{font-weight:bold;color:#FFFF00;text-decoration:none;}
.Livre1 {font-weight:bold;color:#FF4E00;background-color:#00FF00;}
.Livre2 {font-weight:bold;color:#00FF00;background-color:#FF4E00;}
.Texte_normal {color:#C0C000}
.Pas_bords {border: 0pt none;}
.Table2{CURSOR: auto;border: medium outset #FFFF00;}
.Cases,.Cases_d,.Cases_g,.Cases_h,.Cases_b,.Cases_d_h,.Cases_g_h,.Cases_d_b,.Cases_g_b{border: medium inset #FFFF00;}
.Cases_d,.Cases_d_h,.Cases_d_b{border-right:none;}
.Cases_g,.Cases_g_h,.Cases_g_b{border-left:none;}
.Cases_h,.Cases_d_h,.Cases_g_h{border-top:none;}
.Cases_b,.Cases_d_b,.Cases_g_b{border-bottom:none;}
.Annotation{font-size:8pt; color:#C0C000;text-align:center;}
-->
</style>
</head>
<body>
<?php
//On exporte la page
$Form->Exporte_html('Ecran','UTF-8',false,true,null,'Et maintenant une exportation CSV de la table des mondanités');
//Comme mis ci-dessus on fait une exportation CSV de la table
$Form->Exporte_CSV($Form->Sel('SELECT Pseudo,Evt,Date FROM t_carnets ORDER BY Pseudo,Date'));
?>
<div id="Xiti" style="width:39px; height:25px; position:absolute; left:00px; top:0px; z-index:0;">
<a href="http://www.xiti.com/xiti.asp?s=mon_compte_xiti" title="WebAnalytics" TARGET="_blank">
<script type="text/javascript">
<!--
Xt_param = 's=mon_compte_xiti&p=Mondonites_PDO';
try {Xt_r = top.document.referrer;}
catch(e) {Xt_r = document.referrer; }
Xt_h = new Date();
Xt_i = '<img width="39" height="25" border="0" alt="" ';
Xt_i += 'src="http://le_serveur_xiti/hit.xiti?'+Xt_param;
Xt_i += '&hl='+Xt_h.getHours()+'x'+Xt_h.getMinutes()+'x'+Xt_h.getSeconds();
if(parseFloat(navigator.appVersion)>=4)
{Xt_s=screen;Xt_i+='&r='+Xt_s.width+'x'+Xt_s.height+'x'+Xt_s.pixelDepth+'x'+Xt_s.colorDepth;}
document.write(Xt_i+'&ref='+Xt_r.replace(/[<>"]/g, '').replace(/&/g, '$')+'" title="Internet Audience">');
//-->
</script>
<noscript>
Mesure d'audience ROI statistique webanalytics par <img width="39" height="25" src="http://http://le_serveur_xiti/hit.xiti?s=309208&p=" alt="WebAnalytics" />
</noscript></a>
</div>
</body>
</html>
Conclusion :
Pour diverses raisons, je me vois contraint d'abandonner "temporairement" le développement de www.vipere.lekod.com et, de ce fait, vous tire ma révérence.
Florent Bénetière
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.