Reposcript.com

Découvrez des scripts, tutoriels PHP - JavaScript - CSS et des thèmes à télécharger

Nous contacter

Mémo : les commandes GNU / Linux de base à savoir

Rédigé par fab1 aucun commentaire

Lorsque l'on commence avec Linux, ce n'est pas toujours très simple au début, pour passer la première "barrière de la langue", je vous propose un petit mémento listant les commandes GNU / Linux de base qui vous seront probablement très utiles si vous êtes un peu perdu avec votre distribution, d'ailleurs j'ai utilisé une Lubuntu pour utiliser l'ensemble des lignes de commandes renseignées dans ce mémo.

Mémento : les commandes GNU / Linux qu'il faut connaître

Se déplacer dans le système de fichiers

Changer de répertoire :

cd

Accéder directement au répertoire :

cd /var/www/html 

Remonter dans l’arborescence des fichiers

cd ..

Afficher et lister les données d'un répertoire

Liste les éléments d'un répertoire :

ls -l

Une variante plus courte qui permet d'obtenir l'ensemble des détails

ll

Le listage est copié dans un fichier texte :

ls > maliste.txt

Le copier - coller en ligne de commande :

Copier le fichier dans un répertoire de destination :

cp mondossier/monfichier.txt dossier/

Copie complète d'un dossier dans un autre répertoire :

cp -r mondossier/ copiedemondossier/ 

Déplacer des fichiers

Déplace le fichier dans un autre répertoire :

mv mondossier/monfichier.txt mondossier/

Renommer un fichier

Renomme le fichier et le colle dans le répertoire courant, il est possible de préciser un autre répertoire de destination :

mv monfichier.txt monfichier2.txt

Supprimer des fichiers

Supprime un dossier et l'ensemble de son contenu :

rm -rv

Se placer dans un répertoire puis lancer cette ligne de commande qui permet de supprimer l'ensemble des fichiers à l'intérieur :

rm -rf *

Cette ligne de commande permet de supprimer l'ensemble des fichiers dans un dossier

