Fonction pour inclure vos pages en php
Salut à tous,
J’ai créé une petite fonction en php pour inclure vos pages. Elle permet de sécuriser l’include et de gérer les “tentatives” de hack ou les erreurs d’inclusions. Ces erreurs ou “tentatives” sont enregistrées dans un fichier log.txt puis affichées dans un fichier log.php.
Je vais vous l’expliquer pas à pas. Tout d’abord, créons une fonction include_page.
<pre class=”php”>function include_page($page){ //ma fonction } </pre>
Ensuite, une petite explication du raisonnement s’impose
.
J’ai basé mon système d’include sur le fait que la page demandée passée par une variable $_GET que j’ai nommée “page” donc via l’adresse http (URL). J’ai placé toutes mes pages dans un dossier inc/ à la racine de mon serveur FTP.
Nous allons donc tout d’abord, vérifier l’existence de la variable “page”.
<pre class=”prettyprint”>if(isset ($_GET[’page’])){ //Si notre variable existe, on dispense donc le code conséquent } </pre>.
Supposons que cette variable existe, alors rien de plus simple, nous nommons une variable $page reprennant le nom et l’adresse complète de $_GET[’page’]. Et nous allons, ensuite, vérifier que la page demandée existe. Nous supposerons qu’elle existe. Soit :
<pre class=”prettyprint”>
function include_page($page){
if(isset ($_GET[’page’])){
$page= “./inc/”.$_GET[’page’].”.php”;
if(is_file($page)){
include $page;
//fin du is_file
}
//fin du isset $_GET
}
//fin de la fonction
}
</pre>
Nous pouvons ici rajouter une fonctionnalité somme toute assez interressante. Nous pouvons greffer la possibilité de mettre notre site en maintenance. Ce qui peut s’avérer tout à fait confortable pour des opérations de maintenance. Pour cela, rien de plus simple, pour mettre notre site en maintenance, nous placerons un fichier maintenance.php à la racine de notre ftp. Donc une condition suffit pour que la page ‘maintenance.php’ s’affiche : que cette page existe.
Ce qui donne :
<pre class=”prettyprint”>
function include_page($page){
if(isset ($_GET[’page’])){
$page= “./inc/”.$_GET[’page’].”.php”;
if(file_exists(’./maintenance.php’)) include ‘./maintenance.php’;
else{
include $page;
}
//fin du file_exists
}
//fin du isset $_GET
}
//fin de la fonction
}
</pre>
Nous arrivons maintenant à l’enregistrement des tentatives de hack. Il y a tentative ou erreur, si la page demandée n’existe pas. Donc un simple else suffit. Ensuite, pour enregistrer l’erreur, on ouvre un fichier nommé “log.txt” situé dans un repertoire “./log/”. Son chemin est donc: “./log/log.txt”.
<pre class=”prettyprint”>
function include_page($page){
if(isset ($_GET[’page’])){
$page= “./inc/”.$_GET[’page’].”.php”;
if(file_exists(’./maintenance.php’)) include ‘./maintenance.php’;
else{
include $page;
}
//fin du file_exists
}
//fin du isset $_GET
}
else{
//Il y a tentative de hack, on ouvre donc le fichier “./log/log.txt” pour enregistrer l’erreur
// 1 : on ouvre le fichier
$monfichier = fopen(”./log/log.txt”, “a+”);
//1.1: on lit et on compte le nombre de caractères du fichier
$lire= fgets($monfichier);
fseek($monfichier, strlen($lire));
//2 : on crée la variable qui signifie d’une tentative de hack
$hack = “<tr class=\”red\”><td>Tentative d’inclusion d’une page qui n’existe pas.</td><td>Page demandée: “.$_GET[’page’].”</td><td>Date:”.date(’d/m/y \à H:i’,time()).”<td>”.$_SERVER[’REMOTE_ADDR’].”</td></tr>”;
//3 : on insère la variable dans le fichier
fputs($monfichier, $hack);
// 4 : quand on a fini de l’utiliser, on ferme le fichier
fclose($monfichier);
echo ‘Vous êtes grillé ! ça marche pas ici ! ‘;
}
//fin de la fonction
}
</pre>
Pour afficher le log d’erreur, nommé un fichier “log.php” à la racine de votre repertoire. Et incluez-y ce code:
<pre class=”prettyprint”>
<table>
<thead>
<th>Erreur/Tentative</th>
<th>Explication</th>
<th>Heure</th>
<th>IP</th>
</thead>
<tbody>
<?php
if(file_exists(’./log/log.txt’)){
include (’./log/log.txt’);
}
else ‘Il n\’y a aucun log’;?>
</tbody>
</table>
</pre>
Voilà amusez-vous bien ! N’hésitez pas à poster des commentaires sur mon système ! Je pense qu’il peut largement être amélioré !
Speed writting!

