Téléchargements gratuits
Ressources pédagogiques, tests de maths et programmation Delphi, PHP, TI-82/83/84/76
Contacts pédagogie, programmation, calculatrice TI

PHP : HyperText Preprocessor

Nombre de visites depuis le 22/11/2000 : 157 988


 

PHP est langage de scripts très récent. A la différence de javascript il est interprété sur le serveur ce qui lui confère une robustesse et une stabilité plus grande.


De plus il est gratuit et fonctionne dans la plupart des environnements (Unix, Windows, Mac, LINUX,...)


Il connaît un succès phénoménal et dans la communauté PHP, qui s'agrandit à grande vitesse, règne un esprit de partage fort sympathique. 

 

Pour pouvoir l'utiliser, il faut que l'hébergeur de votre site l'ait installé et vous le propose. C'est le cas chez FREE, CHEZ, MULTIMANIA/LYCOS (si vous n'avez pas peur des pubs envahissantes sur ce dernier !) et sur la plupart des autres...


Pour l'utiliser confortablement il faudra l'installer sur votre machine mais c'est très simple et de nombreux sites fournissent toutes les informations et le matériel nécessaire (cf. bonnes adresses ci-dessous).

 

 

PHP permet d'automatiser la gestion des sites : haut et bas de page identiques sur toutes les pages, menus, sondages, forums, listes de diffusion... Il permet surtout l'utilisation des bases de données ce qui en fait un outil très professionnel.

Moi ce qui m'intéresse pour le moment c'est le pédagogique aussi j'ai trouvé là un moyen de réaliser des questionnaires corrigés en ligne, plus performants, plus fiables et plus rapides à réaliser que ceux que je faisais auparavant en HTML et corrigés par javascript.

Il m'offre aussi la possibilité de gérer mon site plus efficacement et de le rendre plus dynamique.


 
KikChat
  Venez chatter en direct
avec moi, si je suis en ligne !
 

Pour le moment 5 scripts  et quelques astuces :

 

1 er script : F_Quest.php

Questionnaire auto-corrigé à réaliser en quelques minutes 


Il suffit d'ouvrir f_quest.php avec le bloc-notes (ou tout autre éditeur en mode texte pur) et d'y entrer, aux emplacements précisés, quelques lignes :
  • changer le titre qui apparaît dans les barres de windows
  • changer le titre du haut de la page
  • ajouter les questions et les bonnes réponses correspondantes.
-----------------------------------------------------------------
$question[0]="Quelle est la couleur du cheval blanc d'Henri IV ?";
$question[1]="Quel est le jour de repos ?";
$question[2]="Quelle est la saison la plus chaude ?";
etc.............................

$bonne_rep[0]="blanc";
$bonne_rep[1]="dimanche";
$bonne_rep[2]="été";
etc.............................
----------------------------------------------------------------
Le nombre de questions est quelconque et ne dépend que de votre imagination.

Il faudra bien sûr sauvegarder le fichier modifié, l'envoyer dans votre répertoire, sur votre site, chez votre hébergeur et l'appeler depuis une de vos pages.

Une fois que le questionnaire aura été rempli par les visiteurs de votre site, leur score sera affiché. 

C'est absolument tout ce qu'il y a à faire.

 

Nouvelle version (05/03/12) pour les dernières versions de PHP, les variables globales à OFF et les navigateurs récents

 

05/03/12

      /////////////////////////////////////////////////////////////////////////////////////////

      // Remplacement de $HTTP_POST_VARS par $_POST pour les versions récentes de PHP (>4.01)//

      // Absolument nécessaire sur certains serveurs, ex : SFR, ORANGE...                    //

      /////////////////////////////////////////////////////////////////////////////////////////

Tester le script Questionnaire

Haut de la page
2ème script : F_QCM.php

Questionnaire à Choix Multiples auto-corrigé à réaliser en quelques minutes 


C'est presque pareil :
il suffit d'ouvrir f_qcm.php avec le bloc-notes (ou tout autre éditeur en mode texte pur) et d'y entrer, aux emplacements précisés, quelques lignes :
  • changer le titre qui apparaît dans les barres de windows
  • changer le titre du haut de la page
  • ajouter les questions, les différents choix possibles  et les bonnes réponses correspondantes
les questions, les différents choix possibles et les bonnes réponses correspondantes.
-----------------------------------------------------------------------------------
$question[0]="Quelle est la couleur du cheval blanc d'Henri IV ?";
$choix[0]=array("blanc","bleu","rouge","vert");
$bonne_rep[0]=$choix[0][0];

$question[1]="Quel est le jour de repos ?";
$choix[1]=array("lundi","dimanche","samedi");
$bonne_rep[1]=$choix[1][1];

$question[2]="Quelle est la saison la plus chaude ?";
$choix[2]=array("hiver","automne","printemps","été");
$bonne_rep[2]=$choix[2][3];

$question[3]="PHP est un langage interprété sur le serveur ?";
$choix[3]=array("vrai","faux");
$bonne_rep[3]=$choix[3][0];

etc....
etc...
etc...
-----------------------------------------------------------------------------------
C'est absolument tout ce qu'il y a à faire.

Nouveau 03/01/04

Ce script est maintenant fourni en 2 versions :

  • F_QCM.PHP : l'ancienne version (réponses courtes ou peu nombreuses) avec affichage de tous les choix sur une même ligne
  • F_QCM_RL.PHP : la nouvelle version (Réponses Longues) avec affichage de tous les choix à raison d'un par ligne.

Un petit bout de JavaScript a été ajouté, en début de page, afin d'empêcher le retour à la page précédente (particulièrement gênant lorsque les bonnes réponses ont été données !)

Il faudra bien sûr sauvegarder le fichier modifié, l'envoyer dans votre répertoire, sur votre site, chez votre hébergeur et l'appeler depuis une de vos pages.

Une fois que le qcm aura été rempli par les visiteurs de votre site, leur score sera affiché. 

Un QCM est souvent préférable à un questionnaire car avec ce dernier il y a souvent ambiguïté et des réponses justes mais pas tout à fait identiques à celles espérées ne seront pas acceptées.
ex: pour la saison la plus chaude si l'utilisateur tape :  l'été au lieu de été ou encore s'il tape eté !
 
Ces scripts peuvent fonctionner sous PHP4.

Nouvelle version (05/03/12) pour les dernières versions de PHP, les variables globales à OFF et les navigateurs récents

 

05/03/12

      //////////////////////////////////////////////////////////////////////////////////////////

      // Remplacement de $HTTP_POST_VARS par $_POST pour les versions récentes de PHP (>4.01) //

      // Absolument nécessaire sur certains serveurs, ex : SFR, ORANGE...                     //

      //////////////////////////////////////////////////////////////////////////////////////////

 


Télécharger l'archive avec les 3 programmes (16 ko)
Téléchargé 10 256 fois

 

 

Trucs et astuces en PHP

Truc n° 0

Ouvrir une page en PHP

 

Ouvrir une page en PHP et bien c'est exactement la même chose qu'ouvrir une page en HTML : on tape son adresse dans la barre du navigateur ou on clique sur un lien qui renferme son adresse.

Elle doit simplement porter l'extension .php au lieu de .htm !

 

Ca change quoi ? Hé bien ça veut qu'elle est devenue une page dynamique et qu'elle sera reconnue et modifiée (interprétée), par le serveur qui l'héberge (si bien sûr, il gère le PHP, ce ce qui est pratiquement le cas général, actuellement), en fonction du ou des scripts PHP qu'elle contient.

 

Exemple simple (simpliste !). Soient les pages :

 

page0.htm (source)

<html>

<head>

<title>page0</title>

</head>

<body>

Nous sommes le 3/2/08

et il est actuellement 16:30

</body>

</html>

Aucun intérêt, c'est une page statique : elle affichera tout le temps la même information qui de plus sera fausse !

 

PHP, depuis le serveur, grâce à un petit script, inclus dans la page, va la transformer en page dynamique

 

page1.php (source)

<html>

<head>

<title>page1</title>

</head>

<body>

<?php

$date = date("d/m/Y");

$heure = date("H:i:s");

echo("Nous sommes le $date <br>et il est actuellement $heure");

?>

</body>

</html>

A chaque chargement de cette page, le serveur (à distance) prendra sa propre date, au moment du chargement et l'affichera sur la page envoyée, donc au départ !

 

Mais ceci peut aussi être effectué sur le poste du visiteur grâce à un petit script JavaScript, inclus dans la page, grâce à son navigateur (FireFox ou Internet Explorer (si bien sûr Javascript est activé (99 fois sur 100 !))

 

page2.htm (source)

<html>

<head>

<title>page2</title>

</head>

<body>

<script type="text/javascript">

dateheure = new Date();

document.write("Nous sommes le "+dateheure.getDate()+"/"+(dateheure.getMonth()+1)+"/"+dateheure.getFullYear()+"<br>"); document.write("et il est actuellement "+dateheure.getHours()+":"+dateheure.getMinutes()+":"+dateheure.getSeconds());

</script>

</body>

</html>

A chaque chargement de cette page, le navigateur (en local) prendra la date du poste utilisateur, au moment du chargement et l'affichera sur la page chargée, donc à l'arrivée !

 

Et si comme moi, ci-dessous, vous mettez les 2 scripts sur la même page (.PHP !) et que, bien sûr, javascript est activé sur votre ordinateur, voici ce que vous verrez :

 

Date du serveur FREE(en PHP)
Date de votre poste (en javascript)
Nous sommes le 25/04/2024
et il est actuellement 00:04:45


 

Vous pourrez constater qu'il y a souvent une différence entre les 2 résultats obtenus, et qu'en plus du temps de transfert et d'affichage (minimes), le serveur et le poste utilisateur sont rarement à l'heure correcte et synchrones !

 

Il faudra, peut-être, en tenir compte pour certains scripts qui doivent s'exécuter à une heure donnée très précise !

 

Pour ce qui est d'écrire, (enregistrer) de petits renseignements, (nombre de visites, couleur de la page sélectionnée, type d'écriture choisi...) cela pourra se faire sur le poste de l'utilisateur, également en javascript ou PHP, grâce au cookies.

 

Mais pour enregistrer, des choses plus conséquentes (messages d'un forum, résultats de tests...) cela devra être obligatoirement fait sur le serveur de l'hébergeur et avec un langage plus évolué, tel que PHP, ASP, avec écriture dans des fichiers textes ou dans des bases de données.



Truc n°1

Affichage "normalisé" pour un compteur

Il est traditionnel d'afficher le résultat d'un compteur sous la forme : 001365 (avec 6 chiffres ici).


Pas besoin de réinventer la roue, PHP a ce qu'il faut. si $visiteurs est la valeur à afficher :

 

printf("%06d",$visiteurs);


Truc n°2
Affichage correct d'un nombre (plutôt grand)

Supposons que vous ayez mis un compteur de téléchargement pour un logiciel diffusé sur votre site et qu'il doive afficher :

 Téléchargé 1234567890 fois

 Pas très lisible !  Là encore il y a ce qu'il faut, à l'aide de 2 fonctions :

number_format(1234567890)

qui donne 1,234,567,890   (hé oui, nos  camarades américains séparent les tranches de 3 chiffres par des virgules)  puis :

str_replace(","," ",number_format(1234567890))

qui remplacera les virgules par des espaces, comme on le fait chez nous, et donnera 1 234 567 890 ce qui est quand même plus facile à lire !

 Et pourquoi pas une petite fonction :

 

     function tranche_nb($nombre)
        {
            $rep=str_replace(","," ",number_format($nombre));
            return $rep;
        }

que l'on utilisera comme ceci :

echo "Téléchargé ".tranche_nb($nb_telech)." fois";

si $nb_telech est la variable incrémentée à chaque téléchargement effectué.

Enfer et putréfaction ! 0n peut encore faire plus simple en passant 4 arguments à la fonction number_format, ce qui donnerait :

   function tranche_nb($nombre)
        {
            $rep=number_format($nombre,0,","," ");
            return $rep;
        }

Argument 1 : le nombre à formater, argument 2 : le nombre de décimales (ici 0), argument 3 : le séparateur décimal (, ou .), argument 4 : le séparateur de milliers (l'espace chez nous).



Truc n° 3
Appeler un script PHP depuis une page HTML 

(sur un serveur qui gère le PHP évidemment, encore que l'on pourrait peut-être aller charger le script sur un autre serveur qui lui gère le PHP ?)

Exemple : on veut appeler le script logueur.php (cf ci-dessus)
La solution nous est fournie par JavaScript :

<SCRIPT language="Javascript" src="http://www.monjolisite.com/logueur.php"></SCRIPT>

Mais me direz-vous si le visiteur a désactivé JavaScript (ce qui est le cas de quelques % des internautes) alors là encore il y a un moyen en rusant un peu :

On demande au navigateur de cet internaute d'aller charger une image :

<IMG src="http://www.monjolisite.com/logueur.php"  width="1" height="1" border="0">

Image réduite, pas de bordure : on ne voit rien sur la page appelant le script et cela fonctionne.

Une dernière remarque en passant : il faut être méfiant mais quand même pas trop ! D'après ce que j'ai pu lire, pour être en parfaite sécurité il n'est pas nécessaire de désactiver Javascript (sauf peut-être dans les messages, possibilité qui n'est, hélas,  offerte clairement que par NetScape et l'excellent Mozilla bien évidemment !).
   


 

Truc n° 4

Ecrire automatiquement la traduction des caractères accentués et spéciaux 

Comme vous le savez sûrement, il faut, en HTML, remplacer nos caractères accentués ou spéciaux par des chaînes de caractères affichables par tous les navigateurs du marché, sous peine d'afficher sur certains d'entre-eux, en particulier ceux des étrangers ou certains plus exotiques, un affreux et incompréhensible charabia.

Ainsi : 
        é doit s'écrire &eacute;
        à     "     "   &agrave;
        ê     "     "   &ecirc;
        ç     "     "   &ccedil;
        etc...
En temps ordinaire pas de problème c'est votre bon éditeur html qui se charge de faire la conversion, mais dans un script PHP vous êtes obligé de le faire vous-même et c'est plutôt fastidieux, à moins d'utiliser un utilitaire qui le fera pour vous.

Il y a encore plus simple une fonction de PHP peut faire le travail : htmlentities()

ainsi si vous écrivez :

$texte ='C'est comme ça que je l'ai réalisée à Noël';
echo htmlentities($texte);
votre navigateur affichera bien : C'est comme ça que je l'ai réalisée à Noël.
Mais si vous allez lire le source, vous constaterez qu'il contient :
C'est comme &ccedil;a que je l'ai r&eacute;alis&eacute;e &agrave; No&euml;l.
Ce qui veut dire que cela passera correctement partout.

Attention si vous voulez mettre un retour à la ligne n'écrivez pas :

echo htmlentities($texte."<br>"); le caractère '<' ne serait pas interprété mais traduit en &lt; et donc cela ne fonctionnerait pas.

Il faut écrire : echo htmlentities($texte)."<br>";

La fonction htmlspecialchars() ne traduit que les caractères
& : &amp;
 " : &quot;
 < : &lt;
 > : &gt;
qui jouent un rôle très important en html.


Truc n° 5 
Ecrire dans un fichier texte

Si vous voulez écrire des renseignements dans un fichier, une phrase par ligne,  vous faites :
<?php
// ouverture avec possibilité d'ajout

   $fp=fopen('mon_ficabc.txt','a');
    fputs($fp,$ma_phrase."\n");
    fclose($fp);
?>
  si vous relisez ce fichier avec un navigateur ou un éditeur html pas de problème  mais si vous prenez un éditeur de textes, par exemple le Bloc-Notes de Windows, toutes vos phrases seront collées bout à bout !

Il faut écrire :

<?php
   $fp=fopen('mon_ficabc.txt','a');
    fputs($fp,$ma_phrase."\r\n");
    fclose($fp);
?>

Pour avoir en fin de ligne le fameux couple CR/LF (Carriage Return/Line Feed : retour chariot/fin de ligne) codé en hexadécimal : 0D/0A.

Et là tout fonctionne...
 
Haut de la page


 

Fichiers "log" journaliers


Vous aimeriez sans doute savoir quel est le nombre de visites reçues, par jour, par chacune des pages de votre site et ceci de manière automatique, évidemment !

 

Deux petits scripts PHP et quelques petits fichiers textes suffiront amplement pour un site moyennement fréquenté.

 

1-Ecriture du fichier log :

 

Appelons logj.php ce fichier dont le contenu pourrait être :

-----------------------------------------------------------------------

<?php

// prise de la date du jour

  $dj = date("_d_m_Y"); //ex _25_07_2007 (et à partir de minuit 26_07_2007 !)

  $page = $_SERVER['PHP_SELF']; // nom de chaque page qui appelle le script ex : /page0.php

  $page = str_replace("/","",$page); //on enlève le slash (/)

  $posi = strrpos($page,'.'); // puis l'extension (on suppose qu'il y en a toujours une !)

  $page = substr($page,0,$posi);

 

  $fp = fopen("log_".$page.$dj.".txt", "a+"); // ouverture du fichier log_page0_25_07_2007.txt en ajout. Si le fichier n'existe pas il est créé

  fputs ($fp,"1"); // on ajoute 1 à la ligne (1ère visite 1, 2ème : 11, 3 ème : 111, etc...)

  fclose($fp); // on ferme le fichier

?>

-----------------------------------------------------------------------

Ce fichier sera inclus dans chacune des pages que vous désirez surveiller :

 

<?php include "logj.php"; ?>

 

2-Lecture du fichier log

 

Pour lire ces petits fichier un autre petit script : lit_logj.php :

-----------------------------------------------------------------------

<html>

<head>

<title>log sur mon_site</title>

</head>

<body>

<?php

  function NbVisit($fic)

  {

    if (!(file_exists($fic)))

      { return 0; } // 0 visite pour cette page pour le moment !

   else

    {

      $fp = fopen($fic,"r"); // ouverture du fichier en lecture seule

      $Ligne = fgets($fp,4096); // On récupère une ligne, qui peut être longue !

      return (strlen($Ligne)); // longueur de la ligne = nombre de visites

      fclose($fp); // On ferme le fichier

    }

  }

// prise de la date du jour

  $dj = date("_d_m_Y");

 

// appel de la fonction pour chaque page que l'on veut surveiller

  $nb[0] = NbVisit("log_"."page0".$dj.".txt");

// Affichage du résultat

  echo "Nombre de visites sur la page0 : ".$nb[0]."<br>";

// idem

  $nb[1] = NbVisit("log_"."page1".$dj.".txt");

  echo "Nombre de visites sur la page1 : ".$nb[1]."<br>";

 

// etc...

?>

</body>

</html>

-----------------------------------------------------------------------

 

Pour connaître vos statistiques journalières, appelez ce script depuis la barre de votre navigateur : http://monsite.fr/lit_logj.php ou mieux créez un raccourci vers celui-ci.

 

Vous n'avez peut-être pas envie d'incrémenter vos compteurs, quand vous allez vous même sur vos pages. C'est possible de le faire en appelant vos pages, depuis la barre du navigateur ou un lien, avec un paramètre (mais pas en appelant depuis le site lui-même !):

 

3-Ne pas enregistrer ses propres traces

 

http://mon_site.fr/page0.php?visiteur=toto et en modifiant logj.php ainsi :

.....

  if ( !(isset($visiteur) && ($visiteur == "toto"))) // ce n'est pas moi qui appelle

  {

    $fp = fopen("log_".$page.$dj.".txt", "a+");

    fputs ($fp,"1");

    fclose($fp);

  }

?>

 

4-Ne pas enregistrer les robots indexeurs

 

On peut aussi connaître la langue principale d'un visiteur grâce à la variable globale PHP : HTTP_ACCEPT_LANGUAGE

 

$langue = substr($_SERVER["HTTP_ACCEPT_LANGUAGE"], 0, 2); // renvoie : "fr", "en" "pt",...

 

Et j'ai remarqué que, pour la plupart des robots qui parcourent sans arrêt les sites pour les indexer, cette chaîne est vide : "" !

 

Pour ne pas que ces robots incrémentent inutilement vos compteurs vous pourriez modifier le script ainsi :

 

if ( $langue != "")

// on peut aussi constater que leur nom (gethostbyaddr($_SERVER['REMOTE_ADDR'])) contient la plupart du temps les mots "crawl" ou "bot"

{

...

}

 

02/11/07 J'ai constaté, ces derniers temps, que de plus en plus de téléchargements qui ne semblaient pas venir de ces robots comportaient aussi une chaîne vide !???? Cette information est donc à prendre avec prudence...

 

Il est alors possible de combiner les conditions précédentes pour avoir une statistique plus réaliste des visites.

 

Et je vous laisse faire pour une mise en page attrayante, calculer les totaux, les pourcentages, réaliser les graphiques...

 

Une dernière petite chose pour aujourd'hui : vous pouvez même vous envoyer automatiquement ces statistiques, à chaque fin de chaque journée, dans votre boîte au lettres personnelle.

 

5-S'envoyer un mail automatique avec les résultats

 

Encore un petit script, soit EnvStats.php :

-----------------------------------------------------------------------

<?php

  $dj = date("_d_m_Y"); //on prend la date du jour

 

  $FicTemoin = "Envoi".$dj.".txt"; // fichier bidon dont la présence indique que l'envoi des statistiques a déja été effectué

 

  if (!(file_exists($FicTemoin))) // nexiste pas encore

  {

    $dj_1 = date("_d_m_Y",time()-3600*24); // date du jour précédent

 

   function NbVisit($fic)

   {

     // ... comme précédemment

   }

 

  $titre = "Statistique de monsite pour le ".$dj_1;

 

  $nb[0] = NbVisit("log_"."page0".$dj_1.".txt");

  $message = "Nombre de visites sur la page0 : ".$nb[0]."\r\n";

  $nb[1] = NbVisit("log_"."page1".$dj_1.".txt");

  $message .= "Nombre de visites sur la page1 : ".$nb[1]."\r\n";

  //etc

  mail("monadresse@monfai.fr",$titre,$message);// envoi du message

 

  $fp = fopen($FicTemoin , "a+");// écriture du fichier témoin en ajout et création

  fputs ($fp,"Envoyé le ".date("d/m/Y à H:i")); // ou n'importe quoi, ou même rien !

  fclose($fp);

  }

?>

-----------------------------------------------------------------------

Mettez ce script dans votre page principale <?php include "EnvStats.php"; ?>

et votre premier visiteur vous enverra, à son insu, l'unique message des statistiques !

 

Les hébergeurs gratuits, dont FREE, autorisent maintenant l'envoi de quelques dizaines d'exemplaires d'un même mail par jour et de quelques centaines ou milliers par semaine (?).

 

Haut de la page

 

Visionneuse de diapos sur internet
ou
PHP à la rescousse de JavaScript
(ou vice-versa)

Nouvelle version du 21/04/03 encore plus automatique !


Faire défiler des images, à l'aide de 2 boutons, un petit script javascript, inclus dans la page html, peut facilement réaliser ceci.

Petit plus : la légende est automatiquement ajoutée, c'est le nom de l'image débarrassé de son extension.

Mais il faut quand même un peu intervenir dans le source du script pour :

  • mettre les noms des images
  • leur taille commune
  • définir la taille de la visionneuse
C'est là que PHP intervient :
  • il répertorie toutes les images du dossier courant, calcule leur nombre puis les enregistre dans un tableau
  • calcule leur taille
  • adapte la taille de la visionneuse en conséquence

Autrement dit il n'y a plus rien à faire, sauf à placer les images et le script PHP dans le dossier voulu !

Ces 2 langages de script sont absolument complémentaires : PHP sur le serveur pour préparer le travail et JavaScript sur le poste de l'utilisateur pour l'effectuer.

Ce script présente en outre un exemple de passage de variables de PHP à JavaScript.

 

Quelques petites restrictions quand même :

  • les images doivent toutes avoir la même taille
  • elles ne doivent pas être trop grosses ou trop nombreuses car elles sont préchargées au chargement de la page
  • leur nom, qui deviendra la légende de l'image, ne doit pas comporter d'accents
  • il s'agit ici d'images au format JPG mais cela peut facilement être modifié

Il faut aussi qu'internet soit assez véloce. Les jours, trop nombreux, où il pédale dans la semoule, il vaut mieux penser à autre chose.

 

Tester le script diaporama

 

Télécharger l'archive (21/04/03) avec les 2 scripts (JavaScript seul et avec PHP 205 ko)


Téléchargé 5 650 fois

 

Haut de la page


Formulaire et répondeur presque automatique


Vous avez un site et de nombreux visiteurs qui le consultent.

Vous avez envie, et c'est bien normal, d'établir un contact avec eux.

Quoi de plus pratique que d'utiliser un formulaire pour satisfaire votre curiosité.

En quelques clics, ils pourront vous donner les renseignements qui vous permettront de répondre à leurs besoins et d'améliorer la qualité de votre travail.

Plusieurs possibilités :

Le formulaire en HTML :

form name="form1" method="post" action="mailto:votre_nom@serveur.fr" puis

les différents champs : nom, prénom, email, message....

L'utilisateur le remplit, l'envoie et bien entendu attend une réponse.

 

Comme il est très probable que vous répondiez pratiquement toujours la même chose, un fichier signature avec le texte de réponse fera parfaitement l'affaire.

Répondre, Envoi et c'est parti...

 

Mais (car il y en a toujours un et même souvent plusieurs !) l'expéditeur vous dévoile ainsi son adresse email et beaucoup ne le souhaitent pas. De plus certains FAI (Fournisseurs d'Accès à Internet) interdisent l'utilisation des formulaires (ils arrivent vides pour ceux provenant de chez AOL !) et certains logiciels de courrier sont configurés pour ne pas les autoriser non plus.

En outre il faut que votre correspondant réponde depuis chez lui, à partir de sa machine ou depuis une machine sur laquelle le logiciel de courrier est correctement configuré mais à ce moment là vous aurez l'adresse d'une autre personne !

2 ème solution : le script CGI offert parfois par votre hébergeur (ex Form2Mail chez FREE) qui récupère le formulaire, même anonyme et l'envoie dans votre boite. Il peut même envoyer un accusé de réception (result.htm chez FREE).

Vous pouvez aussi passer par un autre intermédiaire gratuit qui souvent ajoutera une pub au message envoyé.

Pas mal, mais vous êtes tributaire du tiers qui vous retransmet le message. Pour la réponse, un fichier signature fait aussi l'affaire mais il faut quand même taper le sujet du message.

La personne qui vous contacte, si elle veut obtenir une réponse doit alors taper son adresse email.Et il faut savoir, qu'en moyenne, environ 2 personnes sur 10 se trompent en tapant cette adresse !

La meilleure solution, vous l'aurez compris si vous lisez cette page et avez un hébergeur qui autorise le PHP (ce qui est très majoritairement le cas actuellement), c'est encore une fois ce merveilleux langage qui va nous la fournir grâce à :

 

- un formulaire réalisé en PHP

- un script également en PHP qui fera office de lecteur/répondeur et qui, en 2 clics, et sans rien écrire, vous permettra de répondre au message envoyé.

 

Le formulaire (formul.php):

Un formulaire tout à fait classique avec ses différents champs (nom, prénom, adresse, email, message,...) que vous pouvez réaliser avec votre éditeur HTML habituel. Il porte l'extension .PHP et s'appelle lui même.

form name="form1" method="post" action="formul.php"


Quelques lignes de PHP pour récupérer les différents champs et les écrire dans un fichier texte.

<?php
$nom = htmlspecialchars($_POST["nom"]);
$prenom =
htmlspecialchars($_POST["prenom"]);
..................

(htmlspecialchars() pour contrer les éventuels  piratages par injection de code html, javascript...(XSS). En contrôlant ainsi les entrées)



fputs ($fp,"nom = $nom\n");
fputs ($fp,"prénom = $prenom\n");


Un traitement un peu particulier du champ email lui permet de préparer le message à envoyer :destinataire + objet + texte(sur plusieurs lignes) en différenciant 2 traitements selon que vous utilisez Mozilla ou Outlook Express, pour le codage des retours chariot (Entrée).

fputs($fp,"email = <a href=\"mailto:$email?subject=$sujet&body=$body\">$email</a>\n");
Il faut aussi penser à ne pas mettre d'espaces ordinaires dans subject et body mais les coder "en dur", c'est à dire mettre leur valeur hexadécimale (%20)


1°) Tester le script formulaire (de préférence, le remplir avec un e-mail bidon !)

Le lecteur/répondeur (litformul.php):

Un petit script, protégé quand même par un mot de passe, pour lire, lire&vider, effacer et afficher dans une page HTML tous les messages reçus.

L'adresse de votre correspondant étant affichée sous forme de lien, il suffit de cliquer dessus ce qui provoque le chargement de votre logiciel de courrier avec un message tout prêt (destinataire + objet + texte).

Il suffit de cliquer sur Envoyer.

Une vérification de certains champs est ici faite en PHP mais il serait préférable d'ajouter un script Javascript qui fait ce travail avant l'envoi.

La meilleure solution, toujours en PHP, pour avoir un répondeur vraiment automatique, serait de pouvoir utiliser la fonction mail(...) mais elle est très souvent désactivée, limitée chez les FAI/hébergeurs, et on pourrait dire heureusement, vu le nombre de messages non-désirés qui encombrent déjà nos messageries électroniques.

 

2°) Tester le script lecteur/répondeur (après avoir rempli le formulaire du script ci-dessus. Vous pouvez aussi l'effacer en quittant, merci !)

(Nouvelles versions du 06/03/12)

Télécharger l'archive avec les 2 scripts (11 ko)


Téléchargé 4 665 fois

 

Et le plus gros avantage de cette méthode, c'est peut être d'avoir un gestionnaire de messages qui ne permet pas la capture de votre adresse email...

Haut de la page

Bonnes adresses :

http://www.php.net/   : le site officiel
http://www.phpdebutant.org/   : un site très pédagogique pour démarrer et aller plus loin en PHP
STARINUX : le club LINUX "Sympa, Convivial, Dynamique ! "

et des tas d'autres sites de qualité professionnelle, regorgeant de ressources...
 

 

Ecrire à propos de ces programmes


Haut de la page
Page d'accueil

© 25/04/2024 00:04, Jean Claude Meier. Dernière mise à jour : 02/05/2020