|
Il y a actuellement 4 visiteurs connectés sur le site !
Astuce Php
Interdire le téléchargement d'images par d'autre sites
Dans un fichier .htaccess placer :
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://www.monsite.com/.*$ [NC]
ReWriteRule .*\.(gif|png|jpe?g)$ - [F]
Envoi d'un message lors du plantage de Mysql :
<?
//on essaie de se connecter a mysql
if (!@mysql_connect ("localhost","","")) {
error_log ("Erreur de connexion à Mysql", 1, "webmaster@monsite.com");
//si la connecxion est impossible alors on envoie un mail au webmaster
?>
|
Temps de chargement d'une page web
Ajouter ce script au debut de la page :
<?
function getmicrotime(){
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
$debut = getmicrotime();
>
Et celui-ci à la fin :
<?
$fin = getmicrotime();
echo "Page générée en ".round($fin-$debut, 3) ." secondes. ";
?>
|
Affichage d'images animées dans un répertoire
Vous souhaitez afficher toutes les images animées d'un répertoire sans perdre
de temps à les examiner unes à unes, voici un script simple
qui fera le travail pour vous
<?php
$dir="icone";
$dossier=opendir($dir);
while($fichier=readdir($dossier)){
$berk=array('.', '..');
if(!in_array($fichier,$berk)){
$lien=$dir.'/'.$fichier;
print '<div style="float:left;height:100px;">';
if(file_exists($lien)){
print '<img src="'.$lien.'" alt="" style="padding: 10 10 10 10;"/> '; print'<a href="'.$lien.'">'.substr($fichier,0,-4).''; }
print '</div>';
}
}
?>
|
Prendre la 1re ligne d'un fichier CSV
Peux-t'on isoler la 1re ligne d'un fichier CSV.
Par exemple, J'uploade un fichier CSV pour le mettre dans Mysql. Il doit
contenir 13 champs séparés par ; (point virgule)
Je voudrais compter les points virgules de la 1re ligne afin de m'assurer
qu'il y en a bien 13.
$content = contenu de ton fichier;
lignes = explode("\n", $content);
$lignes[0] = ta premiere ligne
|
Restreindre un utilisateur à une base
Voici une procédure via mysql (ou tout autres interpréteurs de requêtes sql type :
phpMyAdmin, mysqlfront...) par ex :
create database matable;
GRANT ALL PRIVILEGES ON matable.* to login@localhost identified by
'motdepasse';
flush privileges;
|
ou localhost peut être remplacé par une adresse ip, un nom de machine, une
classe (192.168.% par ex)
Tester si un serveur est up ou down
Voici une méthode (qui utilise fsockopen), très simple à mettre en oeuvre
et qui marche du tonnerre !
================================================
Le serveur de deny est actuellement...
<?php
$test = @fsockopen("monserveur.no-ip.com", 80, &$errno, &$errstr);
if (!$test) {
echo "Offline";
} else {
echo "Online";
fclose($test);
}
?>
|
Aspirateur de pages
Exemple simpliste :
$Html = @file_get_contents($Url);
echo $Html
|
Lister un répertoire en php
<?php
$handle = opendir('.');
while (false !== ($file = readdir($handle)))
{
if(is_dir($file))
echo(" $file \n");
else echo(" $file \n");
}
closedir($handle);
?>
|
Afficher le contenu du dossier courant
<?php
$handle = opendir(getcwd());
//On initialise les variables.
$fichiers = '';
$dossiers = '';
while (false !== ($file = readdir($handle))) {
if(substr(strrchr($file, '.') ,1)) {
// c'est un fichier car il a une extension
$extension = substr(strrchr($file, '.') ,1);
$fichiers .= "<li><a href='voirfichier.php?f=".$file."&
langage=".$extension."'>".$file."</a></li>";
} else { // c'est un dossier
$dossiers .= '<li id="'.$file.'"><
img src="folder.png"> <a href="#'.$file.'" onClick="javascript:voirDossier(\''.$file.'\');">'.$file.'</a></li>';
}
}
echo $dossiers;
echo $fichiers;
closedir($handle);
?>
|
Limiter le nombre de caractères d'une variable
<? print(substr($,0,150))?>
Remplacer les caractères accentués d'une chaîne
function OterAccents($chaine)
// Remplacer les caractères accentués d'une chaîne
{
return( strtr( $chaine,
"ÀÁÂĂÄĆàáâăäćÒÓÔŐÖŰòóôőöűÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿŃń",
"AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn" )
);
}
|
Détection d'intrusion
Certains sites possèdent des applications qui filtrent des codes potentiellement
dangereux visant à s'éxecuter sur le serveur.
Ceci dit, la détection des intrusions y est peu performante.
On peut prévenir la plupart des attaques applicatives
avec des outils de surveillance. La plupart d'entre nous n'ont pas le temps
d'inspecter leur serveur toutes
les 5 minutes ou même chaque jour, ou n'ont pas les droits pour consulter les logs
et on pourrait vous attaquer au moment ou vous allez déjeuner.
Cela serait un excellent commencement que de créer une petite fonction de surveillance.
Voici un code simple écrit en PHP qui détectera une intrusion et
vous préviendra au moment ou elle se produit
function LogIt($error,$input) {
$ip = $_SERVER['REMOTE_ADDR'];
$ho = $_SERVER['HTTP_USER_AGENT'];
$qs = $_SERVER['QUERY_STRING'];
$ti = time();
$log = "$ti | LOG: | $error | $input | $ip | $ho | $qs";
mail("admin@site.com", "bot@site.com", $log);
}
# vous pouvez l'utiliser de la sorte:
if(!is_numeric($input)) {
# If input is not numeric while you expect so, it could be SQL injection.
LogIt("Is not numeric",$input);
} else {
# handle it further.
(int)$input;
}
On peut invoquer cette fonction partout dans votre programme
et indiquer ce qu'elle doit vous rapporter.
|
Convertir des données en utf-8
$var = htmlspecialchars($var, ENT_COMPAT, 'UTF-8');
$var = iconv("UTF-8", "UTF-8", $var)
$var = iconv("ISO-8859-1","UTF-8",$var);
|
Sources de l'article
|