Accueil > > > ANTI FLOOD SANS LA LIBRAIRIE GD
ANTI FLOOD SANS LA LIBRAIRIE GD
Information sur la source
Description
Une petite class pour remplacer la librairie GD pour ce qui est de l'anti-flood. Lorsque cette librairie est désactivée (souvent chez les hébergeurs gratuits), on ne peut pas créer des images aléatoires. Cette class le fait et y a avec une autre pour vérifier ce qui est saisi. L'idée c'est de générer un code (qu'il faut saisir) dont chaque caractère est représenté par une image contenant le même caractère (dans mon exemple c'est des chiffres) mais avec un nom ("xxxxx.jpg") différent à chaque fois, par exemple l'image qui contient le chiffre "6" peut avoir comme nom "xgrt.jpg" ou bien "jhfg.jpg"... Le nombre de carctères pour ça est contrôlable aussi. A vous de tester et dites ce que vous en pensez ou comment l'améliorer.
Source
- <?php
- ////////////////////////////////////////////////////////////////////////////////\
- // //
- // Nom du code : Anti_Flood_Sans_GD (Class php) //
- // Version : 1.0 //
- // Date de création: 17 / 08 / 2005 //
- // Auteur : FBNKCMaster <-|| Farid BEN KACEM ||-> //
- // E-mail : FBNKCMaster@hotmail.com //
- // //
- // ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| //
- // //
- // Remerciements à : //
- // -> GRenard pour ses remarques, ses règles //
- // de la bonnes programmation //
- // -> Arnotic pour l'idée de son code de génération //
- // de mots de passe sur cette adresse: //
- // (http://www.phpcs.com/code.aspx?ID=12787) //
- // -> Tous ceux qui peuvent apporter des critiques //
- // constructives à cette source //
- // //
- // |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| //
- // //
- // Remarque : //
- // Merci de ne pas supprimer cette partie //
- // //
- // |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| //
- // //
- // ENJOY IT!!! //
- // //
- /////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ## Class anti-flood "anti_flood" ##
- ## fichier anti_flood.class.php ##
-
- class anti_flood
- {
- var $equiv = array(); //tableau qui contient
- var $decryptage = array(); //tableau qui contient
- var $nv_noms = array(); // tableau des nouveaux noms
- var $dos_img = 'img_flood'; // dossier qui contient les images
- var $dos_sess = 'sess_flood'; // dossier où sera créé un dossier pour chaque session
- var $nbr_carac_code; //Nombre de carctères du code à saisir
- var $nbr_crypt_code; // Nombre de caractères pour crypter les noms originels des images
- var $sess; // la variable de la session
-
- function anti_flood($nbr_car, $nbr_cryp) //le constructeur
- {
- $this->nbr_carac_code = $nbr_car;
- $this->nbr_crypt_code = $nbr_cryp;
-
- $this->sess = session_id(); // On génère un id pour la session
- $this->suppr_dos(); //On vide le dossier des sessions "sess_flood" au cas où la vérification n'est pas faite
-
- $code = $this->gen($this->nbr_carac_code,'num');
- for($i = 0; $i < $this->nbr_carac_code; $i++) // On fait correspondre chaque caractère à une image à qui on génère un nouveau nom aléatoire à l'aide de la méthode $this->gen()
- {
- $this->attribuer($code{$i}, $this->gen($this->nbr_crypt_code, 'alpha'));
- }
- $this->sess(); // On enregistre toutes les variables (tableaux) pour les traiter lors de la vérification
- }
-
-
- function suppr_dos() // La méthode pour supprimer les dossiers des sessions créés et leurs fichiers
- {
- $dos = opendir($this->dos_sess);
- while ($fichier = readdir($dos))
- {
- $l = array('.', '..');
- if (!in_array( $fichier, $l))
- {
- if (is_dir($this->dos_sess.'/'.$fichier))
- {
- $s_dos =opendir($this->dos_sess.'/'.$fichier);
- WHILE($f = readdir($s_dos))
- {
- @unlink($this->dos_sess.'/'.$fichier.'/'.$f);
- }
- @closedir($s_dos);
- @rmdir($this->dos_sess.'/'.$fichier);
- }else
- {
- unlink($this->dos_sess.'/'.$fichier);
- }
- }
- }
- @closedir($doss);
- }
-
- function gen($nbrcar, $car) // La méthode qui génère les codes
- {
- @mkdir($this->dos_sess.'/'.$this->sess, 0777);
- $caracteres = array('num' => '0123456789', 'alpha' => 'abcdefghijklmnopqrstuvwxyz');
- $nbr_caracteres = strlen($caracteres[$car]);
- $code = '';
- for($i = 0; $i < $nbrcar; $i++)
- {
- $code .= $caracteres[$car]{mt_rand()%$nbr_caracteres};
- }
- return $code;
- }
-
- function attribuer($nom_orig, $crypt) // La méthode qui attribue chaque code généré à chaque image qui sera affichée (la méthode qui crypte les noms originels des images affichés)
- {
- if(array_key_exists($nom_orig, $this->equiv)) // Si la clef (qui correspond au nom original de l'image) existe déjà dans notre tableau "$this->equiv"
- {
- // $nom_orig existe déjà, on ajoute "l'ancien" nouveau nom au tableau "$this->nv_noms"
- $this->nv_noms[] = $this->equiv[$nom_orig];
- }else
- {
- // $nom_orig n'existe pas => donc on ajoute au tableau le code généré à cette clef qui sera son index
- $this->copier_img($nom_orig, $crypt); // On copie l'image avec son nouveau nom crypté
- $this->equiv[$nom_orig] = $crypt;
- }
- $this->decryptage[] = $this->equiv[$nom_orig]; // Un autre tableau "indispensable!" qui contient les codes de toutes les cles (noms des images) à affiché
- }
-
- function copier_img($nom_orig, $nv_nom) // La méthode qui copie l'image à afficher avec le nouveau nom crypté vers le dossier de la session
- {
- if(copy($this->dos_img.'/'.$nom_orig.'.jpg', $this->dos_sess.'/'.$this->sess.'/'.$nv_nom.'.jpg'))
- {
- // L'image est copiée avec succès donc on ajoute son nouveau nom au tableau "$this->nv_noms"
- $this->nv_noms[] = $nv_nom;
- }else
- {
- // Sinon on affiche une image nom trouvée
- echo '<img src="x.jpg" alt="" />';
- }
- }
-
- function afficher() // La méthode qui affiche les images avec leurs nouveaux noms et emplacement
- {
- foreach($this->nv_noms as $nv_nom)
- {
- echo '<img src="'.$this->dos_sess.'/'.$this->sess.'/'.$nv_nom.'.jpg" alt="" />';
- }
- }
-
- function sess() // La méthode qui enregistre le nom de la session et les tableaux qu'on va traiter dans la class verif_flood.class.php et on les passe par une variable session
- {
- $tableau[] = $this->equiv;
- $tableau[] = $this->decryptage;
- $_SESSION[$this->sess] = $tableau;
- }
- }
- ?>
-
- ###################################################
-
-
-
-
- <?php
- ////////////////////////////////////////////////////////////////////////////////\
- // //
- // Nom du code : Anti_Flood_Sans_GD (Class php) //
- // Version : 1.0 //
- // Date de création: 17 / 08 / 2005 //
- // Auteur : FBNKCMaster <-|| Farid BEN KACEM ||-> //
- // E-mail : FBNKCMaster@hotmail.com //
- // //
- // ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| //
- // //
- // Remerciements à : //
- // -> GRenard pour ses remarques, ses règles //
- // de la bonnes programmation //
- // -> Arnotic pour l'idée de son code de génération //
- // de mots de passe sur cette adresse: //
- // (http://www.phpcs.com/code.aspx?ID=12787) //
- // -> Tous ceux qui peuvent apporter des critiques //
- // constructives à cette source //
- // //
- // |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| //
- // //
- // Remarque : //
- // Merci de ne pas supprimer cette partie //
- // //
- // |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| //
- // //
- // ENJOY IT!!! //
- // //
- /////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ## Class de verification "verif_flood" ##
- ## fichier verif_flood.class.php ##
-
- require_once('anti_flood.class.php');
- class verif_flood extends anti_flood // On herite de la class mère "anti_flood"
- {
- var $code_saisi;
-
- function verif_flood($code) // Le constructeur8
- {
- $this->code_saisi = $code;
- $this->sess = session_id(); // On cherche l'id de la session
- $tableaux = $_SESSION[$this->sess]; // On extrait les tableaux => un tableau multi-dimensionnel
- foreach($tableaux as $v) // On reconstruit les sous-tableaux
- {
- $st[] = $v; // "st" = sous-tableau
- }
- $this->equiv = $st[0]; // Là juste pour attribuer le nom à chaque sous tableau pour pas se perdre après...
- $this->decryptage = $st[1];
-
- $this->suppr_dos(); // On vide le dossier des sessions "sess_flood"
- //return $this->verifier(); // On vérifie
- }
-
- function verifier() // La méthode qui decrypte et verifie le code entré
- {
- $nbr_carac_code = strlen($this->code_saisi);
- //Et là on crypte le code entré: chaque caractère entré correspond à un code qu'on va récupérer dans le tableau d'equivalence "$this->equiv" ayant comme clefs les noms originaux des images
- $crypt = '';
- for($i = 0; $i < $nbr_carac_code; $i++)
- {
- if(isset($this->equiv[$this->code_saisi{$i}]))
- $crypt .= $this->equiv[$this->code_saisi{$i}];
- }
- // On obtient le code crypté qu'on va comparer avec la suite des codes générés pour chaque images... C'est un peu difficil à comprendre du premier coup mais il faut juste méditer c'est simple l'idée!
-
- //Ici on decrypte..non on fait juste sortir et coller les codes générés, de chaque image, du tableau dont j'ai dit "indispensable!"... maintenant je crois que vous compreniez pourquoi ;)
- $decrypt = '';
- foreach($this->decryptage as $v)
- {
- $decrypt .= $v;
- }
- // On obtient la suite des codes les uns après les autres générés
-
- // On compare les deux codes obtenus
- if($crypt === $decrypt)
- {
- // C'est le bon code
- return true;
- }else
- {
- // C'est pas le bon code
- return false;
- }
- }
- }
- ?>
<?php
////////////////////////////////////////////////////////////////////////////////\
// //
// Nom du code : Anti_Flood_Sans_GD (Class php) //
// Version : 1.0 //
// Date de création: 17 / 08 / 2005 //
// Auteur : FBNKCMaster <-|| Farid BEN KACEM ||-> //
// E-mail : FBNKCMaster@hotmail.com //
// //
// ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| //
// //
// Remerciements à : //
// -> GRenard pour ses remarques, ses règles //
// de la bonnes programmation //
// -> Arnotic pour l'idée de son code de génération //
// de mots de passe sur cette adresse: //
// (http://www.phpcs.com/code.aspx?ID=12787) //
// -> Tous ceux qui peuvent apporter des critiques //
// constructives à cette source //
// //
// |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| //
// //
// Remarque : //
// Merci de ne pas supprimer cette partie //
// //
// |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| //
// //
// ENJOY IT!!! //
// //
/////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
## Class anti-flood "anti_flood" ##
## fichier anti_flood.class.php ##
class anti_flood
{
var $equiv = array(); //tableau qui contient
var $decryptage = array(); //tableau qui contient
var $nv_noms = array(); // tableau des nouveaux noms
var $dos_img = 'img_flood'; // dossier qui contient les images
var $dos_sess = 'sess_flood'; // dossier où sera créé un dossier pour chaque session
var $nbr_carac_code; //Nombre de carctères du code à saisir
var $nbr_crypt_code; // Nombre de caractères pour crypter les noms originels des images
var $sess; // la variable de la session
function anti_flood($nbr_car, $nbr_cryp) //le constructeur
{
$this->nbr_carac_code = $nbr_car;
$this->nbr_crypt_code = $nbr_cryp;
$this->sess = session_id(); // On génère un id pour la session
$this->suppr_dos(); //On vide le dossier des sessions "sess_flood" au cas où la vérification n'est pas faite
$code = $this->gen($this->nbr_carac_code,'num');
for($i = 0; $i < $this->nbr_carac_code; $i++) // On fait correspondre chaque caractère à une image à qui on génère un nouveau nom aléatoire à l'aide de la méthode $this->gen()
{
$this->attribuer($code{$i}, $this->gen($this->nbr_crypt_code, 'alpha'));
}
$this->sess(); // On enregistre toutes les variables (tableaux) pour les traiter lors de la vérification
}
function suppr_dos() // La méthode pour supprimer les dossiers des sessions créés et leurs fichiers
{
$dos = opendir($this->dos_sess);
while ($fichier = readdir($dos))
{
$l = array('.', '..');
if (!in_array( $fichier, $l))
{
if (is_dir($this->dos_sess.'/'.$fichier))
{
$s_dos =opendir($this->dos_sess.'/'.$fichier);
WHILE($f = readdir($s_dos))
{
@unlink($this->dos_sess.'/'.$fichier.'/'.$f);
}
@closedir($s_dos);
@rmdir($this->dos_sess.'/'.$fichier);
}else
{
unlink($this->dos_sess.'/'.$fichier);
}
}
}
@closedir($doss);
}
function gen($nbrcar, $car) // La méthode qui génère les codes
{
@mkdir($this->dos_sess.'/'.$this->sess, 0777);
$caracteres = array('num' => '0123456789', 'alpha' => 'abcdefghijklmnopqrstuvwxyz');
$nbr_caracteres = strlen($caracteres[$car]);
$code = '';
for($i = 0; $i < $nbrcar; $i++)
{
$code .= $caracteres[$car]{mt_rand()%$nbr_caracteres};
}
return $code;
}
function attribuer($nom_orig, $crypt) // La méthode qui attribue chaque code généré à chaque image qui sera affichée (la méthode qui crypte les noms originels des images affichés)
{
if(array_key_exists($nom_orig, $this->equiv)) // Si la clef (qui correspond au nom original de l'image) existe déjà dans notre tableau "$this->equiv"
{
// $nom_orig existe déjà, on ajoute "l'ancien" nouveau nom au tableau "$this->nv_noms"
$this->nv_noms[] = $this->equiv[$nom_orig];
}else
{
// $nom_orig n'existe pas => donc on ajoute au tableau le code généré à cette clef qui sera son index
$this->copier_img($nom_orig, $crypt); // On copie l'image avec son nouveau nom crypté
$this->equiv[$nom_orig] = $crypt;
}
$this->decryptage[] = $this->equiv[$nom_orig]; // Un autre tableau "indispensable!" qui contient les codes de toutes les cles (noms des images) à affiché
}
function copier_img($nom_orig, $nv_nom) // La méthode qui copie l'image à afficher avec le nouveau nom crypté vers le dossier de la session
{
if(copy($this->dos_img.'/'.$nom_orig.'.jpg', $this->dos_sess.'/'.$this->sess.'/'.$nv_nom.'.jpg'))
{
// L'image est copiée avec succès donc on ajoute son nouveau nom au tableau "$this->nv_noms"
$this->nv_noms[] = $nv_nom;
}else
{
// Sinon on affiche une image nom trouvée
echo '<img src="x.jpg" alt="" />';
}
}
function afficher() // La méthode qui affiche les images avec leurs nouveaux noms et emplacement
{
foreach($this->nv_noms as $nv_nom)
{
echo '<img src="'.$this->dos_sess.'/'.$this->sess.'/'.$nv_nom.'.jpg" alt="" />';
}
}
function sess() // La méthode qui enregistre le nom de la session et les tableaux qu'on va traiter dans la class verif_flood.class.php et on les passe par une variable session
{
$tableau[] = $this->equiv;
$tableau[] = $this->decryptage;
$_SESSION[$this->sess] = $tableau;
}
}
?>
###################################################
<?php
////////////////////////////////////////////////////////////////////////////////\
// //
// Nom du code : Anti_Flood_Sans_GD (Class php) //
// Version : 1.0 //
// Date de création: 17 / 08 / 2005 //
// Auteur : FBNKCMaster <-|| Farid BEN KACEM ||-> //
// E-mail : FBNKCMaster@hotmail.com //
// //
// ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| //
// //
// Remerciements à : //
// -> GRenard pour ses remarques, ses règles //
// de la bonnes programmation //
// -> Arnotic pour l'idée de son code de génération //
// de mots de passe sur cette adresse: //
// (http://www.phpcs.com/code.aspx?ID=12787) //
// -> Tous ceux qui peuvent apporter des critiques //
// constructives à cette source //
// //
// |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| //
// //
// Remarque : //
// Merci de ne pas supprimer cette partie //
// //
// |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| //
// //
// ENJOY IT!!! //
// //
/////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
## Class de verification "verif_flood" ##
## fichier verif_flood.class.php ##
require_once('anti_flood.class.php');
class verif_flood extends anti_flood // On herite de la class mère "anti_flood"
{
var $code_saisi;
function verif_flood($code) // Le constructeur8
{
$this->code_saisi = $code;
$this->sess = session_id(); // On cherche l'id de la session
$tableaux = $_SESSION[$this->sess]; // On extrait les tableaux => un tableau multi-dimensionnel
foreach($tableaux as $v) // On reconstruit les sous-tableaux
{
$st[] = $v; // "st" = sous-tableau
}
$this->equiv = $st[0]; // Là juste pour attribuer le nom à chaque sous tableau pour pas se perdre après...
$this->decryptage = $st[1];
$this->suppr_dos(); // On vide le dossier des sessions "sess_flood"
//return $this->verifier(); // On vérifie
}
function verifier() // La méthode qui decrypte et verifie le code entré
{
$nbr_carac_code = strlen($this->code_saisi);
//Et là on crypte le code entré: chaque caractère entré correspond à un code qu'on va récupérer dans le tableau d'equivalence "$this->equiv" ayant comme clefs les noms originaux des images
$crypt = '';
for($i = 0; $i < $nbr_carac_code; $i++)
{
if(isset($this->equiv[$this->code_saisi{$i}]))
$crypt .= $this->equiv[$this->code_saisi{$i}];
}
// On obtient le code crypté qu'on va comparer avec la suite des codes générés pour chaque images... C'est un peu difficil à comprendre du premier coup mais il faut juste méditer c'est simple l'idée!
//Ici on decrypte..non on fait juste sortir et coller les codes générés, de chaque image, du tableau dont j'ai dit "indispensable!"... maintenant je crois que vous compreniez pourquoi ;)
$decrypt = '';
foreach($this->decryptage as $v)
{
$decrypt .= $v;
}
// On obtient la suite des codes les uns après les autres générés
// On compare les deux codes obtenus
if($crypt === $decrypt)
{
// C'est le bon code
return true;
}else
{
// C'est pas le bon code
return false;
}
}
}
?>
Conclusion
################### Exemple d'utilisation ######################
########################## ###################################### ## la page où s'affichera le code à saisir (par ex: index.php)## <?php session_start(); echo '<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transition al.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>ANTI-FLOOD SANS GD</title> </head> <body> <div align="center"> '; require_once('anti_flood.class. php'); $anti_flood = new anti_flood(6, 4); // On ainstancie la class avec les deux parmèttres: "6"-> nombre de caractères à saisir "4"-> nombre de caractères pour crypter les noms originels des images $anti_flood->afficher(); // On affiche les caractères (les images) echo ' <br /> <form method="post" action="verif_flood.php"> <input type="text" name="flood" /><br /> <input type="submit" value="Valider" /> </form> </div> </body> </html> '; ?>
########################################## ####### ## fichier de verification (verif_flood.php) ## <?php session_start(); echo '<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transition al.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>ANTI-FLOOD SANS GD</title> </head> <body> <div align="center"> '; if(isset($_POST['flood'])) { $ code = $_POST['flood']; // On récupère le code saisi require_once('verif_flood.class.php'); $ve rif = new verif_flood($code); // On instancie la class de verification aveccomme paramèttre le code saisi if($verif->verifier() === true) { echo 'C\'est le bon code!!'; }else { echo 'Code invalide!!!'; } } echo ' </div> </body> </html> '; ?>
Historique
- 19 août 2005 18:47:29 :
- Voir la discussion en bas.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Comment tester les fichiers PHP [ par Clem ]
Comment tester les fichiers PHP sans les publier sur son site ? Dans le genre de PWS avec l'asp
Tri de fichiers par date [ par Clem ]
Comment trier dans l'orde du plus nouveau au plus vieux, des dossiers ?J'ai trouvé pour afficher les dossiers :<?$rep=opendir('.');while ($file = r
Fichiers dans une base de donnée [ par Clem ]
Comment uploader un fichier dans une base de données, et le downloader ?
réaliser et envoyer des fichiers zip [ par pupuce ]
J'ai vu qu'il est possible de créer des fichiers zip, jusque là je vois bien comment faire mais :Je veut pouvoir envoyer le zip au client, sans qu'il
Compter des fichiers.... [ par FleX ]
Alors voila. je voudrais me faire un script php3 qui compte le nombre de fichiers dans un dossier et que le resultat soit mis dans une variable, que j
créer un fichier ???? petit PB [ par MangaII ]
Hello les gars !Voilà, j'ai un petit soucis, j'ai besoin de créer des fichiers (TXT) sur mon site, depuis ma page en PHP ! le PB, c que je pe pas ! Je
Encore les fichiers [ par koko ]
bon c'est encore moi avec mes fichiers.txt... cette fois-ci, je voudrais que lorque j'ouvre le fichier, il mets les variables qui sont à l'intérieur d
fichiers batch et username [ par booth ]
bonjour, je cherche le moyen soit de lancer un batch sur la machine client, soit de récupérer directement son username (log windows ou netware)si kelk
zipper plusieurs fichiers [ par eax ]
help! je cherche à apprendre comment faire pour zipper plusieurs fichiers (des images par exemple). si qqun connait un bon tutorial ou un code source
connection FTP par PHP [ par JulienC ]
Bonjour à toutes et à tous,Mon but est de pouvoir uploader sur mon site des fichiers ayant une extension particulière (on les nommera .ext). Ces fichi
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|