Académique Documents
Professionnel Documents
Culture Documents
Asp PHP
Asp PHP
Tutorial ASP-PHP
Des fiches d'initiation mixtes ASP | PHP
Le résumé ?
Top
Installation
Connexion
Formulaires
1ere page
Form et
base
Requetes
Structure
Listing
Sessions
Code ASP ?
Code JavaScript ?
Installation rapide Code PHP ?
Comment installer ASP ou PHP en quelques minutes ! Styles (CSS) ?
Includes (SSI) ?
Commentaires
26 en ligne
52907 hits
Rubriques ASP-PHP.net / Tutorial / Asp-php / Installation
Tutoriaux
Exercices
Scriptothèque Questions - Remarques - Trouver ou proposer un hébergeur ?
Download
Etudiants
Articles
Livres Pour utiliser ASP, il faut d'abord installer sur votre PC Pour pouvoir utiliser PHP, il y a tout un tas de fichiers à
Liens IIS (Windows 2000 ou XP pro) ou le Personal Web installer... serveur Apache, PHP, MySQL,
Rédacteurs Server (Win 95, 98, Me ou XP) : il est sur votre CD PhpMyAdmin... heureusement, quelqu'un a pensé à
Win98 ou téléchargeable ici ! (22.73 Mo) simplifier ça !
Recherche
Installer le PWS Installer EasyPhP
Services
Forums 1. Sur le CD Windows 98, dans le dossier Add- 1. Allez sur le site www.easyphp.org, téléchargez le
ons, exécutez l'application install.exe du sous- logiciel gratuit EasyPHP 1.5...
IRChat
dossier PWS... une nouvelle icône apparaît Exécutez-le après avoir éventuellement désactivé
Liste
à côté de l'heure en bas de l'écran indiquant le PWS ci-contre ... une nouvelle icône apparaît
Votre avis que le serveur est actif ; à côté de l'heure en bas de l'écran indiquant que
Partenariat easyphp est actif (par défaut Apache, PHP et
NewsLetter 2. Créez n'importe où sur votre PC un dossier MySQL aussi);
essais, puis click droit sur son icône, item
2884 E-mail Propriétés, onglet Partage Web, cochez 2. Créez sur votre PC un dossier essais dans le
S'abonner Partager ce dossier, tapez essais comme dossier racine ...\EasyPHP\www\ ;
nom d'alias et cochez les 3 cases Accès, validez
Nouveautés enfin par 2 OK ; 3. Recopiez dans un éditeur la source suivante puis
Partenaires enregistrez sous le nom essai_1.php attention à
Skystats 3. Recopiez dans un éditeur la source suivante l'extension ! dans le dossier essais ;
Admin puis enregistrez sous le nom essai_1.asp
attention à l'extension ! dans le dossier essais ;
access <HTML><HEAD><TITLE>Essai 1</TITLE>
Votre skin </HEAD><BODY>
Include <HTML><HEAD><TITLE>Essai 1</TITLE> Nous sommes le <? echo date("d/m/Y"); ?>
Skins </HEAD><BODY> </BODY></HTML>
Nous sommes le <%=Date%>
News en
</BODY><HTML>
flash
Mot de 4. Exécutez en tapant l'URL
passe http://localhost/essais/essai_1.php dans le
Access to 4. Exécutez en tapant l'URL navigateur... demandez la connexion si nécessaire
http://localhost/essais/essai_1.asp dans (elle sera interne donc gratuite) et la date courante
mys
le navigateur... demandez la connexion si doit apparaître ;
nécessaire (elle sera interne donc gratuite) et la Autre possibilité : click droit sur l'icône, puis Web
date courante doit apparaître ; local qui liste vos dossiers du www...
5. Regardez la source de la page créée !... 5. Regardez la source de la page créée !...
Remarques
1. "L'exemple n'affiche pas la date !" : Jusque là, vous cliquiez sur l'icône de votre page html pour lancer le
Le résumé ? navigateur et l'afficher... Ce n'est plus le cas avec vos pages asp ou php, il faut se connecter au serveur
interne en tapant dans la barre d'adresses de votre navigateur une URL complète
Top http://localhost/essais/essai_1.asp ou http://localhost/essais/essai_1.php.
Installation Le navigateur peut parfois afficher le dialogue de connexion, comme pour aller sur le Web, et il faut alors
Connexion choisir "Se connecter" mais ce sera une connexion interne, donc gratuite ! Si la date ne s'affiche pas, c'est
Formulaires que vous n'êtes pas connecté au serveur interne, inutile donc d'aller plus loin, relisez cette fiche et
1ere page REESSAYEZ !!!
Form et Astuce : Internet Explorer affiche Intranet local en bas de fenêtre, si vous êtes correctement connecté !
base
2. Sur Windows 98, certains visiteurs ont dû réinstaller Windows au préalable puis le PWS du CD W98...
Requetes
Structure 3. Le PWS n'est pas sur le CD Windows Me !!! Les explications de Microsoft
Listing
Sessions 4. En cas de difficultés d'installation du PWS (Win 95, Me ou XP) vous pouvez aussi tenter d'installer ce PWS
(705 Ko) puis ASP.exe (9.7 Mo)
5. Les deux serveurs PWS (ou IIS) et Apache ne fonctionnent pas ensemble... pensez à désactiver l'un avant
d'activer l'autre (click droit sur leurs icônes respectives pour les arrêter) !
6. Pour installer IIS, voir la fiche spécifique de Ludo (avec copies d'écran) !
Code ASP ?
Code JavaScript ?
1ère page Code PHP ?
Quelques bases pour démarrer Styles (CSS) ?
Includes (SSI) ?
Commentaires
26 en ligne
32588 hits
Rubriques ASP-PHP.net / Tutorial / Asp-php / 1ere page
Tutoriaux
Exercices
Scriptothèque
Download
"Il me manque des étapes, peut être des éléments fondamentaux que je ne saisis pas..." osent avouer
Etudiants certains visiteurs de ce site... Cette page sera donc pour eux, pour tenter de faire la liaison entre ce qui est
Articles incompréhensible quand on écrit ses premières pages dynamiques et tellement évident quand on a un peu
Livres de pratique que l'on oublie d'en parler...
Liens N'hésitez pas à signaler vos difficultés... cette page sera modifiée en conséquence !
Rédacteurs
Le serveur actif
Recherche
Lorsqu'il doit envoyer une page html à votre navigateur, le serveur se la coule douce... il vous transmet en
brut le fichier que le webmaster a placé dessus, c'est tout !
Services
Forums Par contre, lorsqu'on lui demande une page asp ou php, il va enfin se mettre à bosser... :o), il va lui falloir
IRChat décoder les instructions spécifiques, encadrées par <% et %> ou <? et ?> et construire d'après elles le
Liste code html qu'il va ensuite envoyer à votre navigateur... Vous n'allez donc plus, en tant que webmaster,
Votre avis écrire une page web, mais indiquer au serveur, via vos pages asp ou php, le plan de fabrication d'une
Partenariat page...
NewsLetter
Le résumé ? De même pour afficher des variables <% =mavar %> en ASP et <? echo $mavar; ?> en PHP (remarquez le
caractère $ obligatoire qui identifie les variables PHP ainsi que le ; en fin d'instruction !)
Top
Installation On peut aussi mixer code ASP ou PHP et source html...
Connexion
Formulaires
1ere page
Form et <HTML><HEAD><TITLE>Exemple</TITLE> <HTML><HEAD><TITLE>Exemple</TITLE>
base </HEAD><BODY> </HEAD><BODY>
Requetes Bonjour !<BR> Bonjour !<BR>
Nous sommes le <% =date %><BR> Nous sommes le <? echo date("d/m/Y"); ?><BR>
Structure
et il est <% =time %> ! et il est <? echo date("H:i:s"); ?> !
Listing </BODY></HTML> </BODY></HTML>
Sessions
Remarques... dans ce cas, la date et l'heure affichées seront celle du serveur (qui exécute le code) et non
celle du visiteur (en JavaScript, c'est le navigateur sur le poste client qui interprète le code !)
De plus, en regardant la source produite, on ne voit plus le code ASP ou PHP, il a été remplacé par la valeur
à afficher... vos scripts sont donc invisibles (ce qui n'était pas le cas en JavaScript)
http://www.asp-php.net/asphp2/fr/tutorial/asp-php/1ere_page.asp (2 of 6) [16/12/2001 11:40:32]
ASP-PHP.net - 1ère page
Source conditionnelle
Ces langages sont magiques... et si, comme moi, vous en tombez amoureux, vous n'arrêterez pas de vous
émerveiller devant les possibilités qui s'offriront à vous avec un peu de pratique...
Ce qui m'a immédiatement séduit est la possibilité de créer des sources différentes en fonction de
circonstances... du coup, un portail simple du genre le gratuit.com peut tenir en... 1 page asp ou php !!!
vous êtes vert, non ?... un autre exemple, ce générateur de GuestBooks et tous les GuestBooks créés par
les visiteurs... ben c'est la même page ASP qui s'affiche... je n'ai donc écrit qu'une seule page qui de plus est
entièrement automatique... (le règne des webmasters fainéants arrive !... :o)
Par exemple pour protéger une page privée : SI le visiteur est autorisé (mot de passe valide) on affiche la
page normale, SINON on affiche le formulaire d'identification, et tout ça dans la même page :
demoprotect.asp demoprotect.php
Imprimer le script Imprimer le script
Recevoir Recevoir
<html><body> <html><body>
Placez ici le contenu de votre page... Placez ici le contenu de votre page...
</body></html> </body></html>
● Les pages doivent avoir une extension .asp ou .php (parfois .php3 ou .phtml) au lieu du .html habituel... et la
page par défaut du répertoire est default.asp ou index.php !
● Le caractère " (guillemet) pose parfois problème... alors en ASP on peut le remplacer par chr(34) ou le doubler
"", et en PHP le faire précéder de l'antislash \
● Les commentaires utiles à la documentation du code sont précédés en ASP de l'apostrophe ' et en PHP,
comme en JavaScript, du double-slash // ... Ce qui suit sur la ligne ne sera pas interprété !
● Le séparateur d'instructions est : (deux points) en ASP et ; (point-virgule) en PHP... attention, en PHP, ce
caractère doit se trouver après chaque instruction !
● L'opérateur de concaténation (qui permet de coller des morceaux) est & en ASP et . (point) en PHP... (c'est
le + du JavaScript)
Code ASP ?
Code JavaScript ?
Eléments de base Code PHP ?
Variables, tableaux, fonctions et procédures Styles (CSS) ?
Includes (SSI) ?
Commentaires
26 en ligne
13129 hits
Rubriques ASP-PHP.net / Tutorial / Asp-php / Elements
Tutoriaux
Exercices
Scriptothèque
Download
A la demande de visiteurs débutants, quelques informations de base pour mieux comprendre...
Etudiants
Articles
Livres
Liens
Les variables
Rédacteurs
Ce sont des réservoirs permettant de stocker des informations diverses réutilisables en plusieurs endroits du
code
Partenariat
NewsLetter
mavar_1 = "bonjour" $mavar_1 = "bonjour"; met la chaîne "bonjour" dans la variable
2884 E-mail mavar_2 = 250 $mavar_2 = 250; met le nombre 250 dans la variable
S'abonner mavar_3 = true $mavar_3 = true; met la valeur true dans la variable
met dans la variable mavar_4 la valeur
Nouveautés mavar_4 = mavar_2 $mavar_4 = $mavar_2;
contenue dans la variable mavar_2
Partenaires
Skystats ● Types : Vous comprenez aisément qu'il ne faut pas réserver le même espace mémoire pour stocker un
Admin nombre et une longue chaine de caractères... et que le langage a besoin de connaître le genre
access d'informations qu'une variable va contenir... Chaque variable est donc typée à sa première affectation,
Votre skin c'est à dire que la nature des informations qu'on y stockera est fixée... Alors attention aux erreurs
générées en cas de non-respect de cette règle !
Include
Skins ● Lecture : La donnée contenue dans un réservoir est lisible en invoquant simplement son nom
News en Par exemple pour l'afficher : <% = mavar_1 %> ou <? echo $mavar_1; ?>
flash
Mot de ● Opérations : On peut, évidemment, construire le contenu d'une variable de manière plus subtile...
Quelques exemples :
passe
Access to
mys
Concaténation
mavar_1 = "bon" & "jour" $mavar_1 = "bon"."jour";
de deux chaînes
Arithmétique
mavar_2 = 50*5 $mavar_2 = 50*5;
+-*/
Comparaisons
= (== en PHP)
mavar_3 = (mavar_2 = 250) $mavar_3 = ($mavar_2==250);
> >= < <=
<> (!= en PHP)
Le résumé ? mavar_2 = mavar_2 + 12 $mavar_2 += 12; Modification
mavar_1 = mavar_1 & " Didier" $mavar_1 .= " Didier"; .= += -= etc en PHP
Top
Installation
Connexion ● Variables dynamiques : Dans certains cas, il peut être intéressant de stocker (ou de construire) le nom
Formulaires d'une variable dans une autre variable ... pour lire son contenu on procédera de la manière suivante :
1ere page
Form et
base
<% <?
Requetes
truc_fr = "Bienvenue" $truc_fr = "Bienvenue";
Structure truc_en = "Welcome" $truc_en = "Welcome";
Listing langue = "fr" $langue = "fr";
Sessions execute "response.write truc_" & langue echo ${"truc_".$langue}; // affiche Bienvenue
%> ?>
● PHP 4 permet aussi d'assigner des valeurs aux variables par référence...
<?
$var_1 = "Essai"; echo $var_1; // affiche Essai
$var_2 = &$var_1; echo $var_2; // affiche Essai
$var_1 = "Test"; echo $var_2; // Affiche Test !
$var_2 = "Try"; echo $var_1; // Affiche Try !
?>
Les tableaux
Ce sont, en gros, des paquets de variables dont chacun des éléments est indexé (a un numéro d'ordre)
● Déclaration
En PHP, la déclaration est implicite, nul besoin de préciser à l'avance le nombre d'éléments du tableau...
En ASP, par contre, il faut le spécifier <% dim montab(9) %> crée un tableau à 10 éléments (0 à 9) mais si l'on souhaite
dimensionner ce tableau d'après un paramètre variable on utilisera la syntaxe taille=12 : dim montab() : redim
montab(taille) et même redim montab(taille1,taille2) etc... jusqu'au 60 dimensions possibles... :o)
De plus, on peut changer la dernière dimension en conservant les données présentes par l'utilisation de l'option PRESERVE
: redim PRESERVE montab(taille1,t2)
● Affectation
On peut indiquer l'indice de l'élément que l'on souhaite affecter :
montab(2) = "bof" ou $montab[2] = "bof";
ou remplir le tableau de cette manière :
fruits = array("pommes","bananes") ou $fruits = array("pommes","bananes");
ou encore utiliser une boucle :
for i = 1 to 10 : montab(i) = i*i : next ou for($i=1;$i<=10;$i++) $montab[$i] = $i*$i;
● Dimensions : Le tableau ci-dessus est dit à 1 dimension, c'est à dire qu'il peut se représenter sous la forme d'une ligne de
cellules... ici (premiers carrés), il contiendra :
1 4 9 16 25 36 49 64 81 100
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
nombre=ubound(tableau) $nombre=sizeof($tableau);
Taille d'un tableau
Remarque : Il existe en PHP de très nombreuses fonctions pour gérer les tableaux qui n'ont pas d'équivalent ASP... nous n'en
parlerons donc pas ici !
Les fonctions
Elles permettent de simplifier l'écriture du code en regroupant les lignes répétitives... On leur transmet des paramètres et elles
retournent un résultat
<% <?
function mafonc(param1,param2) function mafonc($param1,$param2) {
dim mavar $mavar = "";
' lignes de code de la fonction qui modifient mavar // lignes de code de la fonction qui modifient mavar
mafonc = mavar return $mavar;
end function }
%> ?>
● Appel : Pour appeler une fonction, il suffit d'invoquer son nom lors d'une affectation ou d'un affichage en lui transmettant
les paramètres entre parenthèses :
resultat = mafonc(prm1,prm2) ou $resultat = mafonc($prm1,$prm2);
● Paramètres : Le nombre de paramètres peut être différent de 2 et même nul si besoin... Chacun équivaut en fait à une
variable locale accessible en lecture seulement !
Pour modifier le contenu d'un paramètre, il faut que la variable correspondante ait été transmise par référence... un
exemple :
<% <?
function mafonc(byRef param1) function mafonc(&$param1) {
dim mavar $mavar = $param1;
mavar = param1 $param1 = "Nouveau";
param1 = "Nouveau" return $mavar;
mafonc = mavar }
end function
$var_1 = "Ancien";
var_1 = "Ancien" $var_2 = mafonc($var_1);
var_2 = mafonc(var_1) // var_1 contient "Nouveau" et var_2 contient "Ancien"
' var_1 contient "Nouveau" et var_2 contient "Ancien" ?>
%>
<% <?
function fac(nombre) function fac($nombre) {
if nombre = 2 if($nombre==2) {
fac = 2 return 2;
else } else {
fac = nombre * fac(nombre-1) return $nombre * fac($nombre-1);
end if }
end function }
Les procédures
Ce sont des fonctions qui ne retournent pas de valeur mais se contentent d'exécuter quelques lignes de codes en fonction des
paramètres qu'on leur transmet.
● Structure : En PHP la structure est identique à celle des fonctions (à part la ligne return inutile), en ASP par contre elle
diffère :
<% <?
sub maproc(param1,param2) function maproc($param1,$param2) {
' lignes de code de la procedure // lignes de code de la procedure
end sub }
Exemple Exemple
<% <?
sub showprod(p1,p2) function showprod($p1,$p2) {
response.write p1&"*"&p2&"="&p1*p2 echo $p1."*".$p2."=".$p1*$p2;
end sub }
Cette fiche a été écrite pour répondre à vos questions, elle évoluera en fonction de celles que vous poserez maintenant, alors si
un point vous semble obscur ou incomplet voire erroné, n'hésitez pas à le signaler ci-dessous !
Code ASP ?
Code JavaScript ?
Structure type d'une page Code PHP ?
Comment structurer ses pages ASP ou PHP ? Styles (CSS) ?
Includes (SSI) ?
Commentaires
26 en ligne
24224 hits
Rubriques ASP-PHP.net / Tutorial / Asp-php / Structure
Tutoriaux
Exercices
Scriptothèque
Download
"Didier, organise-toi un peu !" ainsi parlait mon vieux maître Zaramouss alors qu'à l'aube de ma vie de
Etudiants Webmestre, je dispersais joyeusement des pages diverses et variées aux 4 coins du Net... et passais ensuite
Articles des heures à chaque petite modif des sites !
Livres
Liens Le principe est simple, on découpe les pages en morceaux et chacune appelle les modules dont elle a
Rédacteurs besoin... ces modules étant partagés, la maintenance du site est ainsi grandement facilitée :
Recherche
Services
Forums
IRChat
Liste
Votre avis
Partenariat
NewsLetter
2884 E-mail
S'abonner
page_1.asp page_1.php
Le résumé ? <% titre="Ma super page 1" %> <? $titre="Ma super page 1";
include("_top.php");
Top <!-- #include virtual="/_top.asp"--> ?>
Installation et bla bla bla...
Connexion et bla bla bla... <?
Formulaires include("_btm.php");
<!-- #include virtual="/_btm.asp"-->
1ere page ?>
Form et
base
Requetes
page_2.asp
Structure page_2.php
Listing
Sessions
_btm.asp
_btm.php
<center>© ASP-PHP.net 2001 -
<center>© ASP-PHP.net 2001 -
<A href="#">Haut de la page</A>
<A href="#">Haut de la page</A>
</td><td width=100 nowrap valign=top>
</td><td width=100 nowrap valign=top>
menu de droite
menu de droite
</td></tr></table>
</td></tr></table>
</BODY></HTML>
</BODY></HTML>
NB 2 : l'adresse du fichier à inclure peut être soit ● <? include("_top.php"); ?> inclue et évalue le fichier, si
la ligne de code est exécutée (ignoré dans une structure
● relative : <!-- #include file="_top.asp"--> conditionnelle fausse par ex.)
● absolue : <!-- #include virtual="/_top.asp"--> ● <? require "_top.php"; ?> inclue systématiquement le
fichier qu'il soit utilisé ou non.
A chaque fois que le serveur construit la page_1, par exemple, pour l'afficher, il inclut
à sa source les fichiers _top et _btm et en exécute le code ! On voit bien que si l'on
modifie _top ou _btm, les 2 pages page_1 et page_2 seront automatiquement
modifiées !!!
Exemple
Ces pages sont construites sur le modèle ci-contre :
● top : tous les éléments communs au site (scripts, css, meta, menu gauche, ...)
❍ pub : gestion et affichage des publicités
● menu : navigation éventuelle dans la rubrique
http://www.asp-php.net/asphp2/fr/tutorial/asp-php/structure.asp (3 of 6) [16/12/2001 11:40:54]
ASP-PHP.net - Structure type d'une page
● tchatche : zone de discussion locale
● bottom : contacts, copyright, ...
On remarquera, entre autres, que top inclut pub qui est partagée avec d'autres top
!...
Compris ?
Remarques
1. En ASP, à partir de IIS5, on peut inclure (et exécuter) une page ASP de manière conditionnelle à
l'aide de Server.execute comme indiqué ici ! sinon il faut se créer une petite procédure comme
celle-ci
2. En PHP, on ne peut inclure par défaut que les fichiers situés dans le répertoire courant (paramètre
du fichier php.ini)... pour inclure un fichier situé ailleurs sur le serveur, utiliser la syntaxe :
include($DOCUMENT_ROOT."/monrep/monfichier.php"); Voir la doc ?
3. Et en HTML, c'est possible ?... Allez donc lire cette excellente fiche !
Application
Si vous avez bien assimilé cette fiche et les précédentes, vous devriez être en
mesure de produire quelque chose comme cela ! sinon, les explications sont ici...
Code ASP ?
Code JavaScript ?
Les QueryStrings Code PHP ?
Transmettre des informations par l'URL Styles (CSS) ?
Includes (SSI) ?
Commentaires
25 en ligne
18997 hits
Rubriques ASP-PHP.net / Tutorial / Asp-php / Querystring
Tutoriaux
Exercices
Scriptothèque
Download
Vous avez déjà dû rencontrer des URL alambiquées du genre
Etudiants http://www.monsite.com/monrep/liste.asp?id=1257&lng=en&act=del&email=cid@fr.fm !
Articles Cette fiche va tenter de vous apprendre à utiliser ces fragments d'URL afin de transmettre des
Livres informations de page en page...
Liens
Rédacteurs Dans l'exemple ci-dessus, l'URL contient 5 informations :
2884 E-mail
Comment faire ?
S'abonner
Nouveautés
Partenaires
Skystats Pour lire ces fragments d'URL, on utilisera, en ASP, la fonction En PHP, une variable est créée
Admin QueryString de l'objet Request : automatiquement au nom de chaque
access fragment :
Votre skin <% if Request.QueryString("lng")="en" then%>
Include Welcome <? if($lng=="en") { ?>
Skins <%else%> Welcome
News en Bienvenue <? } else { ?>
flash <%end if%> Bienvenue
<? } ?>
Mot de
passe
Access to et pour transmettre cette information de langue, vers une
mys autre page, il suffira de l'intégrer au lien : et pour transmettre cette information vers
une autre page, il suffira de l'intégrer au
lien :
Un autre exemple
Plusieurs pages regroupées en 1 seule : Tester ?
demoquery.asp demoquery.php
Imprimer le script Imprimer le script
Recevoir Recevoir
<HTML><BODY> <HTML><BODY>
<div align=center> <div align=center>
<A href="?page=1">Page 1</A> - <A href="?page=1">Page 1</A> -
<A href="?page=2">Page 2</A> - <A href="?page=2">Page 2</A> -
<A href="?page=3">Page 3</A> <A href="?page=3">Page 3</A>
</div><hr> </div><hr>
<% select case request.queryString("page") <? switch($page) {
case "1" :%> case "1" :?>
Ce que vous voulez afficher sur la page 1 Ce que vous voulez afficher sur la page 1
<% case "2" :%> <? break; case "2" :?>
Ce que vous voulez afficher sur la page 2 Ce que vous voulez afficher sur la page 2
<% case "3" :%> <? break; case "3" :?>
Ce que vous voulez afficher sur la page 3 Ce que vous voulez afficher sur la page 3
<% case else :%> <? break; default:?>
Ce que vous voulez afficher sur la page d'accueil Ce que vous voulez afficher sur la page d'accueil
<%end select%> <?}?>
</BODY></HTML> </BODY></HTML>
Le même en bilingue ?
Il va falloir alors gérer 2 paramètres : Tester ?
demoquery2.asp demoquery2.php
Imprimer le script Imprimer le script
Recevoir Recevoir
Remarques
1. Lorsque la méthode n'est pas précisée dans un formulaire, les champs sont émis par la méthode GET et il se construit
une QueryString dont les fragments sont constitués des noms des champs et de leur valeur :
Remplissez ce formulaire, puis "OK"
OK
Pour des formulaires plus importants, il vaut mieux passer par la méthode "Post" !
2. La chaîne complète contenant tous les fragments et leur valeur est lisible dans la variable d'environnement
"QUERY_STRING" :
3. Elle peut, en outre, se décomposer facilement ... pratique pour stocker les valeurs dans un fichier par exemple :
Compris ?
Code ASP ?
Code JavaScript ?
Les Formulaires Code PHP ?
Récupérer les champs d'un formulaire (method POST) Styles (CSS) ?
Includes (SSI) ?
Commentaires
25 en ligne
34605 hits
Rubriques ASP-PHP.net / Tutorial / Asp-php / Formulaires
Tutoriaux
Exercices
Scriptothèque
Download
Extrêmement utilisés dans les pages dynamiques, les formulaires permettent de collecter des informations saisies
Etudiants par le visiteur puis de les traiter ensuite, via JavaScript ou sur le serveur pour remplir une base ou des fichiers par
Articles exemple... La méthode "Post" est requise qui permet de récupérer intacts les contenus des champs...
Livres
Liens La méthode "Get", vue précédemment, implique de trop nombreuses restrictions (caractères spéciaux, longueur
Rédacteurs max de l'URL, ...) et est à proscrire sauf cas particulier !
Recherche
Comment faire ?
Il faut tout d'abord déclarer dans la balise <FORM> :
Services
Forums ● la méthode : <FORM method="POST"> sinon c'est la méthode "GET" qui sera utilisée par défaut ;
IRChat ● la page à appeler lors de la soumission du formulaire : <FORM action="page.ext"> ;
Liste ● éventuellement préciser la fenêtre à utiliser : <FORM target="_blank">.
Votre avis
Partenariat Ensuite, pour récupérer le contenu des champs, c'est facile :
NewsLetter
2884 E-mail
S'abonner
http://www.asp-php.net/asphp2/fr/tutorial/asp-php/formulaires.asp (1 of 7) [16/12/2001 11:41:22]
ASP-PHP.net - Les Formulaires
Nouveautés
Partenaires
Skystats
Le contenu du champ est lisible, en ASP, par la fonction En PHP, une variable est créée automatiquement au nom du
Admin Form de l'objet Request : champ :
access
Votre skin
<% =Request.Form("mon_champ") %> <? echo $mon_champ; ?>
Include
Skins
News en
flash Petit exemple : Petit exemple :
Mot de
ma_page.asp ma_page.php
passe
Access to <% if Request.Form("mon_champ")<>"" then %> <? if($mon_champ) { ?>
mys Votre champ contenait : Votre champ contenait :
<%=Request.Form("mon_champ")%> <? echo $mon_champ; ?>
<br><br> <br><br>
<% end if %> <? } ?>
Top
Installation
Connexion
Formulaires
1ere page
Un exemple d'application utilisé sur ce site (ASP) :
Form et
Si vous êtes abonné à la liste de diffusion de ce site, votre E-mail est en grisé dans la case "newsletter" (colonne
base de gauche) et un lien "Désabonnement" apparaît... sinon, la case contient "E-mail" et le lien indique "S'abonner" :
Requetes
Structure
Listing
Sessions
Compris ?
Remarques
1. On peut réappeler la page courante de la manière suivante :
2. Il est préférable de vérifier, via JavaScript, la validité du contenu des champs AVANT de les envoyer au serveur
pour soulager celui-ci :
validform.html
Imprimer le script
Recevoir
<script language="JavaScript"><!--
function verif(email) {
var arobase = email.indexOf("@"); var point = email.lastIndexOf(".")
if((arobase < 3)||(point + 2 > email.length)||(point < arobase+3)) return false
return true
}
function test(nom,mail) {
if(nom.value=="") {
alert("Un nom est requis !"); nom.focus(); return false
}
if(!verif(mail.value)) {
alert("Email invalide !"); mail.value=""; mail.focus(); return false
}
return true // le formulaire peut partir
}
--></script>
3. On peut lire séquentiellement le contenu de tous les champs ... pratique pour stocker les valeurs dans un
fichier par exemple :
4. Si vous appliquez directement le petit exemple, vous verrez apparaître des anomalies... en effet, certains
caractères affichables dans une boîte de saisie, ne le sont pas sur la page... par exemple "<" !
Il faut donc faire une petite conversion de la chaîne avant de l'afficher :
Application
Si vous avez bien assimilé cette fiche et les précédentes, vous devriez être en mesure de
produire quelque chose comme cela ! sinon, les explications sont ici...
Compléments
De nombreuses questions sont régulièrement posées dans les forums au sujet de l'utilisation de chacun des éléments
d'un formulaire... alors vous pouvez aussi aller lire ces quelques fiches :
Code ASP ?
Code JavaScript ?
Les variables d'environnement Code PHP ?
Collecter des informations sur le visiteur Styles (CSS) ?
Includes (SSI) ?
Commentaires
25 en ligne
14848 hits
Rubriques ASP-PHP.net / Tutorial / Asp-php / Environnement
Tutoriaux
Exercices
Scriptothèque
Download
Tout un tas d'informations sur le visiteur sont disponibles en interrogeant le serveur et sont utiles
Etudiants à sa reconnaissance, au traitement des statistiques de fréquentation et à l'adaptation du site aux
Articles caractéristiques particulières de chaque navigateur...
Livres
Liens
Rédacteurs
Comment faire ?
Recherche
Services Les variables sont lisibles, en ASP, par la fonction En PHP, on utilisera la fonction getenv() :
Forums ServerVariables de l'objet Request :
IRChat
<? echo getenv("REMOTE_ADDR"); ?>
Liste
<% =Request.ServerVariables("REMOTE_ADDR") %>
Votre avis
Partenariat
NewsLetter
2884 E-mail Ceci affiche l'IP du visiteur (son identifiant unique pour cette connection), le vôtre est
S'abonner 80.13.47.70 !
Nouveautés
Partenaires
Skystats Quelques variables utiles :
Admin
access Variable Description Utilisation Votre valeur
Votre skin
Include Site multilingue,
Langue du stats
Skins HTTP_ACCEPT_LANGUAGE
navigateur La liste des
News en
valeurs ?
flash
Mot de Ensemble des Déboggage : asphp%5Fskin=maunakea;
HTTP_COOKIE
passe cookies ASPSESSIONIDGQGQQKPU=KLCKAOFBHEKAKHBAEGGECCAK
Access to
mys
Reconnaissance de la langue
<% <?
lng=Request.ServerVariables("HTTP_ACCEPT_LANGUAGE") $lng = getenv("HTTP_ACCEPT_LANGUAGE");
if LEFT(lng,2) = "fr" then %> if(SUBSTR($lng,0,2)=="fr") { ?>
Bienvenue ! Bienvenue !
<% else %> <? } else { ?>
Welcome ! Welcome !
<% end if %> <? } ?>
<% <?
serv = Request.ServerVariables("SERVER_NAME") $serv = getenv("SERVER_NAME");
if serv <> "localhost" then ' si je ne suis pas en local if($serv!="localhost") { // si je ne suis pas en local
sendMail(message) ' mon message peut partir sendMail($message); // mon message peut partir
end if %> } ?>
<% <?
Nav = Request.ServerVariables("HTTP_USER_AGENT") $Nav = getenv("HTTP_USER_AGENT");
if INSTR(Nav,"MSIE") = 0 then if(!STRPOS("MSIE",$Nav))
Nav = "NN" ' Netscape ou autres $Nav = "NN"; // Netscape ou autres
else else
Nav = "IE" $Nav = "IE";
end if %> ?>
... ...
<LINK REL="stylesheet" TYPE="text/css" <LINK REL="stylesheet" TYPE="text/css"
HREF="styles_<%=Nav%>.css"> HREF="styles_<? echo $Nav; ?>.css">
<style type="text/css"><!-- <style type="text/css"><!--
td { font:normal td { font:normal
<%if Nav="IE" then%>8<%else%>9<%end if%>pt <?if($Nav=="IE") {?>8<?}else{?>9<?}?>pt
Verdana } Verdana }
--></style> --></style>
... ...
Afin de mieux connaître nos visiteurs, leur parcours sur ce site, leurs passages répétés, nos référents, etc... un
fichier se rempli à chaque chargement d'une page et une analyse est consultable en ligne par l'équipe sur une
page protégée. Périodiquement, ce fichier est dowloadé puis traité en local, avec les précédents, afin d'avoir une
vue globale de la fréquentation...
<% <?
sub saveHit(ligne) ' enregistrement du hit function saveHit($ligne) { // enregistrement du hit
' non détaillée ici // non détaillée ici
end sub }
Ces infos, sauf la dernière, sont aussi stockées automatiquement par tous les serveurs dans un fichier .log
Compris ?
Remarques
1. La liste complète des variables d'environnement est accessible ainsi :
2. D'autres informations sont disponibles, via JavaScript, qui permettent d'améliorer encore l'interface avec le
visiteur, par exemple : Tester le script
environnement.html
Imprimer le script
Recevoir
<script language="JavaScript"><!--
function infos() {
var adr = centrePop("",350,230)
adr.document.write("<title>Infos</title><center><b>Vos paramètres par JavaScript</b></center><br>")
adr.document.write("Résolution : "+screen.width+"x"+screen.height+"<br>")
adr.document.write("Couleurs : "+screen.colorDepth+" bits<br>")
adr.document.write("Navigateur : "+navigator.appName+"<br>")
adr.document.write("Version : "+navigator.appVersion+"<br>")
adr.document.write("Référent : "+document.referrer+"<br>")
adr.document.write("<center><br><A href='javascript:window.close()'>Fermer le PopUp</A>")
}
--></script>
Enjoy !
Code ASP ?
Code JavaScript ?
Les variables de Session Code PHP ?
Transmettre des infos sans l'URL ou gérer un caddy Styles (CSS) ?
Includes (SSI) ?
Commentaires
25 en ligne
22396 hits
Rubriques ASP-PHP.net / Tutorial / Asp-php / Sessions
Tutoriaux
Exercices
Scriptothèque
Download
Certaines variables sont difficiles à transmettre par l'URL... On pourrait alors, dans ce cas, transmettre via
Etudiants QueryString un identifiant qui permettrait de lire un fichier spécifique à chaque visiteur... mais ceci est lourd à
Articles gérer... alors qu'il existe un moyen beaucoup plus simple et transparent : les variables de Session, qui sont
Livres stockées dans la mémoire du serveur et détruites à la fin d'un temps de non-activité de l'internaute... on s'en
Liens sert beaucoup en E-commerce pour gérer les paniers (caddies) !
Rédacteurs
Comment faire ?
Recherche
Services
Forums
IRChat
Liste
Votre avis
Partenariat
NewsLetter
2884 E-mail
S'abonner
Nouveautés En ASP, on utilisera ces variables naturellement, en utilisant En PHP, c'est plus délicat... il faut la version 4 et vérifier par
Partenaires l'objet Session : <? echo phpinfo(); ?> qu'il a été compilé avec l'option
Skystats enable-trans-sid. Ensuite :
Ecriture
Admin Déclaration
access <% Session("email") = "info@asp-php.net" %>
Votre skin <? session_register("email"); ?>
Include
Skins Lecture
News en Affectation
flash <% =Session("email") %>
<? $email="info@asp-php.net"; ?>
Mot de
passe
Access to Destruction
mys Lecture
<% Session.Contents.Remove("email") %>
<? echo $email; ?>
Destruction de toutes
Destruction
<% Session.Contents.RemoveAll %>
<? session_unregister("email"); ?>
democaddy.asp democaddy.php
Imprimer le script Imprimer le script
Recevoir Recevoir
Compris ?
Remarques
1. En ASP, l'objet Session possède deux autres méthodes, OnStart et OnEnd, déclarées dans le fichier global.asa
en racine du site, qui permettent par exemple de compter, via une variable Application (en mémoire du
serveur, partageable entre tous les internautes connectés) le nombre de visiteurs actuellement sur le site... en ce
moment, vous êtes 25 sur ASP-PHP.net !
global.asa
ma_page.asp
<script LANGUAGE=VBScript RUNAT=Server>
SUB Application_OnStart <HTML><HEAD><TITLE>Exemple</TITLE>
Application("online") = 0 </HEAD></BODY>
END SUB ...
<%=Application("online")%> en ligne
SUB Session_OnStart ...
Application.Lock </BODY></HTML>
Application("online") = Application("online") + 1
Application.Unlock
END SUB
SUB Session_OnEnd
Application.Lock
Et en PHP ?
Application("online") = Application("online") - 1 C'est possible aussi mais pas de la même
Application.Unlock
http://www.asp-php.net/asphp2/fr/tutorial/asp-php/sessions.asp (5 of 7) [16/12/2001 11:41:43]
ASP-PHP.net - Les variables de Session
END SUB manière... on peut stocker les IP des visiteurs
</script> dans un fichier ou une BD avec un time-limit
et mettre à jour les infos à chaque hit !!! Voir
par exemple le script du WebJeff
Enjoy !
Code ASP ?
Code JavaScript ?
Envoyer un E-mail Code PHP ?
Emettre un courriel directement par le serveur ! Styles (CSS) ?
Includes (SSI) ?
Commentaires
25 en ligne
18878 hits
Rubriques ASP-PHP.net / Tutorial / Asp-php / Envoi mail
Tutoriaux
Exercices
Scriptothèque
Download
TRES pratique pour que des messages soient envoyés automatiquement ou volontairement...
Etudiants surveillance automatique du site, listes de discussions, retours forums...
Articles
Livres
Liens Comment ça marche ?
Rédacteurs
Recherche
Tester l'exemple
En ASP, il faut qu'un composant spécifique soit installé
Services
(ASPmail dans cet exemple ou JMail qui est gratuit) En PHP, il ne faut pas que l'hébergeur ait désactivé
Forums
ou alors passer par CDONTS cette fonction !...
IRChat
Liste _mail.asp _mail.php
Votre avis
Imprimer le script Imprimer le script
Partenariat Recevoir Recevoir
NewsLetter
2884 E-mail <% ' Interface pour ASPmail <? // Interface PHP pour mail()
S'abonner
function sendMail(n,m,nT,mT,sujet,body) function sendMail($n,$m,$nT,$mT,$sujet,$body) {
Nouveautés dim Mail ' l'objet SMTP // l'émetteur
Partenaires Set Mail = Server.CreateObject("SMTPsvg.Mailer") $tete = "From: ".$n." <".$m.">\n";
Skystats ' le serveur $tete .= "Reply-To: ".$m."\n";
Admin Mail.RemoteHost = "mail.ikoula.fr" // et zou... false si erreur d'émission
' l'émetteur return mail($nT." <".$mT.">",$sujet,$body,$tete);
access
Mail.FromName = n }
Votre skin ?>
Mail.FromAddress = m
Include ' le destinataire
Skins Mail.Addrecipient nT, mT
News en ' l'objet du courriel
flash Mail.Subject = sujet A noter :
Mot de ' le texte du courriel
passe Mail.BodyText = body ● Chez certains hébergeurs (Nexen) il faut utiliser
' et zou... false si erreur d'émission une fonction email() de leur cru... :((
Access to
sendMail = Mail.SendMail
mys Il existe une classe permettant d'envoyer
end function ●
Un exemple d'application ?
Enjoy !
Le résumé ?
Top
Installation Sessions << Envoi d'E-mail >> UpLoad de fichiers
Connexion
Formulaires
1ere page Commentaires sur cette page Chercher
Form et Pseudo
base E-mail
Requetes
Structure
Listing Créer un nouveau sujet
Sessions Lire 14/12/2001 de angelus_2
svp de l'aide sur jmail ca marche mais je voudrais envoyer un mail avec de...
● 14/12/2001 de Max Starr <% photo = JMail.AddAttachment ("adresse")...
● 14/12/2001 de ludo Sinon demande à JC héhé :)
● 14/12/2001 de angelus_2 desole mais ca marche pas , il n'aime pas ...
● 14/12/2001 de ludo Tu ajoutes comme dans un fichier HTML l'image : <...
Lire 08/12/2001 de Fim
Aide :bonjour je suis en train de créer un site en ASP, j'ai créer un formu...
● 08/12/2001 de Al Récupère les données du formulaire sur une page ASP ...
● 09/12/2001 de Fim je n'ai pas bie compris comment introduire tout le...
● 09/12/2001 de Al En gros, tu choisis d'abord le format de ton mail (à...
Lire 06/12/2001 de emmanuel
envoie mail a plusieurs personnes en php ? salut, je voudrsi faire un form...
● 06/12/2001 de Didier c'est possible, mais il faut les séparer par u...
Lire 28/11/2001 de stardancer
Bonjour à tous ! Je souhaite envoyer des courriers électroniques en utilisa...
Lire 24/11/2001 de bubulle
Bonjour, j'aurais voulu savoir quand on envoie un email à plusieurs personn...
● 25/11/2001 de Didier Faut aller lire la doc... http://tech.dimac.n...
● 25/11/2001 de bubulle Merci
Lire 16/11/2001 de sebastien
bonjour, je souhaiterai savoir comment peut on savoir les differents com...
● 16/11/2001 de WarGoat hé bin, tu testes pour tous les composants q...
Lire 12/11/2001 de stounfr
Salut, j'ai un petit problème avec ce code, c'est pour envoyer par mail les...
● 12/11/2001 de ludo Tu as oublié de créer une instance de mailer çàd ...
Lire 01/11/2001 de narjisse
salut je veux envoyer un mail a travers le composant aspmail et j'ai l'erre...
● 01/11/2001 de Didier Le message est clair, non ?... host not found....
Lire 24/10/2001 de awex
Comment tester les fonctions mail en local (faut paramettrer apache de mani...
● 24/10/2001 de WarGoat tu ne peux pas si tu n'as pas de serveur de ...
Lire 13/10/2001 de Kenny
voici le code qui me pose un probleme : <% Dim sName, sEmail, sujet, bo...
● 14/10/2001 de Didier Ben y'a des " en trop et des & qui manquent, n...
● 15/10/2001 de fabrice69 Eu en fait tu dois mettre : "Ta chaine"& ...
v1.1aa © ASP-PHP.net 2001 Suite
Code ASP ?
Code JavaScript ?
Glossaire Code PHP ?
Un peu de vocabulaire Styles (CSS) ?
Includes (SSI) ?
Commentaires
25 en ligne
12272 hits
Rubriques ASP-PHP.net / Tutorial / Asp-php / Glossaire
Tutoriaux
Exercices
Scriptothèque
Download
L'objectif de cette page n'est pas d'être exhaustive, tant de méthodes ou fonctions existent, mais de
Etudiants récapituler les expressions ou structure les plus courantes, soit qu'elles aient été utilisées par les
Articles scripts de ce site, soit qu'elles aient été demandées par ses visiteurs... alors, si quelque chose vous
Livres manque, demandez-le ! Du coup cette page va évoluer régulièrement, n'hésitez pas à y revenir...
Liens
Rédacteurs
Comment faire ?
Recherche
Services
Pour manipuler les chaînes de caractères
Forums
IRChat Description
Liste
Votre avis Rechercher
Partenariat ou tester la
NewsLetter présence
nombre=instr(chaine,sschaine) $nombre=strpos($chaine,$sschaine);
d'une chaîne
2884 E-mail dans une ' ou // ou
S'abonner autre nombre=instr(rang,chaine,sschaine) $nombre=strpos($chaine,$sschaine,$rang);
on peut ' ou juste pour tester // ou juste pour tester
Nouveautés préciser à if instr(chaine,sschaine) then if(strpos($chaine,$sschaine)) {
Partenaires partir de quel ' ou à partir de la fin // ou à partir de la fin
Skystats caractère nombre=instrrev(chaine,sschaine) $nombre=strrpos($chaine,$sschaine);
Admin (rang) ou
access commencer à
partir de la
Votre skin
fin
Include
Skins sschaine=mid(chaine,debut,longueur) $sschaine=substr($chaine,$debut,$longueur);
News en ' ou jusqu'à la fin // ou jusqu'à la fin
flash sschaine=mid(chaine,debut) $sschaine=substr($chaine,$debut);
Mot de Extraire une ' ou la partie gauche // ou la partie gauche
passe sous-chaîne sschaine=left(chaine,longueur) $sschaine=substr($chaine,0,$longueur);
Access to ' ou la partie droite // ou la partie droite ($debut est négatif)
mys sschaine=right(chaine,longueur) $sschaine=substr($chaine,$debut);
Remplacer
les
occurences chaine=replace(chaine,ch1,ch2) $chaine=str_replace($ch1,$ch2,$chaine);
d'une sous-
chaîne "ch1"
par une autre
"ch2"
Le résumé ? Supprimer
les espaces chaine=trim(chaine) $chaine=trim($chaine);
Top au début et à
Installation la fin d'une
Connexion chaîne
Formulaires
' en majuscules
1ere page
chaine=uCase(chaine)
Form et
' en minuscules
base chaine=lCase(chaine) // en majuscules
Requetes ' initiale en majuscule $chaine=strtoupper($chaine);
Structure // en minuscules
Convertir les <% function ucfirst(chaine)
Listing caractères $chaine=strtolower($chaine);
ucfirst = UCASE(LEFT(chaine,1)) _
Sessions d'une chaîne // initiale en majuscule
& MID(chaine,2)
$chaine=ucfirst($chaine);
end function %>
entier=cint(chaine)
$entier=intval($chaine);
Conversions entierlong=clng(chaine)
chaîne <->
nombre $chaine=strval($nombre);
chaine=cstr(nombre)
char=chr(code) $char=chr($code);
Conversion
Char <-> code=asc(char) $code=ord($char);
Code ASCII
Description
switch ($expression) {
Select Case expression
case $valeur1:
case valeur1
// lignes à exécuter si expression vaut valeur1
' lignes à exécuter si expression vaut valeur1
break;
case valeur2,valeur3
Structure case $valeur2:
' lignes à exécuter si expression
conditionnelle // lignes à exécuter si expression vaut valeur2
' vaut valeur2 ou valeur3
multiple break;
case else
default:
' lignes à exécuter dans les autres cas
// lignes à exécuter dans les autres cas
end Select
}
Do While condition
' lignes à exécuter
' tant que condition est vraie
while ($condition) {
Loop
// lignes à exécuter
// tant que condition est vraie
}
Do
' lignes à exécuter
Structures ' jusqu'à ce que condition soit vraie
itératives do {
Loop Until condition
conditionnelles // lignes à exécuter
// jusqu'à ce que condition soit fausse
On peut forcer la sortie par un Exit Do } while ($condition);
While condition
' lignes à exécuter On peut forcer la sortie par un break;
' tant que condition est vraie ou le tour suivant par continue;
Wend
Fonctions diverses
Description
nombre=abs(nombre) $nombre=abs($nombre);
Valeur absolue d'un nombre
Enjoy !
Code ASP ?
Code JavaScript ?
Upload de fichiers Code PHP ?
Vos visiteurs déposent des fichiers sur votre site Styles (CSS) ?
Includes (SSI) ?
Commentaires
23 en ligne
8191 hits
Rubriques ASP-PHP.net / Tutorial / Asp-php / Upload
Tutoriaux
Exercices
Scriptothèque
Download
Il peut être parfois intéressant de permettre à vos visiteurs de participer au remplissage du site sans pour
Etudiants autant leur donner les clefs du FTP... Si en PHP le principe est simple, en ASP par contre il importe qu'un
Articles composant spécifique ait été installé par l'administrateur du serveur... et chaque composant a, évidemment,
Livres une syntaxe spécifique... AspSmartUpload décrit brièvement ici est le plus fréquemment rencontré chez les
Liens hébergeurs... il est gratuit :o)
Rédacteurs
Comment ça marche ?
Recherche
Services
Forums
IRChat
Liste
Votre avis
Partenariat
NewsLetter
2884 E-mail
S'abonner
Nouveautés Un formulaire permet au visiteur de sélectionner un fichier Un formulaire permet au visiteur de sélectionner un fichier
Partenaires sur son PC sur son PC, la taille maxi autorisée est transmise (en
Skystats octets) dans un champ "hidden"
<FORM METHOD="POST"
Admin ENCTYPE="multipart/form-data"> <FORM METHOD="POST"
access <INPUT TYPE=FILE NAME="userfile"><BR> ENCTYPE="multipart/form-data">
Votre skin <INPUT TYPE=SUBMIT value="Enregistrer le fichier"> <INPUT TYPE=HIDDEN NAME=MAX_FILE_SIZE
Include </FORM> VALUE=1024>
Skins <INPUT TYPE=FILE NAME="userfile"><BR>
<INPUT TYPE=SUBMIT value="Enregistrer le fichier">
News en
</FORM>
flash Un composant doit être installé sur le serveur
Mot de (ici c'est AspSmartUpLoad)
passe
<% Set mySmartUpload = _ si l'upload s'est bien passé,
Access to Server.CreateObject("aspSmartUpload.SmartUpload")%> la variable $userfile_size est > à 0
mys
<? if($userfile_size>0) { ?>
demoupload.asp demoupload.php
Imprimer le script Imprimer le script
Recevoir Recevoir
<HTML><BODY><CENTER> <HTML><BODY><CENTER>
</CENTER></BODY></HTML> </CENTER></BODY></HTML>
Enjoy !
Bases de données
Accrochez une base de données à votre site !
23 en ligne
Services
Forums
IRChat
Liste
Votre avis
Partenariat
NewsLetter
2884 E-mail
S'abonner
Nouveautés
Partenaires
Skystats
Admin
access
Votre skin
Include
Skins
News en
flash
Mot de
passe
Access to
mys
Code ASP ?
Code JavaScript ?
Connexion à une base Code PHP ?
Connecter une base de données à une page ASP|PHP Styles (CSS) ?
Includes (SSI) ?
Commentaires
23 en ligne
48893 hits
Rubriques ASP-PHP.net / Tutorial / Asp-php / Database / Connexion
Tutoriaux
Exercices
Scriptothèque
Download
Destinées à collecter les informations saisies par les visiteurs, les bases de données permettent,
Etudiants en outre, un tri et une recherche facile des informations sauvegardées... Leur pilotage par une
Articles page ASP ou PHP présuppose que vous sachiez les créer et les manipuler "à la main" !
Livres
Liens
Rédacteurs Avertissements
1. Nous ne traiterons ici que les couples ASP/Access et PHP/MySQL, alors familiarisez-vous
Recherche d'abord, si ce n'est pas déjà fait, avec MS Access (un cours ?) ou PhpMyAdmin
(http://localhost/mysql/ si votre serveur Apache est activé !)
Services
Forums 2. Même si vous ne disposez pas du logiciel MS Access, vous pouvez utiliser ses bases sous
IRChat ASP (voire PHP) en allant voir cette fiche !
Liste
3. A l'instar de l'installation, la 1ère connexion à une base de données est une opération
Votre avis
souvent difficile (surtout en ASP)... mais une fois que l'on a compris comment faire, la
Partenariat
procédure devient naturelle et la connexion tellement pratique que l'on a du mal à s'en
NewsLetter passer... Comme elle dépend de certains paramètres du serveur, l'effort est à renouveler
2884 E-mail à chaque fois que l'on change d'hébergement... Nous allons donc construire ici un fichier
S'abonner "_connexion" à inclure dans vos pages et qui devra être adapté à chaque système.
Nouveautés 4. Alors, prenez votre temps pour cette nouvelle étape de votre progression, et si vous
Partenaires rencontrez des difficultés allez lire la F.A.Q. puis posez votre question... Pour d'autres
Skystats couples, vous pouvez chercher dans les quelques liens associés à ce sujet !
Admin
access
Votre skin Comment faire ?
Include
Skins Comme pour tout script, la syntaxe est très chatouilleuse... alors faites bien attention à la
News en respecter scrupuleusement pour éviter l'apparition d'erreurs qui seront ensuite souvent difficiles
à corriger !
flash
Mot de
passe
Access to
mys
Créez d'abord une base "ma_base" avec MS Access Créez d'abord une base "ma_base" via
contenant une table "ma_table" constituée d'au moins un PhpMyAdmin
champ texte "mon_champ" (http://localhost/mysql/) contenant
Le résumé ? une table "ma_table" constituée d'au
moins un champ texte "mon_champ"
Ensuite
Top pour connecter Access
Installation
Ensuite
Connexion _connexion.asp pour connecter MySQL
Formulaires
<% Set Conn = Server.CreateObject("ADODB.Connection")
1ere page _connexion.php
connstring="DRIVER={Microsoft Access Driver (*.mdb)};" _
Form et & " DBQ=" & Server.MapPath("/rep_depro/ma_base.mdb") <?
base Conn.Open connstring %> // Paramètres persos
Requetes $host = "localhost"; // voir hébergeur
Structure $user = "login"; // vide en local
Listing Ceci présuppose que le répertoire où se trouve la base de $pass = "password"; // vide en local
données a été préalablement déprotégé en écriture ! $bdd = "ma_base"; // nom de la BD
Sessions
// connexion
Enfin votre page @mysql_connect($host,$user,$pass)
or die("Impossible de se connecter");
ma_page.asp
@mysql_select_db("$bdd")
<!-- #include file="_connexion.asp"--> or die("Impossible de se connecter");
?>
<% ' Traitements divers
ma_page.php
_connexion.asp
Courage !
Code ASP ?
Code JavaScript ?
Formulaires et BD Code PHP ?
Remplir une base de données en lisant un form Styles (CSS) ?
Includes (SSI) ?
Commentaires
23 en ligne
30979 hits
Rubriques ASP-PHP.net / Tutorial / Asp-php / Database / Form et base
Tutoriaux
Exercices
Scriptothèque
Download
Extrêmement utilisés dans les pages dynamiques, les formulaires permettent de collecter des informations
Etudiants saisies par le visiteur pour remplir une base de données par exemple...
Articles
Livres La méthode "Post" est requise qui permet de récupérer intact le contenu des champs...
Liens
Rédacteurs
Comment faire ?
Comme vu précédemment, il faut d'abord relier le formulaire à une page ASP ou PHP :
Recherche
<FORM method="POST" action="ma_page.ext">
Services Ensuite, c'est cette page qui, après s'être connectée à une base de données, va la mettre à jour avec le
Forums contenu des champs du formulaire.
IRChat Les exemples qui suivent considèrent qu'il existe une table "ma_table" avec 2 champs texte (varchar)
Liste "nom" et "email" qui seront remplis avec le contenu des champs "nom" et "email" du formulaire :
Votre avis
Partenariat
NewsLetter
http://www.asp-php.net/asphp2/fr/tutorial/asp-php/database/form_et_base.asp (1 of 7) [16/12/2001 11:42:31]
ASP-PHP.net - Formulaires et BD
2884 E-mail
S'abonner
Déconnexion :
Le résumé ?
formbase_1.asp formbase_1.php
Imprimer le script Imprimer le script
Recevoir Recevoir
Remarques
● La valeur d'une checkbox est on lorsqu'elle est cochée (vide sinon)... et le champ "YesNo" n'accepte que
true ou false... il faut donc convertir
● Pour stocker une URL ou une adresse E-mail, utilisez un champ de type "Text" puis
● Pour stocker une image, stockez son url dans un champ "Text" puis
● Les lignes dans un Textarea (stocké dans un champ Memo) sont séparées par un code spécial... pour les
afficher en HTML il faut convertir
● Une fiche est dédiée aux questions concernant les listes déroulantes...
Code ASP ?
Code JavaScript ?
Lister la base Code PHP ?
Afficher le contenu des fiches d'une base Styles (CSS) ?
Includes (SSI) ?
Commentaires
23 en ligne
23734 hits
Rubriques ASP-PHP.net / Tutorial / Asp-php / Database / Listing
Tutoriaux
Exercices
Scriptothèque
Download
La base se remplissant, il va falloir lister son contenu... Pour cela nous allons connecter la base à la page,
Etudiants
sélectionner toutes les fiches d'une table (requête) et, s'il y en a, pour chacune d'entre elles, afficher le
Articles
contenu des champs avant de fermer la connexion :
Livres
Liens
Rédacteurs
Comment faire ?
Recherche
Services
Forums
IRChat
Liste
Votre avis
Partenariat
NewsLetter
2884 E-mail
S'abonner
%> ?>
Le résumé ?
formbase.asp formbase.php
Imprimer le script Imprimer le script
Recevoir Recevoir
Remarques
● Pour afficher la sélection d'une chexbox stockée dans un champ "YesNo", il faut procéder ainsi :
Application
Si vous avez bien assimilé cette fiche et les précédentes, vous devriez être en mesure de
produire quelque chose comme cela ! sinon, les explications sont ici...
Code ASP ?
Code JavaScript ?
Editer la base Code PHP ?
Modifier ou supprimer les fiches d'une base Styles (CSS) ?
Includes (SSI) ?
Commentaires
23 en ligne
14058 hits
Rubriques ASP-PHP.net / Tutorial / Asp-php / Database / Edition
Tutoriaux
Exercices
Scriptothèque
Download
Deux petites opérations simples mais au combien indispensables pour la maintenance de la base... La plupart du
Etudiants temps, seul le WebMaster a accès à ces fonctions depuis une page protégée... mais certains sites, de plus en plus,
Articles vous permettent de modifier votre fiche "on-line"...
Livres
Liens
Rédacteurs Comment faire ?
Recherche
Pour supprimer une fiche :
Services
Forums
IRChat
Liste
Votre avis
Partenariat
NewsLetter
2884 E-mail
S'abonner
Nouveautés
Partenaires
Skystats
Connexion à Access : _connexion.asp ? Connexion à MySQL : _connexion.php ?
Admin
access
Votre skin <!-- #include file="_connexion.asp"--> <? include("_connexion.php"); ?>
Include
Skins
News en Sélection de(s) fiche(s) et suppression : Sélection de(s) fiche(s) et suppression :
flash
Mot de <% <?
passe SQL="DELETE FROM [TABLE] WHERE champ='valeur'" $query = "DELETE FROM table WHERE champ = 'valeur'";
Access to conn.Execute(SQL) $result = mysql_query($query);
mys %> ?>
Déconnexion : Déconnexion :
Le résumé ?
<% <?
SQL = "UPDATE [TABLE] SET champ='nouv_valeur'" _ $query = "UPDATE table SET champ='nouv_valeur'";
& " WHERE champ='valeur' " $query .= " WHERE champ='valeur' ";
conn.Execute(SQL) $result = mysql_query($query);
%> ?>
Un petit exemple
L'exemple en action ?
Modifions l'exemple de la fiche précédente afin qu'il permette la modification et la suppression d'une fiche
formbase2.asp formbase2.php
Imprimer le script Imprimer le script
Recevoir Recevoir
Enjoy !
Code ASP ?
Code JavaScript ?
Requêtes Code PHP ?
Trier et sélectionner des fiches Styles (CSS) ?
Includes (SSI) ?
Commentaires
23 en ligne
29186 hits
Rubriques ASP-PHP.net / Tutorial / Asp-php / Database / Requetes
Tutoriaux
Exercices
Scriptothèque
Download
En complément des fiches précédentes, vous trouverez ici quelques requêtes type pour trier
Etudiants les fiches d'une table, en sélectionner quelques unes selon divers critères voire faire quelques
Articles opérations statistiques de base... La liste n'est pas exhaustive, ce n'est pas le but visé, mais si
Livres vous pensez que des requêtes fondamentales manquent, ou si vous souhaitez voir figurer ici
Liens un exemple particulier, dites-le !
Rédacteurs
Comment faire ?
Recherche
Pour trier les fiches
Services
Forums Requête Description
IRChat Tous les champs de toutes les
Liste "SELECT * FROM table"
fiches
Votre avis
Les champs fldA et fldB de
Partenariat "SELECT fldA, fldB FROM table"
toutes les fiches
NewsLetter
Tous les champs de toutes les
2884 E-mail "SELECT * FROM table ORDER BY fldA" fiches triées par ordre
S'abonner croissant du champ fldA
Tous les champs de toutes les
Nouveautés
"SELECT * FROM table ORDER BY fldA DESC" fiches triées par ordre
Partenaires
décroissant du champ fldA
Skystats
Admin Tous les champs de toutes les
access fiches triées par ordre
"SELECT * FROM table ORDER BY fldA , fldB DESC"
croissant du champ fldA puis
Votre skin
décroissant du champ fldB
Include
Skins
News en
flash
Pour sélectionner des fiches
Mot de
Requête Description
passe
Access to "SELECT DISTINCT fldA FROM table" Toutes les valeurs distinctes du champ fldA
mys
Requête Description
"SELECT COUNT(*) AS truc FROM table" Le nombre de fiches de la table
La valeur la plus grande du
"SELECT MAX(fldA) AS truc FROM table"
champ fldA
La valeur la plus petite du champ
"SELECT MIN(fldA) AS truc FROM table"
fldA
"SELECT AVG(fldA) AS truc FROM table" La valeur moyenne du champ fldA
La somme des valeurs du champ
"SELECT SUM(fldA) AS truc FROM table"
fldA
Requête Description
"SELECT TOP x * FROM table ORDER BY FldAuto DESC" Les x news les plus récentes transmise par
ou "SELECT * FROM table ORDER BY FldAuto DESC LIMIT x" Ludo
"SELECT count(id),forum FROM messages Pour trier les forums d'après le nombre de
GROUP BY forum ORDER BY count(id) DESC" messages sur la page Questions
Et pour aller plus loin... SQLPro - DevGuru Jet SQL index (Access)
Enjoy !
Code ASP ?
Code JavaScript ?
Administration Code PHP ?
Modifier la structure d'une table ou d'une base Styles (CSS) ?
Includes (SSI) ?
Commentaires
23 en ligne
10933 hits
Rubriques ASP-PHP.net / Tutorial / Asp-php / Database / Administrer
Tutoriaux
Exercices
Scriptothèque
Download
Et pour finir, quelques requêtes moins fréquemment utilisées pour gérer, on-line, la base...
Etudiants Surtout utiles en ASP, qui ne bénéficie pas d'outils comme PhpMyAdmin, elles permettent de
Articles modifier la structure de la base au cas où, par exemple, la nécessité d'un nouveau champ ou
Livres d'une nouvelle table se ferait sentir sur le site... Comme pour la fiche précédente, si une
Liens requête semble manquer, dites-le moi !
Rédacteurs
Comment faire ?
Recherche
Pour modifier une table
Services
Forums Requête Description
IRChat
Ajoute un champ "fldA" de
Liste "ALTER TABLE table ADD fldA Counter" type NumAuto dans la table
Votre avis "table"
Partenariat
Ajoute un champ numérique
NewsLetter
"ALTER TABLE table ADD fldB Number NOT NULL" "fldB" de propriété "non nul"
2884 E-mail dans la table "table"
S'abonner Ajoute un champ texte "fldC"
"ALTER TABLE table ADD fldC char(50) NULL" (50 car max) de propriété
Nouveautés "nul" dans la table "table"
Partenaires
Ajoute un champ mémo "fldD"
Skystats "ALTER TABLE table ADD fldD Memo"
dans la table "table"
Admin
access Ajoute un champ date "fldE"
"ALTER TABLE table ADD fldE Date"
Votre skin dans la table "table"
Include Ajoute un champ booléen
"ALTER TABLE table ADD fldF YesNo"
Skins "fldF" dans la table "table"
News en Supprime le champ "fldA" et
flash "ALTER TABLE table DROP COLUMN fldA" toutes ses valeurs dans la
Mot de table "table"
passe
Access to
mys Pour modifier la base
Requête Description
Crée une table "table" avec un
"CREATE TABLE table fldA Counter"
champ "fldA" de type NumAuto
"DROP TABLE table" Détruit la table "table"
Le résumé ?
Top
Remarques
Installation
Connexion 1. Pour éditer on-line une base Access, il existe des outils payants mais aussi DataBase
Formulaires Manager de Y.Nizon qui est gratuit (sources commentées) ainsi que ±AxS proposé par
1ere page ce site !
Form et 2. Pour savoir comment lister en ASP les tables et leurs champs (+propriétés) allez voir
base cette page sinon je vous ai mis là un petit exemple d'application !
Requetes
Structure 3. Pour optimiser la rapidité et la stabilité de vos bases, pensez à les compacter
Listing régulièrement... pour MySQL (PHP) c'est prévu dans PhPMyAdmin et pour Access (ASP)
Sessions allez voir la fiche de Llenne !
4. Et pour aller encore plus loin avec Access... une doc de Microsoft
Enjoy !
Le File System
Manipulez les fichiers et dossiers de votre site !
Très utile dans de nombreux cas, le Système de Fichiers permet d'accéder aux dossiers et aux fichiers situés sur
le serveur pour les lister, en créer de nouveaux, les modifier, voire les détruire...
Dans cette fiche, nous verrons comment lister le contenu d'un dossier pour en extraire le nom des fichiers et sous-
répertoires, ainsi que quelques informations utiles : taille, date de création, date de modification...
Comment faire ?
Créer un objet Scripting.FileSystemObject Obtenir un pointeur vers le dossier qui nous intéresse
<% Set FSO = _ <? $rep = "mon_dossier/";
Server.CreateObject("Scripting.FileSystemObject") %> $dir = opendir($rep); ?>
Récupérer le path long du dossier qui nous intéresse lire ce dossier en choisissant
les dossiers (is_dir) ou les fichiers (is_file)
<% dir = Server.MapPath("mon_dossier/") %>
<? function dd($date) {
return date("d/m/Y H:i:s",$date);
}
Obtenir un pointeur vers ce même dossier
while ($f = readdir($dir)) {
<% set foldPt = FSO.GetFolder(dir) %>
if(is_file($rep.$f)) {
echo "<li>Nom : ".$f;
echo "<li>Taille : ".filesize($rep.$f)." octets";
Lire la collection des fichiers de ce dossier echo "<li>Création : ".dd(filectime($rep.$f));
echo "<li>Modification : ".dd(filemtime($rep.$f));
<% set fc = foldPt.Files %> echo "<li>Dernier accès : ".dd(fileatime($rep.$f));
echo "<br><br>";
}
} ?>
ou la collection des sous-dossiers de ce dossier
<% set fc = foldPt.SubFolders %>
enfin fermer le dossier
<? closedir($dir); ?>
enfin lire cette collection
<% for each f in fc %>
<li>Nom : <%=f.name%>
<li>Taille : <%=f.size%> octets
<li>Création : <%=f.dateCreated%> Exemple pour cette page :
<li>Modification : <%=f.dateLastModified%>
<li>Dernier accès : <%=f.dateLastAccessed%> ● Nom : directory.asp
<br><br> ● Taille : 114 octets
<% next%> ● Création : 19/08/2001 01:54:29
● Modification : 19/08/2001 01:54:29
● Dernier accès : 19/08/2001 01:54:29
Le menu News, dans la colonne bleue de gauche, est construit automatiquement en lisant le dossier "fiches" sur le serveur :
dim toplk(5,2) : maxtop = 5 while ($f = readdir($dir)) // lecture et tri par date de création
if(is_file($rep.$f))
for each f in fc ' lecture et tri par date de création for($k=1;$k<=$maxtop;$k++)
for k = 1 to maxtop if(filectime($rep.$f) > $toplk[$k][1]) {
if f.datecreated > toplk(k,1) then $s0 = filectime($rep.$f) ; $u0 = $f;
s0 = f.datecreated : u0 = f.name for($kk = $k;$kk<=$maxtop;$kk++) {
for kk = k to maxtop $s = $toplk[$kk][1] ; $u = $toplk[$kk][2];
s = toplk(kk,1) : u = toplk(kk,2) $toplk[$kk][1] = $s0 ; $toplk[$kk][2] = $u0;
toplk(kk,1) = s0 : toplk(kk,2) = u0 $s0 = $s ; $u0 = $u;
s0 = s : u0 = u }
next break;
exit for }
end if closedir($dir);
next
next for($k=1;$k<=$maxtop;$k++) { // affichage
?><A href="<? echo $rep.$toplk[$k][2];?>">
for k = 1 to maxtop ' affichage <? echo STR_REPLACE(".php","",$toplk[$k][2]);?>
%><A href="asphp/fiches/<%=toplk(k,2)%>"> </A><br>
<%=REPLACE(toplk(k,2),".asp","")%> <? } ?>
</A><br>
<%next %>
Compris ?
Remarques
1. Le dossier dans lequel se situe la page courante est "."
<%=predeb%><% dir=Server.MapPath(".") <%=predeb%><? $dir=opendir(".");
ou
%><%=prefin%> ?><%=prefin%>
Application
Si vous avez bien assimilé cette fiche et les précédentes, vous devriez être en mesure de
produire quelque chose comme cela ! sinon, les explications sont ici...
Enjoy !
Quel que soit le fichier, on peut le lire via le File System... Nous nous intéresserons ici aux fichiers
contenant du texte, traditionnellement d'extension .txt mais cela peut être aussi .html ou .asp ou
.php ... etc !
Comment faire ?
Attention au \
Ouvrir le fichier
<% set inF = FSO.OpenTextFile(Fnm,1,false) %>
Sur la page d'accueil, le menu "News" est non seulement ordonné automatiquement comme nous l'avons vu
précédemment, mais il affiche aussi le descriptif de chaque page... en fait, il va lire dans le source de chacune
des fiches sélectionnées une ligne qui commence par "desc=" :
next %>
Compris ?
Remarques
1. En PHP, on peut ouvrir et lire une page Web distante... pratique pour l'indexer !
Enjoy !
Lister un dossier << Lire un fichier >> Ecrire dans un fichier
Comment faire ?
Obtenir un pointeur vers le fichier qui nous intéresse Définir le fichier qui nous intéresse
<% Set FSO = _ <? $Fnm = "rep_1/fichier_1.ext"); ?>
Server.CreateObject("Scripting.FileSystemObject")
dir = Server.MapPath("/")
set filePt = FSO.getFile(dir & "\rep_1\fichier_1.ext") %>
Puis copier le fichier
<? copy($Fnm,"rep_2/fichier_2.ext"); ?>
Puis copier le fichier
<% filePt.Copy dir & "\rep_2\fichier_2.ext" %>
ou le renommer/déplacer
<? rename($Fnm,"rep_2/fichier_2.ext"); ?>
ou le renommer/déplacer
<% filePt.Move dir & "\rep_2\fichier_2.ext" %>
ou le détruire
<? unlink($Fnm); ?>
ou le détruire
<% filePt.Delete %>
Lorsqu'un visiteur propose un nouveau site sur la page liens, il crée en fait un nouveau fichier, contenant son formulaire,
dans un dossier "temp"... En mode admin, je peux visualiser l'ensemble des sites proposés afin de pouvoir aller vérifier
s'ils correspondent aux critères, voire modifier le descriptif ou contacter l'auteur... Deux liens apparaissent aussi :
Compris ?
Ecrire dans un fichier << Gérer fichiers et dossiers >> Compléments
Lire 04/12/2001 de JP
BONJOUR EST -IL POSSIBLE D'AFFICHER LE CONTENU D'UN DOSSIER SUR UN SERVEUR ...
● 04/12/2001 de fabrice69 Premiere chose > Evites les majuscules sur...
● 04/12/2001 de WarGoat tu peux afficher tout ce qui se trouve sur l...
Dans de nombreux cas, il est intéressant d'écrire dans des fichiers plutôt que dans une base de
données... C'est souvent plus souple et plus rapide d'accès ! On peut écrire dans un fichier .txt mais
aussi, et là ça devient très intéressant, dans un fichier .html ou .asp ou .php !!! pour créer
automatiquement de nouvelles pages Web qui pourront être adressées directement, sans queryString !
Comment faire ?
En ASP, il faut qu'un dossier soit déprotégé en écriture En PHP, il faut s'assurer que les droits en écriture
(demandez à l'admin de votre hébergeur de le faire) ont été donnés au dossier (chmod ou via le logiciel
FTP)
Ensuite
Ensuite
Créer un objet Scripting.FileSystemObject
Définir le fichier qui nous intéresse
<% Set FSO = _
Server.CreateObject("Scripting.FileSystemObject") %> <? $Fnm = "mon_dossier/mon_fichier.ext"); ?>
Beaucoup de fonctions du site utilisent le File System... par exemple pour pouvoir afficher le Top de vos Hits, un
fichier .txt au nom de la fiche est mis à jour à chaque fois qu'une page est visitée... un "." lui est ajouté... du
coup, une simple lecture de la taille de ce fichier indique son nombre de hits et permet un classement rapide :
Remarques
1. En PHP, on peut écrire sur un serveur distant...
<? $inF = fopen("ftp://login:pass@www.site.com/www/mon_rep/mon_fichier.txt","w"); ?>
Application
Si vous avez bien assimilé cette fiche et les précédentes, vous devriez être en
mesure de produire quelque chose comme cela ! sinon, les explications sont
ici...
Enjoy !
Lire un fichier << Ecrire dans un fichier >> Gérer fichiers et dossiers