rm -rf repertoire/*

Supprime l'ensemble des fichiers mp3 du répertoire courant (cette commande montre comment utiliser un motif à la manière des expressions régulières) :

rm *.mp3

Création d'un fichier / répertoire

Créer un fichier dans le répertoire courant :

touch monfichier.txt

Créer 10 fichiers avec le même nom de base :

touch fichier{1..10}.txt

Création d'un répertoire :

mkdir monrepertoire

Supprimer un répertoire :

rmdir monrepertoire

Ligne de commande diverses

Afficher le contenu d'un fichier :

cat fichier.txt

Connaitre le type d'un fichier :

file fichier.txt

Affiche le nombre de lignes, nombre caractères d'un fichier :

wc monfichier.txt

Afficher les différences entre deux fichiers :

diff monfichier.txt monfichier2.txt

Afficher les lignes qui contiennent echo dans le fichier :

grep "echo" index.php

Classé dans : Linux

Installer et configurer un serveur FTP avec Pure-ftpd sous Ubuntu / Lubuntu

Rédigé par fab1 aucun commentaire

Vous venez d'installer un serveur Apache sur votre distribution Ubuntu ou Lubuntu, mais après cette étape, il devient rapidement nécessaire d'installer un serveur FTP. En effet, il est alors beaucoup plus simple d'administrer ses fichiers sur le serveur web. Si vous êtes dans le même cas que moi et que votre serveur Apache tourne sur une machine virtuelle, vous n'allez à chaque fois vous rendre sur la machine virtuelle pour éditer vos fichiers web. Le problème se pose encore plus si êtes en train de développer une application et que vous réalisez de nombreuses modification.

De plus, vous n'avez pas accès directement à la machine en permanence et de toute façon votre environnement de développement se trouve peut être sous Windows avec des applications qui ne sont pas disponibles sous Linux. Bref, il nous faut un serveur FTP et c'est ce que nous allons voir dans cet article avec un tutoriel pour installer Pure-ftpd sous Ubuntu / Lubuntu ou une distribution proche compatible.

Nous allons voir qu'avec Pure-ftpd la procédure est vraiment très simple même si il faut passer par l'utilisation de quelques lignes de commandes. Rassurez vous c'est vraiment très simple et vous allez pouvoir mettre en place un serveur FTP très rapidement grâce à Pure-ftpd sous Linux. Pour réaliser ce tutoriel j'ai utilisé les distributions Ubuntu et Lubuntu mais il y a de forte chances pour que ce soit fonctionnel sous Debian, Xubuntu, Kubuntu et d'autres. Pour rappel, pour effectuer l'ensemble des ligne de commande il faudra être sous l'utilisateur root qui est accessible à l'aide de la commande suivante dans un terminal :

sudo -s

On va donc maintenant s'attaquer à l'installation de notre serveur FTP sous Linux avec la commande suivante sous root :

apt-get install pure-ftpd pure-ftpd-common

Pure-ftpd va alors s'installer sur votre distribution Linux et il faut savoir que l'ensemble des fichiers de configuration se trouvent alors dans le dossier : /etc/pure-ftpd/

Nous allons créer un utilisateur/groupe système pour notre serveur FTP, si tout se passe bien les commandes suivantes devaient normalement s’exécuter sans problème dans votre terminal sous root :

groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /etc ftpuser

Ensuite, il faut désactiver l’authentification PAM système pour passer sur une authentification avec des utilisateurs virtuels, celle offre bien évidemment une meilleure sécurité pour votre serveur FTP. Il faut aller modifier le fichier /etc/pure-ftpd/conf/PAMAuthentication à l'aide de votre éditeur de texte préféré, cela est possible à l'aide de la commande suivant ou il faudra renseigner "no" dans le fichier.

leafpad /etc/pure-ftpd/conf/PAMAuthentication
no

Cela à pour conséquence de passer la valeur à "yes" dans le fichier de configuration DontResolve qui est faisable à l'aide de la commande suivante :

leafpad /etc/pure-ftpd/conf/DontResolve
yes

Il faut ensuite réaliser la partie des utilisateurs virtuels et cela commence avec la création du fichier 50puredb pour faire le lien. Placez vous dans le répertoire /etc/pure-ftpd/auth/ et réalisez les lignes commande suivante :

cd /etc/pure-ftpd/auth/

ln -s ../conf/PureDB 50puredb

C'est presque terminé maintenant, il ne reste plus qu'à créer le dossier pour votre utilisateur pour de le renseigner à l'aide des commandes suivantes. Un mot de passe vous sera évidemment demandé pour l'authentification de cet utilisateur virtuel.

mkdir /var/www/leprojet
chown -R ftpuser:ftpgroup /var/www/leprojet
pure-pw useradd nomutilisateur -u ftpuser -g ftpgroup -d /var/www/leprojet

Pour vérifier que l'utilisateur virtuel de votre serveur FTP à bien été crée vous pouvez lancer la commande suivante qui va vous permettre de lire le fichier contenant les utilisateurs. Si vous trouvez le nom d'utilisateur dedans, c'est que la création s'est bien passé. Essayez donc :

cat /etc/pure-ftpd/pureftpd.passwd

Enfin pour terminer l'installation, il faut que ce fichier contenant les utilisateurs soit dans un format sécurisé et lisible par le serveur FTP, cela se fait via la ligne de commande suivante :

pure-pw mkdb

Vous pouvez alors redémarrer votre serveur FTP et essayer via votre client FTP si la connexion est possible :

/etc/init.d/pure-ftpd restart

C'est terminé pour l'installation de votre serveur FTP sous Linux, avec le service Pure-ftpd c'est comme vous le voyez vraiment très simple à mettre en place. Il reste toutefois quelques petites commandes à connaitre pour terminer avec Pure-ftpd. On commence avec la liste des utilisateurs disposant d'un compte FTP :

pure-pw list

La ligne de commande pour changer le mot de passe d'un utilisateur FTP :

pure-pw passwd nomutilisateur

La ligne de commande pour supprimer un compte FTP de Pure-ftpd :

pure-pw userdel nomutilisateur

Classé dans : Linux

Vérifier et valider les champs d'un formulaire avec JQuery et le plugin Validate

Rédigé par fab1 aucun commentaire

Il est possible depuis longtemps de vérifier et valider que les informations renseignées dans un formulaire HTML sont au bon format à l'aide de JavaScript, ce qui évite d'envoyer un formulaire pour rien au serveur. Cela évite des aller-retour sur votre serveur car il n'est pas possible pour l'internaute de soumettre un formulaire qui n'est rempli avec des informations correcte.

Bien évidemment, il serait malgré tout impensable de se passer de la vérification coté serveur car il est possible de désactiver le JavaScript dans votre navigateur préféré et surtout de trafiquer les informations envoyées à l'aide de Greasemonkey pour ne citer que lui. D'ailleurs, n'oubliez pas d'aller faire un tour sur les tutoriels concernant l'utilisation des expressions régulières, qui permettent un filtrage très fin et un contrôle précis en PHP des informations envoyées dans le formulaire.

La partie vérification du formulaire JavaScript est donc uniquement là pour valider les informations d'un internaute lambda, si notre script JavaScript trouve des erreurs de saisies dans un formulaire, pourquoi l'envoyer au serveur ? De plus, la partie vérification et validation du formulaire HTML en JavaScript permet de guider l'internaute en direct, si il y a une lettre dans un numéro de téléphone, si le mot de passe n'est pas assez sécurisé, etc ... Mais surtout, gardez bien à l'esprit qu'il faudra de toute façon bien revérifier les informations soumises en PHP sur votre serveur, sinon c'est s'exposer à de gros soucis avec les vilains pirates qui feront tout pour faire tomber votre application en ligne.

En réalité, ce n'est pas vraiment du JavaScript seul que nous allons utiliser, mais le célèbre JQuery qui est une bibliothèque JavaScript très utile, elle simplifie très fortement un très grand nombre de choses. N'oubliez d'aller voir mes autres tutoriels qui utilisent JQuery avec l'utilisation de l’auto-complétion dans un formulaire de recherche, ou encore avec un cas un peu plus concret qui permet de créer un moteur de recherche de fichiers avec auto complétion.

Dans ce tutoriel, nous allons voir l'utilisation de base du plugin jquery.validate qui vous permet de valider de façon très simple et en direct si un champ de formulaire est correctement rempli. Il ne sera pas possible de soumettre le formulaire HTML au serveur tant que les informations ne seront pas correctement renseignées, ce qui permet déjà d'éliminer beaucoup de cas d'erreurs et si votre serveur subit de grosses montées en charge, de ne pas soumettre des formulaires pour rien à vérifier en PHP, enfin au moins pour les internautes "normaux".

Il va donc falloir récupérer les éléments dont nous avons besoin à savoir :

- La bibliothèque JQuery (sans elle ça va vraiment être super compliqué sinon :p)

- Le plugin jquery.validate

- Le fichier additional-methods.js

- Le fichier de langue messages_fr.js (permet d'avoir les messages d'erreurs en Français)

Comme je suis gentil, vous pouvez récupérer l'ensemble de ces éléments dans l'archive zip qui est disponible au téléchargement à cette adresse, cela vous permettra d'éviter d'aller chercher partout sur la toile.

Vous avez maintenant l'ensemble des éléments de base pour commencer ce tutoriel dans de bonnes conditions, on passe donc à la partie HTML et notre formulaire d'exemple. Attention, il faudra bien faire attention au chemins des fichiers pour les différents scripts que vous allez appeler dans le head. J'ai choisi de tout ranger dans un dossier "js" mais libre à vous de faire autrement tant que les chemins sont correct. Vous remarquerez que j’appelle le fichier script.js, je vais en parler juste après cette première partie dédiée à la page de base. Ensuite un petit bout de CSS permet d'aligner un minimum les champs du formulaire et enfin nous avons notre formulaire qui est tout ce qu'il y a de plus basique. La clause class="required" vous permet d'indiquer qu'il faut rendre la saisie de ce champ obligatoire, si vous ne souhaitez pas l'appliquer sur l'ensemble des champs il suffit de retirer cette classe sur l'input.

<html>
<head>
<title>Reposcript.com - Tuto JQuery</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
	<script type="text/javascript" src="./js/jquery.js"></script>
	<script type="text/javascript" src="./js/jquery.validate.js"></script>
	<script type="text/javascript" src="./js/additional-methods.js"></script>
	<script type="text/javascript" src="./js/messages_fr.js"></script>
	<script type="text/javascript" src="./js/script.js"></script>

<style>
span{
display: inline-block;
width: 250px;
}
</style>
</head>

<body>
<form id="formulaire" method="POST" action="">
	<div><span>Nom :</span><input type="text" name="nom" class="required"/></div>
	<div><span>Prenom :</span><input type="text" name="prenom" class="required"/></div>
	<div><span>Tel :</span><input type="digits" name="tel" class="required"/></div>
	<div><span>Email :</span><input type="email" name="mail" class="required"/></div>
	<input type="submit" name="submit" value="Envoyer"/>
</form>
</body>
</html>

On va donc maintenant s'occuper de notre fichier script.js qui sera le seul que l'on va vraiment écrire. Il déterminera le comportement de base du plugin plugin jquery.validate. Nous verrons d'un un autre tutoriel comment faire des choses un peu plus poussées, je voulais ici vraiment me concentrer sur le fonctionnement de base. Le contenu de notre fichier script.js :

$(document).ready(function(){
    // Ajout d'une méthode
    $.validator.addClassRules({
    checkinput:{
        required: true,
        digits: true
    },
    checkemail:{
        required: true,
        email: true
    }	
	
});
    // Execution du plugin du plugin
    $("#formulaire").validate();
});

Avec le code suivant, si le nom ou le prénom est vide vous aurrez un message d'erreur, si le numéro de téléphone ne comporte pas que des chiffres ce sera le cas aussi et enfin vous pourrez même vérifier l’émail. Voila pour la base avec ce plugin jquery.validate. On verra prochainement comment personnaliser les messages d'erreurs, ajouter d'autres clauses de vérifications et etc ...

Classé dans : Tutoriel Javascript

Comment formater un numéro de téléphone et insérer des espaces dans une chaine de caractère avec PHP

Rédigé par fab1 aucun commentaire

C'est un problème qui peut se poser sur vos chaines de caractères un peu particulières et qui nécessitent un petit traitement comme un numéro de téléphone non formaté pour l'affichage. Nous allons voir comment cela est facile à résoudre à l'aide de la fonction wordwrap(). Prenons par exemple le cas d'un numéro de téléphone français qui serait stocké de la manière suivante dans votre base de données MySQL par exemple : "0102030405".

La problématique est alors la suivante : vous voulez que l'affichage des numéros de téléphones soit clair pour vos utilisateurs et faire malgré tout des économies de mémoire sur votre serveur de base de données qui stocke un grand nombre de numéros de téléphone en ne sauvegardant pas les numéros avec leurs espaces qui sont présents tout les deux caractères. On fait des économies d'espace mémoire mais c'est pas très joli.

Comme d'habitude en programmation il existe un grand nombre de solutions possibles pour un problème donné. La première fois que j'ai cherché à résoudre ce problème, je suis passé sur de très nombreux forum avec différentes techniques. Si j'écris cet article, c'est pour aider ceux qui tomberont ici et éviter qu'ils cherchent longtemps la solution à ce problème d'espace tout les x caractères dans une chaine.

J'ai d'abord vu les bourrins qui proposaient de faire un for avec du strlen et du substr, ce que revient à 5/6 lignes de codes avec la présence d'itération. En gros je compte deux caractères, j'ajoute un espace et ainsi de suite. Bof, pas terrible de faire des boucles pour un truc aussi simple ...

Ensuite je suis tombé sur les amoureux des d'expressions régulières qui proposaient différentes solutions plus ou moins simples selon la qualité de l’expression régulière concoctée. Attention je ne dis pas que ce n'est pas la bonne solution, mais si vous avez bien suivi le contexte, je trouve ça encore un poil trop lourd pour ce que je cherche à faire. J'aime le simple en programmation, je veux des KISS partout moi :p Bon je ne suis pas totalement réfractaire à ce genre de solution et voici un petit exemple qui fonctionne si on souhaite ajouter un espace tout les deux caractères ce qui correspond à notre besoin concernant le numéro de téléphone non formaté :

<?php 

$string = '0102030405';
echo preg_replace('#(\d{2})#', '$1 ', $string);

?>

Mais ce n'est pas encore parfait à mon gout car ce n'est pas assez simple. C'est à ce moment que j'ai découvert la fonction wordwrap() et franchement, pour le besoin de formater un numéro de téléphone que nous avons, il va être difficile de faire plus simple et surtout clair à comprendre. Cette fonction wordwrap s'utilise alors de la manière suivante sur notre numéro de téléphone français :

<?php

$string = '0102030405';
echo wordwrap($string,2, " ",1);

?>

Je vous laisse consulter la documentation officielle de PHP pour plus d'informations sur cette fonction wordwrap qui peut donc s’avérer très pratique.

Classé dans : Tutoriel PHP

Serveur LAMP : installer et configurer phpMyAdmin sous Ubuntu / Lubuntu

Rédigé par fab1 aucun commentaire

Une fois que vous avez installé votre serveur LAMP sous votre distribution Linux préférée, vous avez peut être envie d'avoir une interface graphique pour pouvoir gérer votre base de données MySQL, ce qui est il faut bien l'avouer, bien plus pratique. Comme vous le savez probablement il existe plusieurs solutions pour visualiser et exploiter de façon graphique votre base de données MySQL. Je ne vais pas être très original et ce tutoriel va vous montrer comment installer et surtout configurer l'outil phpMyAdmin qui est de loin le plus utilisé dans ce domaine.

Sous Linux, ce n'est pas aussi simple que d'installer un WampServer ou un EasyPHP sous Windows qui proposent directement phpMyAdmin avec la bonne configuration qui va bien. Sous Linux, ce n'est pas beaucoup plus compliqué finalement mais cela nécessite tout de même quelques manipulations.

Pour ceux qui débarquent un peu dans ce domaine, cette configuration fonctionne parfaitement dans un environnement Ubuntu / Lubuntu et donc si vous choisissez l'une de ces distributions vous avez l'assurance que cela ne vous posera pas de problèmes. On commence avec l'installation de phpMyAdmin via la ligne de commande suivante, il faudra bien évidemment faire l'ensemble de ces manipulations sous l'utilisateur root :

apt-get install phpmyadmin

Ensuite une fois le paquet installé, si vous souhaitez accéder à http://localhost/phpmyadmin/ ou http://127.0.0.1/phpmyadmin/ vous allez constater que cela ne fonctionne pas encore, même si votre serveur Apache est bien démarré. Il faut alors réaliser une petite étape de configuration qui est vraiment très simple. Il faut alors éditer le fichier /etc/apache2/apache2.conf qui comme son nom l'indique est un fichier de configuration pour votre serveur Apache2. Pour l'ouvrir sous Lubuntu, vous devez alors taper la ligne de commande suivante en étant sous l'utilisateur root :

leafpad /etc/apache2/apache2.conf

Dans ce fichier il suffit alors d'ajouter cette simple ligne à la fin :

Include /etc/phpmyadmin/apache.conf

Enfin il faut redémarrer votre serveur Apache avec la ligne de commande suivante toujours avec root :

/etc/init.d/apache2 restart

Normalement, si vous avez bien respecté les différentes étapes, vous pouvez maintenant joindre phpMyAdmin aux adresses http://localhost/phpmyadmin/ ou http://127.0.0.1/phpmyadmin/ selon votre configuration à ce niveau

Classé dans : Linux