Archive février 2009

Tous les articles archivés pour le mois et l'année demandée.

Récupérer l'adresse IP d'un Internaute

  • Par: jack
  • Le: 21.02.2009 17:46:06
  • Dans: PHP
Il est possible de récupérer l’adresse IP de celui qui visite votre site web.
Noter que ce script est valable si le flag register_globals du fichier php.ini est sur « on ».
Si il est sur « off », les variables précédentes sont accessibles par le tableau php $_SERVER[]:
print( "Votre adresse IP : $_SERVER["REMOTE_ADDR"] );

Voici le code à utiliser :

<?php

print( "Votre adresse IP : $REMOTE_ADDR" );

$hostname = gethostbyaddr( $REMOTE_ADDR );

print( "Le nom de votre serveur : $hostname" );

print( "Le port de connexion : $REMOTE_PORT" );

?>

Contrôle d’accès

  • Par: jack
  • Le: 21.02.2009 17:46:06
  • Dans: PHP
Un contrôle des accès vous permet de protéger une partie ou la totalité de votre site. Tous les concepteurs de site devraient protéger la première page ou utiliser la page de login comme page d’entrée. Les autres pages ne sont souvent pas protégée ni contrôlées. Ce qui implique qu'une personne ayant noté le lien de la seconde page peut accéder à la partie protégée sans s’annoncer et sans contrôle. Il peut entrer sur votre site en tapant le chemin de la seconde page dans sa barre d’adresse.

Nous vous proposons 4 fichiers importants qui vous permettront de protéger toutes les pages de votre site par un simple include.

Voici le principe de fonctionnement. Commencer par inclure le fichier ctrl.asp en début des pages à contrôler. Lorsque la page est demandée par un visiteur, le fichier ctrl.asp contrôle si la variable session a été initialisée. Si c’est le cas, la page est envoyée. Dans le cas contraire, cela signifie que le visiteur ne s’est pas annoncé. C’est donc la page de login qui est envoyée à la place de la page demandée. Si le login et le mot de passe entré par le visiteur est correcte, la page demandée est envoyée.

Les fichiers 

Le fichier ctrl.asp

<%
if session("login")<>"ok" then
  session("origine")=Request.ServerVariables("PATH_INFO")
  response.redirect("ctrl_page/login.asp")
end if
%>

La variable session "login" est contrôlée. Si sa valeur est différente de « ok », cela signifie que la page login n'a pas été utilisée ou que la durée de la session est dépassée. Le fichier va dans ce cas, faire les opérations suivantes :
La page d’origine est mémorisée
La page de login est lancée à la place de la page demandée.
Si la variable session "login" a la valeur ok, rien ne se passe et la page demandée est envoyée.

Exception et classe d'exception avec PHP5

  • Par: jack
  • Le: 21.02.2009 17:46:06
  • Dans: PHP
Notion d’exception
Une exception est une erreur rencontrée lors de l’exécution de votre script.
Vous pouvez déclencher une erreur à tout moment et créer une série d’opérations prévue pour ce genre d’évènements.
Cette nouvelle structure de contrôle introduit try..catch() et throw. De même qu’une nouvelle classe, exception.

throw

throw permet de déclencher une exception lorsqu’une erreur survient. Il vous est possible d’indiquer la nature de l’erreur et de lui associer un numéro d’erreur (optionel).

Exemple

<?php
if (FALSE === file_exists($filename)) {
  throw new Exception('Fichier introuvable.');
}?>
try..catch()
try..catch() est une structure de contrôle d’erreurs. Elle vous permet “d’attraper” une exception survenue dans le bloc try et de la traiter dans le bloc catch.

Exemple
<?php
try {
  if (FALSE === file_exists($filename)) {
    throw new Exception('Fichier introuvable.');
  }
} catch (Exception $e) {
 
  echo 'Message: ' . $e->getMessage() . '<br />';
  echo 'Code: ' . $e->getCode() . '<br />';
  echo 'Fichier: ' . $e->getFile() . '<br />';
  echo 'Ligne: ' . $e->getLine() . '<br />';
}
?>

Définition du type de contenu

  • Par: jack
  • Le: 21.02.2009 17:46:06
  • Dans: PHP
Vous devez savoir que lorsque le serveur Web renvoie un fichier à un navigateur, il indique au navigateur le type de contenu se trouvant dans le fichier. Cela permet au navigateur de déterminer s’il peut afficher le fichier lui-même ou s’il doit faire appel à une autre application.

Par exemple, si le serveur Web renvoie une feuille de calcul Microsoft Excel, le navigateur doit être en mesure de démarrer une session de Microsoft Excel pour afficher la page. Le serveur Web reconnaît les types de fichiers en mappant leurs extensions vers une liste de types MIME (Multipurpose Internet Mail Extensions). Par exemple, pour démarrer Microsoft Excel, le navigateur doit reconnaître le type application/vnd. ms-excel MIME.

<%response.ContentType="application/vnd.ms-excel"%>

ContentType
La propriété ContentType spécifie le type de contenu HTTP de la réponse. Si la propriété ContentType n’est pas spécifiée, le type par défaut est text/HTML.

Syntaxe

Response.ContentType [= TypeContenu ]

Paramètres
Type Contenu
Chaîne décrivant le type de contenu. Cette chaîne présente en général le format type/soustype où type est la catégorie générale du contenu et soustype est le type de contenu spécifique.

Exemples des valeurs les plus courantes :

Pour le type de contenu CDF(Channel Definition Format)
<% Response.ContentType = "application/x-cdf" %>

Pour une page HTML normale
< % Response.ContentType = "text/HTML" %>

Pour une Image
< % Response.ContentType = "image/GIF" %>
< % Response.ContentType = "image/JPEG" %>

Pour le fichier Texte. (Avec cet entête, il devrait être possible de voir le code source de la page. Mais malheureusement, cela fonctionne très mal)
< % Response.ContentType = "text/plain" %>

Pour un Document Word
<% response.ContentType ="application/msword" %>

Pour un Document Excel
<% response.ContentType ="application/x-excel" %> 

Modifier le innodb_log_file_size

  • Par: jack
  • Le: 21.02.2009 17:46:06
  • Dans: PHP
Si vous avez des tables InnoDB avec un gros load d’écriture (insert, update), il est généralement recommandé d’avoir un innodb_log_file_size assez élevé. En effet,  plus la grosseur du log file est élevée, plus le temps de recovery est long dans le cas d’un crash.

InnoDB est un engine capricieux et innodb_log_file_size est l’un de ses caprices. Les logs jouent un rôle très important dans plusieurs concepts d’InnoDB. Il y stock un tas d’information comme le schéma de certains .frm et d’autres metadata. Le problème est qu’on ne peut pas simplement modifier la grosseur du log dans le my.cnf et repartir le serveur. En fait oui, c’est possible et le serveur ne fera pas d’erreur. Mais aucune table InnoDB ne sera utilisable.
Voici comment il faut faire :

• On s’assure que la variable innodb_fast_shutdown ne vaut pas 2.
Si la valeur de innodb_fast_shutdown est 2, il faut la changer pour 1, arrêter le serveur, le repartir, et l’arrêter de nouveau. Ceci permet à InnoDB de fermer correctement.

• On arrête le serveur

• On modifie la configuration

• On renomme le fichier log lui-même

• On repart le serveur

Codes erreurs d’un serveur web

  • Par: jack
  • Le: 21.02.2009 17:46:06
  • Dans: PHP
Lorsque vous travaillez sur internet, les messages suivants  peuvent  s’afficher dans votre navigateur ; Voici leur signification :

301
ce qui signifie site déplacé définitivement

302
veut dire Site déplacé temporairement

400 Bad Request
veut dire que La requête contient une erreur de syntaxe.

401 Unauthorized
veut dire que L'utilisateur n'est pas autorisé à accéder aux données demandées.

402 Payment Required
veut dire que L'accès au contenu de la page demandée est payant.

403 Forbidden
veut dire que L'accès a été refusé pour des raisons que le serveur ne souhaite pas communiquer.

404
Not Found veut dire que Le document demandé n'existe pas.

405
Method Not Allowed veut dire que La méthode HTTP utilisée n'est pas autorisée pour le document demandé.

406
Not Acceptabe veut dire que Le document existe, mais la requête a été présentée sous une forme non acceptée.

407 Proxy Authentification Required
veut dire que Le serveur proxy doit autoriser la requête avant de la transmettre.

408 Request Time-out
veut dire que Le serveur a interrompu la connexion car le client n'a pas réussi à envoyer une requête complète dans le délai qui lui éteint imparti.

409 Conflict
Indique un conflit avec une autre requête ou avec la configuration du serveur. Des informations supplémentaires accompagnent généralement le message d'erreur.

500 Internal Server Error
signifie qu’une partie du serveur (par exemple un programme CGI) a provoqué une erreur ou comporte une erreur de configuration.

501 Not Implemented
indique que Le client a demandé une action, non prise en charge par le serveur.

502 Bad Gateway
veut dire que Le serveur ou le proxy a obtenu des réponses non valables de la part d'un autre serveur ou proxy.

504 Gateway Time-out
c’est l’équivalent à l'erreur 408, à la différence que le dépassement de délai a été, ici, par un proxy ou une passerelle.

505 Version Not Supported
  signifie que Le serveur ne prend pas en charge la version de HTTP utilisée par la requête.

Surveillance DNS avec la console DNS

  • Par: jack
  • Le: 21.02.2009 17:46:06
  • Dans: PHP
La console de gestion DNS comprend une fonctionnalité qui vous permet de surveiller l'activité sur sa console :

Event Logging onglet : ici vous accédez à l'onglet d'enregistrement des événements situés à l'intérieur de la boîte de dialogue Propriétés du serveur DNS. Vous pouvez  préciser les événements DNS que vous souhaitez surveiller. Grâce à l'enregistrement des événements, vous pouvez limiter les événements qui sont écrits dans le journal des événements DNS.

L'onglet Suivi : La surveillance de l'onglet est également situé à l'intérieur de la boîte de dialogue Propriétés du serveur DNS. Cet onglet vous permet de tester l'interrogation du serveur DNS.
Voici le suivi des tests que vous pouvez faire à partir de la surveillance de l'onglet : 

- Une simple requête de test 

- Un test de requête récursive

- Vous pouvez également spécifier que le serveur DNS exécute automatiquement les tests à un intervalle de temps que vous avez défini.

Comment Flush DNS dans Mac OSX

  • Par: jack
  • Le: 21.02.2009 17:46:06
  • Dans: PHP

Dans Mac OS X, vous pouvez utiliser la commande dscacheutil-flushcache pour vider le cache de résolution DNS:

  bash-2.05a $ dnscacheutil-flushcache

Dans Mac OS X versions 10.5.1 et avant, la commande lookupd-flushcache effectuait la même tâche:

  bash-2.05a $ lookupd-flushcache

Quelques commandes FTP

  • Par: jack
  • Le: 21.02.2009 17:46:06
  • Dans: PHP

Les commandes FTP utilisables diffèrent d'un client FTP à l'autre, mais ce sont plutôt un ensemble de commandes FTP standard mis en œuvre dans le client FTP FreeBSD. Quelques unes recensées pour vous :

binaire
Réglez le type de transfert de fichiers binaires à l'appui de transfert d'image.

au revoir

Mettre fin à la session FTP avec le serveur distant et quitter ftp. Une fin de fichier fera également fin à la session et à la sortie.

cas

Toggle ordinateur distant cas de nom de fichier lors de la cartographie get, mget et mput commandes. Lorsque le cas est (par défaut est désactivé), les noms de fichiers d'ordinateur à distance avec toutes les lettres en majuscules sont écrits dans le répertoire local avec les lettres en minuscules tracées.

cd-répertoire distant

Changer le répertoire de travail sur la machine distante à répertoire distance .

! [command [args]]

Invoquer un shell interactif sur la machine locale. S'il ya des arguments, le premier est considéré comme une commande à exécuter directement, avec le reste de l'argumentation de ses arguments.

$ Macro-nom [args]

Exécutez la macro macro-nom qui a été définie avec macdef commande. Les arguments sont passés à la macro unglobbed.

compte [passwd]
Fournir un mot de passe supplémentaire requis par un système distant pour l'accès aux ressources une fois que la connexion a été effectuée avec succès. Si aucun argument n'est inclus, l'utilisateur sera invité à entrer un mot de passe du compte d'un non-écho mode d'entrée.

append local-file [remote-file]

Ajouter un fichier local à un fichier sur la machine distante. Si le fichier à distance est laissé indéterminé, le nom du fichier est utilisé dans le nom du fichier distant, après avoir été modifiée par un NTRANS ou nmap réglage. Le transfert de fichier utilise les paramètres actuels de type, le format, la mode, et de la structure.

ascii

Réglez le type de transfert de fichiers en réseau ASCII. C'est le type par défaut.

cloche

En sorte que la cloche sonne la fin de chaque transfert de fichier de commande est terminée.

 

Protger un dossier WEB : NTFS

  • Par: jack
  • Le: 21.02.2009 17:46:06
  • Dans: PHP

Voici la procédure pour proteger un dossier en acces Http sous IIS 5.0 :

  • Création d'un utilisateur dans la gestion de l'ordinateur

  • Modification des   parametres de sécurité dans IIS

  • Et enfin, ajout de cet utilisateur dans l'onglet Sécurité du repertoire

 

<< 1 2 [3] 4 5 6 7 8 >>