Salut à tous,
J ‘ai découvert un site assez marrant via emob.fr. Il s’agit de taper le plus vite possible des mots. Malheureusement, il faut écrire des mots en anglais…Ce qui ajoute de la difficulté pour nous, francophone !
Passons au fonctionnement du jeu : plus on écrit vite; plus la voiture avance vite. On peut jouer selon deux modes: sur internet, où l’on se compare aux internautes et en “local” où l’on s’entraine uniquement. Les textes sont des morceaux de livres ou des citations de cinéma.
A noter qu’une version facebook sera bientôt disponible! :)
La base des maths ?
Salut à tous,
Je crois que j’ai trouvé la raison des mathématiques. Notre prof de maths nous en avait parlé lorsque nous avions fait les séries convergentes/divergentes en maths. C’est vraiment très marrant. En effet, pour les matheux, Achille et une tortue font une course. Achille, héros grec rapide, laisse alors 100m d’avance à la tortue. Zénon affirme alors que le rapide Achille n’a jamais pu rattraper la tortue. « En effet, supposons pour simplifier le raisonnement que chaque concurrent coure à vitesse constante, l’un très rapidement, et l’autre très lentement ; au bout d’un certain temps, Achille aura comblé ses cent mètres de retard et atteint le point de départ de la tortue ; mais pendant ce temps, la tortue aura parcouru une certaine distance, certes beaucoup plus courte, mais non nulle, disons un mètre. Cela demandera alors à Achille un temps supplémentaire pour parcourir cette distance, pendant lequel la tortue avancera encore plus loin ; et puis une autre durée avant d’atteindre ce troisième point, alors que la tortue aura encore progressé. Ainsi, toutes les fois où Achille atteint l’endroit où la tortue se trouvait, elle se retrouve encore plus loin. Par conséquent, le rapide Achille n’a jamais pu et ne pourra jamais rattraper la tortue
Mais alors comment expliquer que la flèche atteigne son but ? Certains mathématiciens ont alors réglé l’affaire en disant que l’infini était indivisible: alors la flèche ne peut pas parcourir la moitié de la moitié etc… .
C’est vraiment magique les maths !
Topics des trucs inutile mais marrant…
Salut à tous,
Je posterai ici des sites plus ou moins inutiles…
Commençons tout d’abord par le site des statistiques mondiale :
Puis avec le topic inutile de la semaine:
Facebook : nouvelle source de drogues ?
Salut à tous,
Je me suis inscrit sur facebook il y a de ça 3semaines. Je trouve ça vraiment cool : j’ai retrouvé des gens dont je n’avais pas de nouvelles depuis très longtemps, j’ai ajouté des potes comme amis etc…
Seulement, c’est très addictif: plus on y passe de temps, plus on a d’amis, plus on y passe de temps, plus on joue! C’est impressionnant le nombre d’applications qui y ont été développé !
Sur ce, à plus !
Devoir d’anglais
Salut à tous,
Et voilà, week-end ! Bon j’ai pas passé une bonne matinée : réveil à 7H45 (heure à laquelle je pars d’habitude…), j’arrive à la gare, je vois le train qui part…Je dois donc y aller en voiture. J’arrive dans la salle, distribution des sujets et là…catastrophe, thème et version étaient incompréhensible et infaisable…Bref…Et pour une fois, j’ai manqué de mots pour le sujet de l’essai…On aura décidemment tout vu !
Allez a+
Chucks Norris Facts: LA vidéo de Mozinor!
Salut à tous,
Voilà LA vidéo de Mozinor sur Chuks Norris ! Très drôle ! Merci à Koreus
Tribunal en délire !
Même dans un tribunal, il doit y avoir des moments (entre deux instants tragiques) où l’humour tient à être de la partie.
La preuve en images, euh en mots pardon:
Cousins armés jusqu’aux dents
La police avait arrêté deux jeunes hommes de la même famille, avec un véritable arsenal dans leur voiture. À la barre du tribunal correctionnel d’Aix, voilà ce qu’ils ont expliqué: “Le cran d’arrêt, je l’ai acheté pour manger. Le cutter je m’en servais pour travailler et le pistolet à billes c’était à mon petit frère. Le nunchaku il était dans mon coffre et le poing américain c’était pour me défendre.“. Le président Delaunay leur demande alors: “Et la machette, c’était pour élaguer les arbres?“
C’est quand même pas mal, vous ne trouvez pas?
DS de Samedi 15 Mars 2008
Salut à tous,
Hier, j’ai fais le premier DS d’AEH depuis la rentrée. Je précise d’AEH car j’en ai déjà fait plusieurs autres durant la semaine entre autre: maths (sujet d’écricome 1993 et EM Lyon 2006); anglais; allemand et français.
Voici le sujet d’aeh: “Les solutions de la crise des années 1930 sont-elles les causes de la crises de 1970 ? “ . Assez marrant somme toute. Mon plan a été:
I. Les solutions de la crise des années 1930: les politiques keynésiennes
a) Leurs mises en place
b)Leurs évolutions
II. Les causes de la crises des années 1970
a) Un étatisme trop fort; une système de production en crise: le résultat des politiques keynésiennes
b) Les causes selon Kondratieff et Jugglar
III. Mais ces causes ne sont pas dûes aux solutions de 1930
a) car “les économies ont les crises de leurs structures” E. Labrousse
b)De plus, certaines politiques keynésiennes subsistent
En conclusion, j’ai nuancé en disant que les solutions de la crise de 1930 sont, en partie, responsable de la crise de 1970 même si, certaines ne le sont pas.
Qu’en pensez-vous ?