Vous êtes sur la page 1sur 89

ASP-PHP.

net - Tutorial ASP-PHP

Tutorial ASP-PHP
Des fiches d'initiation mixtes ASP | PHP

Rubriques ASP-PHP.net / Tutorial / Asp-php / Accueil


Tutoriaux
Exercices
Scriptothèque
Download
Etudiants
Articles Installation rapide Comment installer ASP ou PHP en quelques minutes !
Livres 1ère page Quelques bases pour démarrer
Liens Hébergement Nos hébergeurs préférés
Rédacteurs
Eléments de base Variables, tableaux, fonctions et procédures
Structure type d'une page Comment structurer ses pages ASP ou PHP ?

Recherche Les QueryStrings Transmettre des informations par l'URL


Les Cookies Transmettre des informations entre 2 visites
Services
Les Formulaires Récupérer les champs d'un formulaire (method POST)
Forums
IRChat Les variables d'environnement Collecter des informations sur le visiteur
Liste Les variables de Session Transmettre des infos sans l'URL ou gérer un caddy
Votre avis Envoyer un E-mail Emettre un courriel directement par le serveur !
Partenariat
Glossaire Un peu de vocabulaire
NewsLetter
Upload de fichiers Vos visiteurs déposent des fichiers sur votre site
2884 E-mail
S'abonner
Compléments Quelques fiches pour préciser le tutorial
Nouveautés Installer IIS5 - Envoyer un mail avec CDONTS -
Partenaires Origine du visiteur - Listes déroulantes -
Skystats Sélections multiples - UpLoad & BD - Mise en page -
Admin Composants ASP - Editeurs - Date & Time -
access Pagination - Expressions régulières - Recherche -
Votre skin ASP en JScript - Formulaire en Flash -
Include
Skins
Bases de données Accrochez une base de données à votre site !
News en Connexion à une base - Formulaires et BD -
flash Lister la base - Editer la base - Requêtes -
Mot de Administration -
passe
Access to
mys

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/ (1 of 2) [16/12/2001 11:39:59]


ASP-PHP.net - Tutorial ASP-PHP

Le File System Manipulez les fichiers et dossiers de votre site !


Lecture d'un répertoire - Lecture d'un fichier -
Ecrire dans un fichier - Gérer les fichiers et dossiers -

Le résumé ?

Top
Installation
Connexion
Formulaires
1ere page
Form et
base
Requetes
Structure
Listing
Sessions

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/ (2 of 2) [16/12/2001 11:39:59]


ASP-PHP.net - Installation rapide

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 !...

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/installation.asp (1 of 3) [16/12/2001 11:40:19]


ASP-PHP.net - Installation rapide

Et si tout fonctionne correctement... passez à la suite !

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) !

JavaScript << Installation >> 1ère page

Commentaires sur cette page Chercher


Pseudo
E-mail

Créer un nouveau sujet

Lire 14/12/2001 de norddine


PWS sur windows millenium
● 14/12/2001 de ludo Quel est le soucis? Relis bien cette page pour le...
Lire 11/12/2001 de pierre
Je fais partis d'une radio associative. Je souhaiterais créer une page web ...
● 11/12/2001 de ludo Commence par ici : http://www.asp-php.net/asph...
Lire 10/12/2001 de scopegmi
j'ai créé un intranet j'utilise pws winMe access et asp en local pa de pr...
● 11/12/2001 de WarGoat tu as vérifié toutes tes connexions réseaux?...
● 11/12/2001 de scopegmi si je partage le dossier wwwroot en faisant...
● 14/12/2001 de norddine y'a t'il pws sur windows millenium ?
Lire 08/12/2001 de Tanguy
Bonjour à tous, Voila je viens d'installer EasyPHP et voila que sur Win ...
● 08/12/2001 de ludo Pour XP c'est marqué sur leur site qu'il faut met...
Lire 07/12/2001 de rito
bonjour, y aurait il quelqu'un qui voudrait m'aider a installer un top 50 s...
● 08/12/2001 de ludo Il doit forcement y avoir un readme avec le scrip...
● 08/12/2001 de ludo Quelle est l'URL du script que j'aille y faire un...
Lire 05/12/2001 de yassine
j ai installé easyphp , j'ai creé pas page dans le repertoire www de easyph...
● 06/12/2001 de ludo Tu ne ferais pas tourner IIS en meme temps par ha...
Lire 05/12/2001 de Philip
je viens de faire les essai.asp et essai.php, mais pour les scipt php je do...
● 05/12/2001 de fabrice69 Normal il faut avoir le module PHP install...

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/installation.asp (2 of 3) [16/12/2001 11:40:19]


ASP-PHP.net - 1ère page

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

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/1ere_page.asp (1 of 6) [16/12/2001 11:40:32]


ASP-PHP.net - 1ère page

2884 E-mail Le langage


S'abonner
Les adeptes du JavaScript et du Visual Basic Script seront ravis, les autres moins...
Nouveautés En effet, ASP utilise l'un ou l'autre, il suffit de le déclarer par <% @language=javascript %> ou <%
Partenaires @language=vbscript %> (VBScript par défaut) et PHP utilise une syntaxe très proche du JavaScript...
Skystats
Donc tout repose là-dessus au début, soit vous savez déjà scripter, et ASP ou PHP vous sembleront assez
Admin
simples, soit ce n'est pas le cas, et là, il vaudrait mieux commencer par apprendre ces langages... Il va
access
de soi qu'une bonne connaissance du langage HTML est indispensable et si ce n'est pas le cas, allez voir
Votre skin
Phoebe ! (je pense notamment aux utilisateurs d'éditeurs WYSIWYG !...)
Include
Skins Documentations complètes :
News en ● JScript : http://msdn.microsoft.com/library/en-us/script56/html/js56jsoriJScript.asp
flash ● VBScript : http://msdn.microsoft.com/library/en-us/script56/html/vbscripttoc.asp
Mot de ● PHP : http://www.php.net/manual/fr
passe
Access to
mys Afficher
● En HTML, il suffit d'écrire le texte à afficher...
● En JavaScript, on utilise la fonction Write de l'objet Document document.write("Mon texte à afficher")
● En ASP, on utilisera la fonction Write de l'objet Response response.write("Mon texte à afficher") ou son
raccourci <%="Mon texte à afficher"%>
● En PHP, on invoquera les fonctions Echo echo "Mon texte à afficher"; ou Print print("Mon texte à afficher");.
NB : les deux permettent l'écriture avec ou sans parenthèses !

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)

En fait, il suffit de dire au serveur :


SI cette condition est réalisée envoie ce code html SINON envoie cet autre code...

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>

<% if request.form("pass") = "toto" then <? if($pass == "toto") {


' si le visiteur a tapé "toto" dans le formulaire // si le visiteur a tapé "toto" dans le formulaire
' alors la page normale s'affiche // alors la page normale s'affiche
%> ?>

Placez ici le contenu de votre page... Placez ici le contenu de votre page...

<% else <? } else {


' sinon, le formulaire s'affiche // sinon, le formulaire s'affiche
%> ?>

<form method="post"> <form method="post">


<table><tr> <table><tr>
<td><input type="password" name="pass"></td> <td><input type="password" name="pass"></td>
<td><input type="Submit" value="Entrer"></td> <td><input type="Submit" value="Entrer"></td>

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/1ere_page.asp (3 of 6) [16/12/2001 11:40:32]


ASP-PHP.net - 1ère page
</tr></table> </tr></table>
</form> </form>

<% end if %> <? } ?>

</body></html> </body></html>

Tester l'exemple ? et pensez à regarder la source (click droit)


Remarquez aussi que c'est la même page qui s'affiche (URL) !...

A savoir pendant que j'y pense...


● ASP signifie Active Server Pages et PHP Pre Hypertext Processor... à force d'utiliser des sigles, on finirait par
oublier ce qu'ils veulent dire... :o)

● 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)

Installation << 1ère page >> Hébergement

Commentaires sur cette page Chercher


Pseudo
E-mail

Créer un nouveau sujet

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/1ere_page.asp (4 of 6) [16/12/2001 11:40:32]


ASP-PHP.net - Eléments de base

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

Recherche ● Déclaration : Pour choisir le nom d'une variable il faut :


1. Vérifier que ce nom n'est pas réservé (mot-clé ou constante du langage) ;
Services 2. Qu'il soit composé de lettres, chiffres ou _ (caractère de soulignement) ;
Forums 3. Que son initiale soit une lettre ;
IRChat 4. En PHP le faire précéder du symbole $.
Liste
Affectation : Pour remplir un réservoir avec une donnée, on utilise le symbole d'affectation = :
Votre avis

Partenariat
NewsLetter
mavar_1 = "bonjour" $mavar_1 = "bonjour"; met la chaîne "bonjour" dans la variable

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/elements.asp (1 of 8) [16/12/2001 11:40:44]


ASP-PHP.net - Eléments de base

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...

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/elements.asp (2 of 8) [16/12/2001 11:40:44]


ASP-PHP.net - Eléments de base
Il suffit d'un & devant le nom de variable... un exemple :

<?
$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

Mais un tableau peut être aussi à 2 dimensions... exemple :

1 2 3 4 5 6 7 8 9 10

2 4 6 8 10 12 14 16 18 20

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/elements.asp (3 of 8) [16/12/2001 11:40:44]


ASP-PHP.net - Eléments de base

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

<% dim montab(5,10) <?


for i = 1 to 5 for($i = 1; $i<=5; $i++)
for j = 1 to 10 for($j = 1; $j<=10; $j++)
montab(i,j) = i*j $montab[$i][$j] = $i*$j;
next ?>
next
%>

Remarquez les cases vides... en fait, le premier indice est à 0 !

Le tableau peut aussi être de dimension supérieure : 3, 4, ... 10 ou plus


mais pour le représenter sur le plan de cette page, c'est plus compliqué :o)

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

● Structure : Typiquement, une fonction a la structure suivante :

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/elements.asp (4 of 8) [16/12/2001 11:40:44]


ASP-PHP.net - Eléments de base

<% <?
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 }
%> ?>

● Variables locales ou globales :


Il peut y avoir des conflits si la fonction utilise des variables internes ayant le même nom qu'une variable de la page...
alors notez que :
- en ASP, les variables non déclarées dans la fonction sont globales par défaut d'où la nécessité de bien déclarer par dim
mavar celles qui doivent rester locales !
- en PHP, les variables non déclarées dans la fonction sont locales par défaut... pour accéder aux variables globales il
faut spécifier dans la fonction global $mavar; !

● 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" ?>
%>

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/elements.asp (5 of 8) [16/12/2001 11:40:44]


ASP-PHP.net - Eléments de base
● Récursivité : Les fonctions peuvent s'appeler elles-même... alors attention à bien en prévoir la sortie !!! Exemple de calcul
de factorielle :

<% <?
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 }

response.write fac(10) echo fac(10);


%> ?>

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 }

' Appel (pas de parenthèse !!!) : // Appel :


maproc prm1,prm2 maproc($prm1,$prm2);
%> ?>

Exemple Exemple

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/elements.asp (6 of 8) [16/12/2001 11:40:44]


ASP-PHP.net - Eléments de base

<% <?
sub showprod(p1,p2) function showprod($p1,$p2) {
response.write p1&"*"&p2&"="&p1*p2 echo $p1."*".$p2."=".$p1*$p2;
end sub }

' Appel qui affichera "5*12=60" // Appel qui affichera "5*12=60"


showprod 5,12 showprod(5,12);
%> ?>

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 !

Hébergement << Eléments >> Structure

Commentaires sur cette page Chercher


Pseudo
E-mail

Créer un nouveau sujet

Lire 06/12/2001 de nabuly


Salut à tous, j'ai un problème dans une boucle . response.write(sousRep....
Lire 03/12/2001 de googuy50
Salut tout le monde, je me suis mis au php et j'aurais voulu savoir comm...
● 03/12/2001 de WarGoat sur MySql ou sur SQL Server? sous mysql je ...
Lire 30/11/2001 de DJMATRIX
Question comme ca ! comment on fait pour generer un nombre aleatoire en asp...
● 30/11/2001 de WarGoat <% randomize response.write rnd() %>
Lire 12/11/2001 de naomi
id_max : je souhaite afficher en page d'accueil la date du dernier élément ...
● 12/11/2001 de WarGoat "select champ_date from table order by champ...
● 12/11/2001 de naomi Juste une précision : pour afficher le premier, ...
● 13/11/2001 de flipper Bonjour.Dans une page asp, j'aimerais recher...
● 14/11/2001 de WarGoat Naomi : ton recordset est placé sur le premi...

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/elements.asp (7 of 8) [16/12/2001 11:40:44]


ASP-PHP.net - Structure type d'une page

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

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/structure.asp (1 of 6) [16/12/2001 11:40:54]


ASP-PHP.net - Structure type d'une page

2884 E-mail
S'abonner

Nouveautés _top.asp _top.php


Partenaires
<% ' Quel navigateur ? <? // Quel navigateur ?
Skystats
Nav = Request.ServerVariables("HTTP_USER_AGENT") $nav = getenv("HTTP_USER_AGENT");
Admin if INSTR(Nav,"MSIE")=0 then Nav="NN" _ if(STRPOS($nav,"MSIE")) $nav="IE";
access else Nav="IE" %> else $nav="NN"; ?>
Votre skin
Include <HTML><HEAD><TITLE><%=titre%></TITLE> <HTML><HEAD><TITLE><? echo $titre; ?></TITLE>
Skins <!-- Feuille de styles adaptés au navigateur --> <!-- Feuille de styles adaptés au navigateur -->
News en <LINK REL="stylesheet" TYPE="text/css" <LINK REL="stylesheet" TYPE="text/css"
HREF="/styles_<%=Nav%>.css"> HREF="/styles_<? echo $nav; ?>.css">
flash
Mot de </HEAD><BODY> </HEAD><BODY>
passe <table width=100%><tr><td> <table width=100%><tr><td>
Access to description du bandeau haut description du bandeau haut
mys </td></tr></table> </td></tr></table>
<table width=100%><tr><td width=120 valign=top> <table width=100%><tr><td width=120 valign=top>
menu de gauche menu de gauche
</td><td valign=top> </td><td valign=top>

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

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/structure.asp (2 of 6) [16/12/2001 11:40:54]


ASP-PHP.net - Structure type d'une page

<% titre="Ma page 2" %> <? $titre="Ma page 2";


include("_top.php");
<!-- #include virtual="/_top.asp"--> ?>
et autre bla et rebla rebla...
et autre bla et rebla rebla... <?
include("_btm.php");
<!-- #include virtual="/_btm.asp"-->
?>

_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 1 : Un include peut en appeler d'autres !... NB : on peut inclure un fichier de 2 manières :

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.

On appelle cette technique SSI (Server Side Include) :

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 !

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/structure.asp (4 of 6) [16/12/2001 11:40:54]


ASP-PHP.net - Structure type d'une page

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...

Eléments << Structure >> QueryString

Commentaires sur cette page Chercher


Pseudo
E-mail

Créer un nouveau sujet

Lire 12/12/2001 de embuskade


HELP ME! j'ai 1 prob tout con!! j'ai plusieur repertoire et j'ai structuré ...
● 12/12/2001 de Didier Remarque 2 sur cette page : http://www.asp-ph...
Lire 07/12/2001 de eric
Salut WarGoat, Jusqu’à présent je ne suis intervenu qu’une fois, (bon si...
● 07/12/2001 de WarGoat dans le fichier top.asp, regarde si il n'y a...
● 10/12/2001 de eric Merci, pour l'info, mon include était trop "bas" ...
Lire 07/11/2001 de ffomnislash
J'ai réussi a faire ma page a l'exeption que entre les bords de la page est...
● 07/11/2001 de WarGoat essaie cela : <body leftmargin="0" topma...
● 07/11/2001 de ffomnislash sa a marché en partie, au départ l'éca...
● 07/11/2001 de ffomnislash J'ai aussi un autre probleme du même g...
● 08/11/2001 de Didier <table border=0 cellspacing=0 cellpadding=0>
● 09/11/2001 de ffomnislash J'ai fait exactement tous ce que vous ...
Lire 24/10/2001 de fred
si on intègre dans la page _top.asp des META, est-ce que les robots des mot...
● 24/10/2001 de ludo Oui ca ta page sera "rendue" en html, 2eme soluti...
● 25/10/2001 de Didier C'est exactement ce qui est fait sur ce site !...
Lire 24/10/2001 de fred
Bonjour, avec l'appel <!--#include virtual="top.asp"--> de la page top.asp ...
● 24/10/2001 de fred par contre cela marche avec <!--#include file="to...
● 25/10/2001 de Didier virtual attend une adresse absolue à partir de...

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/structure.asp (5 of 6) [16/12/2001 11:40:54]


ASP-PHP.net - Les QueryStrings

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 :

● L'adresse de la page : http://www.monsite.com/monrep/liste.asp ;


● le paramètre id de valeur 1257 : ?id=1257 ;
Recherche ● le paramètre lng de valeur en : &lng=en ;
● le paramètre act de valeur del : &act=del ;
Services ● le paramètre email de valeur cid@fr.fm : &email=cid@fr.fm
Forums
Elle pourrait avoir, par exemple, la signification suivante : "Le visiteur n° 1257 de langue anglaise
IRChat
demande la suppression de son email cid@fr.fm de la liste de diffusion" !
Liste
Votre avis On remarquera que le premier paramètre est précédé de ? alors que les suivants le sont de &
Partenariat
NewsLetter

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 :

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/querystring.asp (1 of 5) [16/12/2001 11:41:10]


ASP-PHP.net - Les QueryStrings

<A href="p2.asp?lng=<%=Request.QueryString("lng")%>"> <A href="p2.php?lng=<? echo $lng; ?>">

Le résumé ? Un exemple d'application utilisé sur ce site (ASP) :


Top Si vous êtes abonné à la liste de diffusion du site, un lien apparaît dans la colonne de gauche vous permettant
Installation de vous désabonner. Il est de la forme :
Connexion
Formulaires <A href="http://www.asp-php.net/asphp2/fr/tutorial/asp-php/querystring.asp?email=didier@asp-php.net">
1ere page
Form et
base Si vous cliquez dessus, voilà ce qui va se produire :
Requetes
Structure
Listing
Sessions
<% if Request.QueryString("email")<>"" then <? if($email) {
' suppression de la fiche dans la base // suppression de la fiche dans la base
' destruction du cookie // destruction du cookie
' affichage du message de confirmation // affichage du message de confirmation
end if %> } ?>

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 ?

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/querystring.asp (2 of 5) [16/12/2001 11:41:10]


ASP-PHP.net - Les QueryStrings

demoquery2.asp demoquery2.php
Imprimer le script Imprimer le script
Recevoir Recevoir

<% LANG = request.queryString("lang") <? if(!$lang) $lang="fr"; ?>


if LANG = "" then LANG = "fr" <HTML><BODY>
PAGE = request.queryString("page") <div align=center>
%> <A href="?lang=fr&page=<?echo $page;?>"
<HTML><BODY> ><img src="fr.gif" border=0></A>&nbsp;
<div align=center> <A href="?page=1&lang=<?echo $lang;?>"
<A href="?lang=fr&page=<%=PAGE%>" >Page 1</A> -
><img src="fr.gif" border=0></A>&nbsp; <A href="?page=2&lang=<?echo $lang;?>"
<A href="?page=1&lang=<%=LANG%>">Page 1</A> - >Page 2</A> -
<A href="?page=2&lang=<%=LANG%>">Page 2</A> - <A href="?page=3&lang=<?echo $lang;?>"
<A href="?page=3&lang=<%=LANG%>">Page 3</A> >Page 3</A>
&nbsp;<A href="?lang=en&page=<%=PAGE%>" &nbsp;<A href="?lang=en&page=<?echo $page;?>"
><img src="en.gif" border=0></A> ><img src="en.gif" border=0></A>
</div><hr> </div><hr>
<% select case request.queryString("page") <? switch($page) {
case "1" : case "1" :
if LANG = "fr" then%> if($lang=="fr") {?>
Ce que vous voulez afficher sur la page 1 Ce que vous voulez afficher sur la page 1
<%else%> <? } else { ?>
What you want to display on page 1 What you want to display on page 1
<%end if <? }
case "2" : break; case "2" :
if LANG = "fr" then%> if($lang=="fr") {?>
Ce que vous voulez afficher sur la page 2 Ce que vous voulez afficher sur la page 2
<%else%> <? } else { ?>
What you want to display on page 2 What you want to display on page 2
<%end if <? }
case "3" : break; case "3" :
if LANG = "fr" then%> if($lang=="fr") {?>
Ce que vous voulez afficher sur la page 3 Ce que vous voulez afficher sur la page 3
<%else%> <? } else { ?>
What you want to display on page 3 What you want to display on page 3
<%end if <? }
case else : break; default :
if LANG = "fr" then%> if($lang=="fr") {?>
Ce que vous voulez afficher sur la page d'accueil Ce que vous voulez afficher sur la page d'accueil
<%else%> <? } else { ?>
What you want to display on home page What you want to display on home page
<%end if <? }
end select%> }?>
</BODY></HTML> </BODY></HTML>

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

Français Anglais à cocher ?


Ensuite, regardez l'URL ! (barre d'adresses)
demoquery3.html
Imprimer le script
Recevoir

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/querystring.asp (3 of 5) [16/12/2001 11:41:10]


ASP-PHP.net - Les QueryStrings

<form><table border=0 cellspacing=0 bgcolor=#EEEEFF><tr>


<th colspan=4 nowrap><b>Remplissez ce formulaire, puis "OK"</b></th>
</tr><tr>
<th colspan=2><input type="text" name="champ1"></th>
<th colspan=2><input type="Submit" value=" OK "></th>
</tr><tr>
<th><input type="radio" name="lng" value="fr">Français</input></th>
<th><input type="radio" name="lng" value="en">Anglais</input></th>
<th colspan=2><input type="checkbox" name="case">à cocher ?</input></th>
</tr><tr>
<th colspan=4 nowrap><b>Ensuite, regardez l'URL !</b> (barre d'adresses)</th>
</tr></table></form>

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" :

<% =Request.ServerVariables("QUERY_STRING") %> <? echo getenv("QUERY_STRING"); ?>


ou

Ici c'est rien!

3. Elle peut, en outre, se décomposer facilement ... pratique pour stocker les valeurs dans un fichier par exemple :

<% for i = 1 to Request.QueryString.Count%>


<? while (list($cle, $val) = each($HTTP_GET_VARS))
- <%=Request.QueryString.Item(i)%><br>
echo "- ".$val."<br>"; ?>
<%next%>

Compris ?

Structure << QueryString >> Cookies

Commentaires sur cette page Chercher


Pseudo
E-mail

Créer un nouveau sujet

Lire 13/12/2001 de Kenny


g rien pigé... :)Et comment je fait si par exemple une news dont le liens e...
● 13/12/2001 de ludo 1ere étape : récuperer l'id = lire cette page 2e...
Lire 10/12/2001 de kidd
Hello les pros, j'ai un petit probleme. je récupère une variable nomform =...
● 11/12/2001 de WarGoat pkoi *alix* ?
● 11/12/2001 de kidd * et ? comme wildcards.... ça m'a fait suer mais ...
Lire 10/12/2001 de katmayes
Hello, ja'i un big prob j'ai utilisé le script pour faire la pagination ...

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/querystring.asp (4 of 5) [16/12/2001 11:41:10]


ASP-PHP.net - Les Formulaires

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 %> <? } ?>

<FORM method="POST" action="ma_page.asp"> <FORM method="POST" action="ma_page.php">


<input type="text" name="mon_champ"> <input type="text" name="mon_champ">
<input type="Submit" value="OK"> <input type="Submit" value="OK">
</FORM> </FORM>
Le résumé ?

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

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/formulaires.asp (2 of 7) [16/12/2001 11:41:22]


ASP-PHP.net - Les Formulaires

<% URL = Request.ServerVariables("SCRIPT_NAME") <? $URL = $PHP_SELF; // page courante

if Request.QueryString("email")<>"" then if($desab) {


' Retrait de la base non détaillé ici // Retrait de la base non détaillé ici
Response.Cookies("email")="" setcookie("email");
Response.Cookies("email").Expires = Date-1 Header("Location: ".$URL);

elseif Request.Form("email")<>"" then } else if($abon) {


' Ajout à la base non détaillé ici // Ajout à la base non détaillé ici
Response.Cookies("email")=Request.Form("email") setcookie("email",$abon,time()+365*86400);
Response.Cookies("email").Expires = Date+365 Header("Location: ".$URL);
end if } ?>

Email = Request.Cookies("email") %> <script language="JavaScript"><!--


function abonne() {
<script language="JavaScript"><!-- // vérif du contenu non détaillé ici
function abonne() { document.newsletter.submit()
// vérif du contenu non détaillé ici }
document.newsletter.submit() //--></script>
}
//--></script> <form name="newsletter"
method="post" action="<? echo $URL; ?>">
<form name="newsletter" <? if($email) { ?>
method="post" action="<%=URL%>"> <input type="text" name="abon" DISABLED
<%if Email <> "" then%> value="<? echo $email; ?>"><br>
<input type="text" name="email" DISABLED <A href="<? echo $URL; ?>?desab=<? echo $email; ?>">
value="<%=Email%>"><br> Désabonnement</A>
<A href="<%=URL%>?email=<%=Email%>"> <? } else { ?>
Désabonnement</A> <input type="text" name="abon" value="E-mail">
<%else%> <br><A href="javascript:abonne()">S'abonner</A>
<input type="text" name="email" value="E-mail"> <? } ?>
<br><A href="javascript:abonne()">S'abonner</A> </form>
<%end if%>
</form>
NB : Il faut différencier les noms des champ, cookie et query et
recharger la page (Header...) pour activer ou désactiver le
cookie !

Compris ?

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/formulaires.asp (3 of 7) [16/12/2001 11:41:22]


ASP-PHP.net - Les Formulaires

Remarques
1. On peut réappeler la page courante de la manière suivante :

<FORM action= <FORM


"<%=Request.ServerVariables("SCRIPT_NAME")%>"> action="<? echo $PHP_SELF; ?>">

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>

<form method="POST" action="ma_page.ext" onSubmit="return test(this.lenom,this.lemail)">


<table><tr>
<td>Nom</td><td><input name="lenom"></td>
<td>Email</td><td><input name="lemail"></td>
<td><input type="Submit" value="Envoyer"></td>
</tr></table>
</form>

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/formulaires.asp (4 of 7) [16/12/2001 11:41:22]


ASP-PHP.net - Les Formulaires

3. On peut lire séquentiellement le contenu de tous les champs ... pratique pour stocker les valeurs dans un
fichier par exemple :

<%for each truc in request.form%>


<? while (list($cle, $val) = each($HTTP_POST_VARS))
<%=Request.Form(truc)%><br>
echo $val."<br>"; ?>
<%next%>

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 :

<% texte = Request.Form("mon_champ") <? $texte = $mon_champ;


texte =REPLACE(texte,"<","&lt;") $texte = STR_REPLACE("<","&lt;",$texte);
' etc... // etc...
%> ?>

<%=texte%> <? echo texte; ?>

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 :

● Rappels HTML car c'est souvent là que ça coince... Merci Phoebe !


● Valider un formulaire avec JavaScript et envoyez-vous un mail !
● Listes déroulantes en réponse à vos questions sur les <select>
● Form & BD comment remplir une base de données en lisant un formulaire...
● Upload Un formulaire qui permet de sélectionner un fichier sur son PC
● Un formulaire en Flash ? Si, si... c'est possible !...:o)

A lire aussi : Les règles d’or du formulaire en ligne

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/formulaires.asp (5 of 7) [16/12/2001 11:41:22]


ASP-PHP.net - Les Formulaires
Enjoy !

Cookies << Formulaires >> Environnement

Commentaires sur cette page Chercher


Pseudo
E-mail

Créer un nouveau sujet

Lire 12/12/2001 de nat


Salut, Félicitations pour votre site, il est super! J'ai une liste dér...
● 12/12/2001 de Didier <select name="mois"> <% mois=Array("","Janvie...
● 12/12/2001 de nat Merci! Didier, pour ta réponse, mais j'ai encore ...
● 12/12/2001 de Didier Euh... il fonctionnait mon code, je l'ai testé...
● 12/12/2001 de nat Désolé, Didier Mais lorsque j'écris le même code...
● 13/12/2001 de ludo & i &
Lire 11/12/2001 de romain
Salute, g un g'tit probleme (comme d'habitude me direz vous) mais j'envois...
● 11/12/2001 de fabrice69 Charge le en variable de session ou passe ...
● 11/12/2001 de ludo http://www.asp-php.net/asphp2/fr/tutorial/asp-php...
Lire 06/12/2001 de valérie
peut-on faire des classes en asp?
● 06/12/2001 de WarGoat je crois, oui mais ne me demande pas commen...
● 06/12/2001 de ludo Tu peux aller voir ici : http://asp-code.aspsa...
Lire 05/12/2001 de kjaxit
Bonjour, J'ai un petit pb ds un fichier HTML, avec la ligne ci-dessous <I...
● 05/12/2001 de nabuly quel type de pb ?
Lire 04/12/2001 de surprise
Pour les doués ! Comment faire pour afficher ds un form une date à laquelle...
● 05/12/2001 de fabrice69 <%.. NouvDate = DateAdd("h", 1, now) %...
● 05/12/2001 de fabrice69 Pour juste l'heure : ... value="<%=Hour(...
Lire 03/12/2001 de NES
ASP : comment je peux utiliser dans le WHERE d'une requête SQL, une variabl...
● 03/12/2001 de Max Starr <% SQL = "SELECT * FROM [tabase] WHERE to...
● 04/12/2001 de fabrice69 SQL = "SELECT * FROM TaTable WHERE TonCham...
Lire 28/11/2001 de nono
Bonjour, je voudrais essayer de bloquer l'history, est ce possible ? J'ai ...
● 28/11/2001 de WarGoat tu peux interdire le clic droit, ouvrir dans...

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/formulaires.asp (6 of 7) [16/12/2001 11:41:22]


ASP-PHP.net - Les variables d'environnement

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

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/environnement.asp (1 of 6) [16/12/2001 11:41:31]


ASP-PHP.net - Les variables d'environnement

Connaître les sites


URL de la qui font un lien
http://www.asp-
HTTP_REFERER page vers le vôtre,
php.net/asphp2/fr/tutorial/asp-php/
précédente repérer l'origine
d'une erreur 404
Améliorer la
Type de Mozilla/3.0 (compatible; WebCapture 2.0;
HTTP_USER_AGENT compatibilité du
navigateur Windows)
Le résumé ? site
Paramètres
Top QUERY_STRING Stats
de l'URL
Installation
Connexion Traçage de la
REMOTE_ADDR IP du visiteur 80.13.47.70
Formulaires visite
1ere page Méthode Différencier les
Form et REQUEST_METHOD utilisée types d'accès à GET
base GET ou POST une page
Requetes URL de la
Redirection sur la /asphp2/fr/tutorial/asp-
Structure SCRIPT_NAME page
même page, stats php/environnement.asp
Listing courante
Sessions Reconstituer une
URL complète,
Nom du différencier un
SERVER_NAME www.asp-php.net
serveur appel interne
(localhost) ou
externe

Petits exemples simples :

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 %> <? } ?>

Test du serveur (en local ou non ?)

<% <?
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 %> } ?>

Redirection sur la page courante

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/environnement.asp (2 of 6) [16/12/2001 11:41:31]


ASP-PHP.net - Les variables d'environnement

<% <? // $URL = $PHP_SELF; est équivalent


URL = Request.ServerVariables("SCRIPT_NAME") $URL = getenv("SCRIPT_NAME");
if Request.Form("mon_champ")<>"" then if($mon_champ) {
' traîtements divers // traîtements divers
Response.Redirect URL ' recharge la page Header("Location: ".$URL); // recharge la page
else %> } else { ?>
... ...
<form method="post" action="<%=URL%>"> <form method="post" action="<?echo $URL;?>">
... ...
<% end if %> <? } ?>

Ajuster les styles au navigateur

<% <?
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>
... ...

Un exemple d'application utilisé sur ce site (ASP) :

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 }

temp = now & "|" _ $temp = date("d/m/Y G:i:s") . "|";


& Request.ServerVariables("REMOTE_ADDR") & "|" _ $temp .= getenv("REMOTE_ADDR") . "|";
& Request.ServerVariables("HTTP_ACCEPT_LANGUAGE") _ $temp .= getenv("HTTP_ACCEPT_LANGUAGE");
& "|" & Request.ServerVariables("SERVER_NAME") _ $temp .= "|" . getenv("SERVER_NAME");
& Request.ServerVariables("SCRIPT_NAME") & "?" _ $temp .= getenv("SCRIPT_NAME") . "?";
& Request.ServerVariables("QUERY_STRING") & "|" _ $temp .= getenv("QUERY_STRING") . "|";
& Request.ServerVariables("HTTP_REFERER") & "|" _ $temp .= getenv("HTTP_REFERER") . "|";
& Request.ServerVariables("HTTP_USER_AGENT") & "|" _ $temp .= getenv("HTTP_USER_AGENT") . "|";
& Request.Cookies("mail") $temp .= $mail;

saveHit temp saveHit($temp);


%> ?>

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/environnement.asp (3 of 6) [16/12/2001 11:41:31]


ASP-PHP.net - Les variables d'environnement

La chaîne suivante vient donc d'être enregistrée concernant ce hit :


16/12/2001 11:56:10|80.13.47.70||www.asp-php.net/asphp2/fr/tutorial/asp-
php/environnement.asp?|http://www.asp-php.net/asphp2/fr/tutorial/asp-php/|Mozilla/3.0 (compatible;
WebCapture 2.0; Windows)|

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 :

<table> <? echo phpinfo(); ?>


<% for each itm in Request.ServerVariables %>
<tr><td><%=itm%></td>
<td><%=Request.ServerVariables(itm)%></td>
</tr>
<% next %>
</table>

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 centrePop(url,largeur,hauteur) { // centre le PopUp sur l'écran


var gauche = (screen.width - largeur)/2
var haut = (screen.height - hauteur)/2
return window.open(url,"","width="+largeur+",height="+hauteur+",left="+gauche+",top="+haut)
}

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>

<A href="javascript:infos()">Tester le script</A>

Enjoy !

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/environnement.asp (4 of 6) [16/12/2001 11:41:31]


ASP-PHP.net - Les variables d'environnement

Formulaires << Environnement >> Sessions

Commentaires sur cette page Chercher


Pseudo
E-mail

Créer un nouveau sujet

Lire 09/12/2001 de chap


je voudrais gerer les erreurs d 'envoi email avec cdonts, savoir l'adress ...
Lire 06/11/2001 de Laurent
Bonjour à tous, J'ai suivi les nombreux tutoriaux relatifs au fichier gl...
● 07/11/2001 de ludo Une session se termine après son timeout, soit 20...
● 07/11/2001 de Didier La solution consiste donc à soit diminuer ton ...
● 07/11/2001 de wargoat et en effectuant un décrément sur le session...
Lire 24/10/2001 de chrism
comment récupérer en asp le login de windows d'un internaute ?
● 24/10/2001 de stardancer Request.ServerVariables("AUTH_USER")
Lire 15/10/2001 de midtownmad
J'utilise CountUs sur mes site mais depuis que je programme en asp, quand j...
● 16/10/2001 de Didier Merci ! Faudrait voir ton code... Moi sur ce...
Lire 15/10/2001 de Manu
Salut. Je cherche un petit script capable de rediriger vers 2 pages différe...
● 15/10/2001 de Didier <% NAV = "IE" ' par défaut 98% sur ce site :o)...
Lire 05/10/2001 de Sam
Avec cette fonction <% Response.Redirect "http://www.mondomaine.com/home...
● 05/10/2001 de WarGoat je pense qu'il te retourne le nom d'utilisat...
● 05/10/2001 de Didier Sinon modifie la chaîne... genre <% user = R...
Lire 03/10/2001 de Befa
Salut, j'ai un pb de variable en php que je n'arrive pas à résoudre. voila...
● 04/10/2001 de Didier et à quoi sert la fonction intval() à ton avis...
● 04/10/2001 de Befa Bah, j'ai essayé elseif (intval($hour)==11){ ...
● 04/10/2001 de Didier Ben tiens, teste ça : <? $hour = intval("16"...
● 04/10/2001 de Befa J'ai peut être l'air casse couille, mais ça ne pa...
● 04/10/2001 de Didier Evidemment !!! toi tu vas mettre $hour=intval(...
● 04/10/2001 de Befa J'ai essayé avant de répondre, mais ça ne marche ...
● 04/10/2001 de Didier Essaye de la passer par trim() des fois que de...
● 04/10/2001 de Befa Avec $hour = intval("$hour"); il me retourne 0...
● 04/10/2001 de Didier et comme nombre de caractères ?
● 04/10/2001 de Befa Désolé, mais comment on récupère le nb de caractè...
● 04/10/2001 de Befa Sans passer par $hour = intval("$hour"); il ...
● 04/10/2001 de Didier et strlen(trim($hour)) dit quoi ?
● 05/10/2001 de Befa Merci du coup de main, mais j'ai finalement fait ...
Lire 14/09/2001 de kezayi
Si vous pouvez svp me traduire ce code ASP en PHP. Il me permet de recupere...
● 14/09/2001 de Didier Euh... <? if(getenv("REMOTE_USER")=="") e...
● 15/09/2001 de kezayi Merici Didier, Mais ce scriot ne renvoies que...
● 15/09/2001 de kezayi erratum: <?php $DefUser = getenv("USERNAME"...
● 15/09/2001 de Didier Demande alors à la liste http://www.asp-php.n...
Lire 27/08/2001 de SD
Je travaille actuellement sur NT4 et j'essaie par tout les moyens (même la ...
● 28/08/2001 de Didier http://support.microsoft.com/support/kb/articl...
● 28/08/2001 de SD Merci pour ton aide je vais voir si j'arrive à compr...

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/environnement.asp (5 of 6) [16/12/2001 11:41:31]


ASP-PHP.net - Les variables de Session

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

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/sessions.asp (1 of 7) [16/12/2001 11:41:43]


ASP-PHP.net - Les variables de Session

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"); ?>

Le résumé ? Modification de leur durée de vie (defaut= 20 min)


en cas d'inactivité de l'internaute Destruction de toutes
Top
<% Session.TimeOut=30 %> <? session_destroy(); ?>
Installation
Connexion
Formulaires
1ere page
Form et
base Un exemple d'application utilisé sur ce site (ASP) :
Requetes
Structure Le menu Nouveautés, dans la colonne bleue de gauche, est construit automatiquement en lisant la base... il est
Listing inutile de le reconstruire à chaque affichage de page, mais seulement une fois au début de votre connexion...
Sessions ensuite, il transite, de page en page, stocké dans une variable session :

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/sessions.asp (2 of 7) [16/12/2001 11:41:43]


ASP-PHP.net - Les variables de Session

<% if session("menunews") = "" then <? session_register("menunews");


temp = "<table><tr>" _ if($menunews == "") {
& "<th>Nouveautés</th></tr>" $menunews = "<table><tr>";
' Suite non détaillée ici $menunews.= "<th>Nouveautés</th></tr>";
temp = temp & "</table>" // Suite non détaillée ici
session("menunews") = temp $menunews.= "</table>";
end if %> } ?>
... ...
<%=session("menunews")%> <? echo $menunews; ?>
... ...

Un exemple plus complexe : Gérer un panier


Une variable de session peut aussi contenir un tableau... ce qui va permettre une gestion simple de caddy
comme vous en rencontrez souvent sur les sites de E-commerce... regardons comment faire : Tester
l'exemple ?

democaddy.asp democaddy.php
Imprimer le script Imprimer le script
Recevoir Recevoir

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/sessions.asp (3 of 7) [16/12/2001 11:41:43]


ASP-PHP.net - Les variables de Session

<% ' Gestion de panier <? // Gestion de panier


session_register("democaddy");
' Définition des produits et des prix
dim pdt(5,2) : i=0 // Définition des produits et des prix
i=i+1 : pdt(i,0)="Bananes" : pdt(i,1)=5 $i=0;
i=i+1 : pdt(i,0)="Citrons" : pdt(i,1)=7 $i++; $pdt[$i]=Array("Bananes",5);
i=i+1 : pdt(i,0)="Fraises" : pdt(i,1)=12.5 $i++; $pdt[$i]=Array("Citrons",7);
i=i+1 : pdt(i,0)="Pommes" : pdt(i,1)=4 $i++; $pdt[$i]=Array("Fraises",12.5);
i=i+1 : pdt(i,0)="Poires" : pdt(i,1)=8.75 $i++; $pdt[$i]=Array("Pommes",4);
$i++; $pdt[$i]=Array("Poires",8.75);
' Initialisation du panier
if not isarray(session("democaddy")) then dim caddy(5) _ // Ajout d'un produit
else caddy=session("democaddy") if(isset($add)) $democaddy[$add]++;
// Retrait d'un produit
' Ajout d'un produit elseif(isset($sub)) {
if request("add")<>"" then if($democaddy[$sub]>0) $democaddy[$sub]--; }
i=CINT(request("add")) // Vider le panier
caddy(i) = caddy(i) + 1 elseif(isset($vide)) $democaddy="";
' Retrait d'un produit ?>
elseif request("sub")<>"" then
i=CINT(request("sub")) <table bgcolor=#EEEEFF width=100%>
if caddy(i)>0 then caddy(i) = caddy(i) - 1 <tr>
' Vider le panier <td colspan=4>
elseif request("vide")<>"" then <b>Votre panier</b>
redim caddy(5) <A href="?vide=ok">Vider</A>
end if </td>
</tr><tr bgcolor=#CCCCDD>
' Mémorisation <th>Produit</th><th>Prix Unité</th>
session("democaddy") = caddy <th>Quantité</th><th>TOTAL</th>
%> </tr>
<? // Lecture du caddy
<table bgcolor=#EEEEFF width=100%> for($i=1;$i<=SIZEOF($pdt);$i++) {
<tr> $quant=$democaddy[$i]; if($quant=="") $quant=0;
<td colspan=4> $total = $total + $quant*$pdt[$i][1]?>
<b>Votre panier</b> <tr <?if($i%2==0)
<A href="?vide=ok">Vider</A> echo "bgcolor=#DDDDEE";?>>
</td> <td align=right><?echo $pdt[$i][0];?></td>
</tr><tr bgcolor=#CCCCDD> <td align=right><?echo $pdt[$i][1];?></td>
<th>Produit</th><th>Prix Unité</th> <td align=center>
<th>Quantité</th><th>TOTAL</th> <A href="?add=<?echo $i;?>">&nbsp;+&nbsp;</A>
</tr> <?echo $quant;?>
<% ' Lecture du caddy <A href="?sub=<?echo $i;?>">&nbsp;-&nbsp;</A>
for i = 1 to UBOUND(pdt) </td>
quant=caddy(i) : if quant="" then quant=0 <td align=right><?echo $quant*$pdt[$i][1];?></td>
total = total + quant*pdt(i,1)%> </tr>
<tr <%if i mod 2 = 0 then _ <? } ?>
response.write "bgcolor=#DDDDEE"%>> <tr bgcolor=#CCCCDD>
<td align=right><%=pdt(i,0)%></td> <td colspan=3 align=right><b>Montant de votre
http://www.asp-php.net/asphp2/fr/tutorial/asp-php/sessions.asp (4 of 7) [16/12/2001 11:41:43]
ASP-PHP.net - Les variables de Session
<td align=right><%=pdt(i,1)%></td> commande&nbsp;</b></td>
<td align=center> <td align=right><b><?echo $total; ?></b></td>
<A href="?add=<%=i%>">&nbsp;+&nbsp;</A> </tr>
<%=quant%> </table>
<A href="?sub=<%=i%>">&nbsp;-&nbsp;</A>
</td>
<td align=right><%=quant*pdt(i,1)%></td>
</tr>
<%next%>
<tr bgcolor=#CCCCDD>
<td colspan=3 align=right><b>Montant de votre
commande&nbsp;</b></td>
<td align=right><b><%=total%></b></td>
</tr>
</table>

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 !

Environnement << Sessions >> Envoi d'E-mail

Commentaires sur cette page Chercher


Pseudo
E-mail

Créer un nouveau sujet

Lire 12/12/2001 de christophe


Quelqu'un peut-il m'aider dans Macromedia ultradev 4 ? J'essaye depuis qu...
● 13/12/2001 de ludo A "la main" tu aurais deja fini :) http://www....
Lire 07/12/2001 de eric
Probleme : je veux que si le champ ("transaction_ok") que je met dans ma v...
● 08/12/2001 de ludo Enlève déjà les double () partout, ex : if sessi...
Lire 05/12/2001 de timesensitive
j'utilise des variables de session dans mon appli, ça tourne bien avec inte...
● 05/12/2001 de fabrice69 Les cookies. Il faut que tu parametre IE6...
● 05/12/2001 de timesensitive C'est bizzar car les propriétes IE 5...
● 05/12/2001 de fabrice69 Je te dis ca car j'ai eu le même probleme ...
● 05/12/2001 de timesensitive En fait je viens de trouver. ma page...
Lire 29/11/2001 de jul
Salut, les sessions en asp ? Quand est ce que la proc Session_OnEnd se lan...
● 29/11/2001 de jul Est ce que le fait que je soit sous Win NT4 et IIS...
● 30/11/2001 de WarGoat es tu allé voir là : http://www.asp-php.ne...
● 30/11/2001 de jul euh oui, mais le code ne marche pas plus que dans ...
● 07/12/2001 de Raynald j'ai trouvé un site coréen qui donne une sol...
Lire 29/11/2001 de eric
Le resultat de mon calcul est de 3 chiffre aprés la virgule, mais je le vou...
● 29/11/2001 de Didier formatnumber(tonnombre,2) http://msdn.microso...

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/sessions.asp (6 of 7) [16/12/2001 11:41:43]


ASP-PHP.net - Envoyer un E-mail

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 ●

%> une pièce jointe sur PHP France !

Une interface plus complète ?


(support HTML, CC, BCC et liste)

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/envoi_mail.asp (1 of 3) [16/12/2001 11:41:52]


ASP-PHP.net - Envoyer un E-mail

Une interface plus complète ?


(support HTML, CC, BCC, PJ et liste)

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

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/envoi_mail.asp (2 of 3) [16/12/2001 11:41:52]


ASP-PHP.net - Glossaire

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);

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/glossaire.asp (1 of 5) [16/12/2001 11:42:02]


ASP-PHP.net - Glossaire

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)

Longueur entier=len(chaine) $entier=strlen($chaine);


d'une chaîne

char=chr(code) $char=chr($code);
Conversion
Char <-> code=asc(char) $code=ord($char);
Code ASCII

tableau=Split(chaine, sep, -1, 1) $tableau=explode($sep,$chaine);


Conversion
Chaîne <-> chaine=Join(tableau, sep) $chaine=implode($sep,$tableau);
Tableau

Pour structurer ses scripts

Description

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/glossaire.asp (2 of 5) [16/12/2001 11:42:02]


ASP-PHP.net - Glossaire

if condition1 then if($condition1) {


' lignes à exécuter si condition1 est vraie // lignes à exécuter si condition1 est vraie
elseif condition2 then } elseif($condition2) {
Structure ' lignes à exécuter si condition1 est fausse // lignes à exécuter si condition1 est fausse
conditionnelle ' mais condition2 est vraie // mais condition2 est vraie
simple else } else {
' lignes à exécuter dans les autres cas // lignes à exécuter dans les autres cas
end if }

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
}

For compteur=debut To fin [Step pas]


' lignes à exécuter for($expr1;$expr2;$expr3) {
Next // lignes à exécuter si $expr2 est vraie
// $expr1 est exécutée dans tous les cas
Structure // $expr3 est exécutée en fin de boucle
itérative For Each element In groupe }
simple ' lignes à exécuter
Next
On peut forcer la sortie par un break;
ou le tour suivant par continue;
On peut forcer la sortie par un Exit For

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

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/glossaire.asp (3 of 5) [16/12/2001 11:42:02]


ASP-PHP.net - Glossaire

' initialiser le générateur // initialiser le générateur


Randomize srand((double)microtime()*1000000);
Tirer un nombre au hasard entre ' tirer le nombre // tirer le nombre
deb et fin inclus nombre=Int((fin - deb + 1) * Rnd + deb) $nombre=rand($deb,$fin);

Enjoy !

Upload de fichiers << Glossaire >> Connexion à une BD

Commentaires sur cette page Chercher


Pseudo
E-mail

Créer un nouveau sujet

Lire 06/12/2001 de ModalC


Est-ce que quelqu'un sait comment repérer si un champs est vide dans une ba...
● 06/12/2001 de ludo if isnull(rs("champ")) then...
● 06/12/2001 de ModalC Merci bcp!
Lire 03/12/2001 de Alexe
J'ai hebergé ma page Web personelle, mais je sais comment faire pour qu'ell...
● 03/12/2001 de Didier Soit à la main ici : http://www.google.fr/int...
● 03/12/2001 de Al Question: as-tu une IP fixe? Si oui, tout ce que tu ...
● 03/12/2001 de Al Didier, tu es décidément trop rapide pour moi... ;)
● 06/12/2001 de ModalC Oui, Google référencie également tout seul com...
Lire 25/11/2001 de BlackWizzard
Comment faire pour ne pas afficher les virgules d'un nombre du genre 66.666...
● 25/11/2001 de Didier En ASP : int() En PHP : floor()
Lire 15/11/2001 de fredsiriona
salut à tous concernant mon pb de liste c'est ok merci à tous quelle...
● 15/11/2001 de WarGoat toto = Len(la_chaine) ensuite, mid(tach...
● 15/11/2001 de fredsiriona merci
Lire 13/11/2001 de alexxx
quelles sont les fonctions en php pour redimensionner des images svp ?
● 14/11/2001 de Didier Va voir là : http://download.php.net/manual/f...
Lire 10/11/2001 de DragonMiki
salut salut , je ne comprends pas trop la phrase ci dessous de votre page :...
● 10/11/2001 de ludo Phrase exemple : "i love asp-php.net" = chaine r...
● 10/11/2001 de DragonMiki lol ok merci .. moi yen avoir compris ;)
Lire 06/11/2001 de stef
Salut ! Est ce que qqun sait quel est l'équivalent du GetImageSize de PHP...
● 06/11/2001 de wargoat avec size peut être : http://www.asp-php...
● 06/11/2001 de stef j'avais vu cette fonction mais elle ne renvoie pa...
● 06/11/2001 de wargoat ok, je n'avais pas compris ta question... j...
● 06/11/2001 de stef merci quand meme de ta rapidité....
● 06/11/2001 de fabrice69 Regarde avec la méthode pour le popup reta...
● 12/11/2001 de ludo Le script en ASP est aussi : http://webmaster....
Lire 05/11/2001 de kkwet
Comment faire un arrondi en php?? l'équivalent de <%= Round(ton_nombre, c...
● 05/11/2001 de fabrice69 Sur www.php.net , tu as la réponse : ----...
● 05/11/2001 de kkwet Merci bien... J'ai pas tout compris j'avais essa...
● 05/11/2001 de fabrice69 mdr surement oui, les voix du dieu APACHE...
● 05/11/2001 de kkwet oui oui ma fille!! mdrrrr ;o)
Lire 02/11/2001 de pinoc
bonjour j'ai un prob avec EXIT j'ai une suite de condition IF, et dè ...
● 03/11/2001 de Didier Faut structurer ton script autrement...

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/glossaire.asp (4 of 5) [16/12/2001 11:42:02]


ASP-PHP.net - Upload de fichiers

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

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/upload.asp (1 of 6) [16/12/2001 11:42:09]


ASP-PHP.net - Upload de fichiers

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) { ?>

On indique au composant la taille maxi acceptée pour les


fichiers (en octets)
on construit alors le nouveau path
<%mySmartUpload.MaxFileSize = 1024%>
<? $savefile= $rep.$userfile_name; ?>

Le résumé ? On déclenche l'upload


et on déplace le fichier temp au bon endroit
<%mySmartUpload.Upload%>
Top
<? move_uploaded_file($userfile, $savefile) ?>
Installation
Connexion
Formulaires puis la sauvegarde du fichier dans le répertoire déprotégé
1ere page de notre choix les infos disponibles sur le fichier sont (entre autres)
Form et <%intCount = mySmartUpload.Save(rep)%> <BR>Nom : <? echo($userfile_name); ?>
base <BR>Taille : <? echo($userfile_size); ?> octets
Requetes <BR>Type : <? echo($userfile_type);
Structure
Listing enfin on récupère une erreur éventuelle
Sessions <%if err then response.write err.description%>

Et pour plus d'infos


ou les infos sur les fichiers uploadés
sur l'upload en PHP

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/upload.asp (2 of 6) [16/12/2001 11:42:09]


ASP-PHP.net - Upload de fichiers

<% For each file In mySmartUpload.Files %> sur le composant AspSmartUpload


<BR>Nom : <%=file.FileName%> sur le composant SA-FileUp (by Ludo)
<BR>Taille : <%=file.Size%> octets
<BR>Type : <%=file.ContentType%>
<% next%>

Un petit exemple fonctionnel


Tester l'exemple ?

demoupload.asp demoupload.php
Imprimer le script Imprimer le script
Recevoir Recevoir

<HTML><BODY><CENTER> <HTML><BODY><CENTER>

<% On Error Resume Next <?


' Taille max des fichiers (octets) // Taille max des fichiers (octets)
MFS=1024 $MFS=1024;
' Répertoire de stockage (déprotégé) // Répertoire de stockage
rep="/data/upload" $rep="upload/";

Set mySmartUpload = _ if($userfile_size>0) {


Server.CreateObject("aspSmartUpload.SmartUpload") $savefile= $rep.$userfile_name;
mySmartUpload.MaxFileSize = MFS
mySmartUpload.Upload if (move_uploaded_file($userfile, $savefile)) { ?>
intCount = mySmartUpload.Save(rep) <b>Votre fichier a bien été enregistré !</b>
<BR>Nom : <? echo($userfile_name); ?>
if err = -2147220399 then %> <BR>Taille : <? echo($userfile_size); ?> octets
<b>Trop gros fichier !</b> <BR>Type : <? echo($userfile_type);
<i>( <%=MFS%> octets max.)</i> } else { ?>
<%elseif intCount>0 then %> <b>Erreur d'enregistrement !</b>
<b>Votre fichier a bien été enregistré !</b> <? }
<% For each file In mySmartUpload.Files %>
<BR>Nom : <%=file.FileName%> } elseif($userfile) { ?>
<BR>Taille : <%=file.Size%> octets <b>Trop gros fichier !</b>
<BR>Type : <%=file.ContentType%> <i>( <? echo $MFS;?> octets max.)</i>
<% next <? } ?>
elseif err <> 9 then %>
<b>Erreur d'enregistrement !</b> <FORM METHOD="POST"

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/upload.asp (3 of 6) [16/12/2001 11:42:09]


ASP-PHP.net - Upload de fichiers
<br><%=err.description%> ENCTYPE="multipart/form-data">
<%end if%> <INPUT TYPE=HIDDEN NAME=MAX_FILE_SIZE
VALUE=<? echo $MFS;?>>
<FORM METHOD="POST" <INPUT TYPE=FILE NAME="userfile"><BR>
ENCTYPE="multipart/form-data"> <INPUT TYPE=SUBMIT value="Enregistrer le fichier">
<INPUT TYPE=FILE NAME="userfile"><BR> </FORM>
<INPUT TYPE=SUBMIT value="Enregistrer le fichier">
</FORM> LISTE DES FICHIERS TELECHARGES
<BR><TABLE border>
LISTE DES FICHIERS TELECHARGES <? $dir = opendir($rep);
<BR><TABLE border>
<% Set FSO = _ while ($f = readdir($dir))
Server.CreateObject("Scripting.FileSystemObject") if(is_file($rep.$f)) { ?>
set fc = FSO.GetFolder(server.MapPath(rep)).Files <TR>
<TH>
for each f in fc %> <A href="<? echo $rep.$f; ?>"
<TR> target="_blank"><? echo $f; ?></A>
<TH> </TH>
<A href="<%=rep&"/"&f.name%>" <TD align=right><? echo filesize($rep.$f); ?></TD>
target="_blank"><%=f.name%></A> <TD>
</TH> <? echo date("d/m/Y H:i:s",filectime($rep.$f)); ?>
<TD align=right><%=f.size%></TD> </TD></TR>
<TD><%=f.dateCreated%></TD> <? }
</TR>
<%next%> closedir($dir); ?>
</TABLE> </TABLE>

</CENTER></BODY></HTML> </CENTER></BODY></HTML>

Enjoy !

Envoi d'E-mail << Upload de fichiers >> Glossaire

Commentaires sur cette page Chercher


Pseudo
E-mail

Créer un nouveau sujet

Lire 15/12/2001 de awatif


je veux integrer une applet java ds un code asp voila ce que j'ai fait <AP...

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/upload.asp (4 of 6) [16/12/2001 11:42:09]


ASP-PHP.net - Bases de données

Bases de données
Accrochez une base de données à votre site !

23 en ligne

Rubriques ASP-PHP.net / Tutorial / Asp-php / Database / Accueil


Tutoriaux
Exercices
Scriptothèque
Download
Etudiants
Articles Connexion à une base Connecter une base de données à une page ASP|PHP
Livres Formulaires et BD Remplir une base de données en lisant un form
Liens Lister la base Afficher le contenu des fiches d'une base
Rédacteurs
Editer la base Modifier ou supprimer les fiches d'une base
Requêtes Trier et sélectionner des fiches

Recherche Administration Modifier la structure d'une table ou d'une base

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

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/database/default.asp (1 of 2) [16/12/2001 11:42:17]


ASP-PHP.net - Connexion à une base

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

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/database/connexion.asp (1 of 5) [16/12/2001 11:42:24]


ASP-PHP.net - Connexion à une base

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

Conn.close : Set Conn=nothing %>

Enfin votre page

ma_page.php

Autre possibilité <? include("_connexion.php");

Installer un fichier ms_access.dsn dans le même répertoire // Traitements divers


que votre base :
mysql_close(); ?>
ms_access.dsn
<%
[ODBC]
DRIVER=Microsoft Access Driver (*.mdb) Cette page n'affiche rien, bien sûr, mais
UID=admin permet juste de vérifier que votre
ReadOnly=0 connexion s'est bien produite... Si un
UserCommitSync=Yes message d'erreur s'affiche, vérifiez
Threads=3 chaque caractère de votre script, puis
SafeTransactions=0 regardez dans la F.A.Q. ci-dessous, enfin
PageTimeout=5 le cas échéant, posez votre question...
MaxScanRows=8
MaxBufferSize=512
ImplicitCommitSync=Yes
Et si tout fonctionne correctement,
FIL=MS Access
DriverId=25 passez à la suite !
%>

et pour connecter Access :

_connexion.asp

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/database/connexion.asp (2 of 5) [16/12/2001 11:42:24]


ASP-PHP.net - Connexion à une base

<% ' laisser tel quel en interne ou dans rep déprotégé


DB = "ma_base.mdb;UID=login;PWD=password;"
' Path long du répertoire des bases
Path = Server.MapPath("/rep_depro") & "\"
' Connexion à la base
DSN = "filedsn=" & Path & "ms_access.dsn;DefaultDir=" _
& Path & ";DBQ=" & Path & DB
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open DSN %>

Liens divers en rapport avec ce sujet


Connexion PHP/Access - ASP/Oracle
PHP/Lotus Notes Forum - Fonctions - Exemple (Merci Fabrice !)
Connexion ASP sans DSN (Access, Sql Server, Oracle, Sybase ASE)
Connexion ASP à une feuille Excel - L'exemple de Microsoft - Un autre exemple
Convertir Access <--> MySQL voir aussi MySQL and ODBC et MSAccess to MySQL

F.A.Q. : Quelques questions de visiteurs


ASP - DSN-less : ● ASP - quelqu'un peut me dire la
Si votre base est là : database/ma_base.mdb difference entre
et si votre page est là : htdocs/ma_page.asp rs.Open sql,Conn,0,1
le chemin est donc (../ pour remonter d'un cran) rs.Open sql,Conn,1,1
Server.mapPath("../database/ma_base.mdb") rs.Open sql,Conn,3,3
Réponse de Ludo, Merci !
● ASP - le message suivant est affiché : 1er chiffre : le curseur
- adOpenForwardOnly Curseur «en
Type d'erreur :
avant seulement». Utilisé par
Objet Server, ASP 0177 (0x800401F3)
défaut. Identique à un curseur
statique mais ne permettant que de
Que signifie l'erreur 0177? faire défiler les enregistrements vers
Server.CreateObject Failed ... le serveur n'arrive pas à créer ton l'avant. Ceci accroît les
objet... ta connection donc ! performances lorsque vous ne devez
effectuer qu'un seul passage dans
● ASP - Il m'affiche ça comme erreur : un jeu d'enregistrements.
- adOpenKeyset Curseur de table de
Microsoft OLE DB Provider for ODBC Drivers error '80040e21' caractères. Identique à un curseur
[Microsoft][ODBC Microsoft Access 97 Driver] dynamique mais ne permettant pas
Can't update. Database or object is read-only. de voir les enregistrements ajoutés
/prom/csl/envoi.asp, line 21 par d'autres utilisateurs (mais les
enregistrements supprimés par
d'autres utilisateurs ne sont pas
ligne 21 : rs.update accessibles à partir de votre jeu
Tu n'as pas placé ta base dans le répertoire adéquat chez ton d'enregistrements). Les
hébergeur... S'il n'a pas de répertoire prévu pour, demande à son modifications de données effectuées
admin de te déprotéger en écriture un dossier puis mets-y ta base... par d'autres utilisateurs demeurent
non ils non pas installé les drivers OLE sur le serveur c'est ce qu'ils visibles.
m'ont dit - adOpenDynamic Curseur
Prend un 2ème hébergeur, place dessus ta base ET les pages qui dynamique. Ajouts, modifications et
l'appellent... planque tout ça éventuellement dans un frame pour suppressions effectués par d'autres
masquer les URL et zou... utilisateurs sont visibles et tous les
c'est ce que j'ai fait ;o)= déplacements sont possibles dans le
Autre possibilité : décoche la case "Lecture seule" si ton fichier est jeu d'enregistrements à l'exception
protégé (click droit puis "Propriétés") ! des signets, s'ils ne sont pas pris en
charge par le fournisseur.
- adOpenStatic Curseur statique.
● ASP - Est-ce qu'il y a moyen de se connecter sur une base de
Copie statique d'un jeu
donnée acces qui se trouve sur un autre serveur ?
d'enregistrements qui vous permet
Il faut que la page qui pilote cette base soit aussi sur ce serveur...

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/database/connexion.asp (3 of 5) [16/12/2001 11:42:24]


ASP-PHP.net - Connexion à une base

de trouver des données ou de


● ASP - l'erreur suivante apparait : générer des états. Ajouts,
modifications ou suppressions
Microsoft OLE DB Provider for ODBC Drivers erreur '80004005'
effectués par d'autres utilisateurs ne
[Microsoft][Pilote ODBC Microsoft Access 97] Impossible d'ouvrir
sont pas visibles.
la base de données '(Inconnu)'. Ce n'est peut-être pas une base
2e chiffre : le locktype
de données que votre application reconnaît, ou le fichier est
- adLockReadOnly Valeur utilisée par
peut-être altéré.
défaut. Lecture seule, vous ne
pouvez pas modifier les données.
La base a été créée avec une version plus récente d'Access ! - adLockPessimistic Verrouillage
pessimiste, enregistrement par
enregistrement ; le fournisseur
assure une modification correcte des
enregistrements, généralement en
verrouillant ceux-ci dans la source
de données dès la modification.
- adLockOptimistic Verrouillage
optimiste, enregistrement par
enregistrement ; le fournisseur
utilise le verrouillage optimiste et ne
verrouille les enregistrements que
lorsque vous appelez la méthode
Update.
- adLockBatchOptimistic Mise à jour
par lots optimiste, nécessaire au
mode de mise à jour par lots par
opposition au mode de mise à jour
immédiate.

Courage !

Glossaire << Connexion à une base >> Formulaires et BD

Commentaires sur cette page Chercher


Pseudo
E-mail

Créer un nouveau sujet

Lire 13/12/2001 de ebelay


je comprends pas quand je telecharge phpmyadmin je me retrouve avec plein d...
● 13/12/2001 de ludo Ben c'est une application en PHP, ya pas d'exe et...
● 13/12/2001 de ebelay ha ok merci je commençais à taper méchamment ...
Lire 11/12/2001 de Matt
Je voudrais me connecter à une basse Oracle en utilisant DSN ... Si qqun...
● 11/12/2001 de fabrice69 Il faut un client Oracle pour ca. F___ e...
● 12/12/2001 de Matt Le ckient Oracle est installé et le language uti...
● 12/12/2001 de fabrice69 http://support.microsoft.com/default.aspx?...
Lire 11/12/2001 de laurent
CONNEXION BASE Je n'arrive pas à savoir si je suis bien connecté. Tous les...
● 11/12/2001 de Patrick As tu bien deziper le fichier à la racine ??
Lire 07/12/2001 de Hmida
Bonjour ! comment créer une connexion sans DSN (dsnless) pour se connecter ...
● 07/12/2001 de ludo Server.MapPath("\") & "/database/pers.mdb"
● 07/12/2001 de Hmida Toujours la même erreur même aprés modification ...
● 07/12/2001 de Didier & "DBQ=" & Server.MapPath("../database/pers.md...
Lire 03/12/2001 de ERASOR
slt g crée une base de donnée sur multimania et je voudrais savoir comment ...
● 03/12/2001 de ludo Soit tu regardes ici : http://www.multimania.lyc...
● 03/12/2001 de Philip Pour te connecter, c'est simple : serveur : s...

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/database/connexion.asp (4 of 5) [16/12/2001 11:42:24]


ASP-PHP.net - Formulaires et BD

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

Nouveautés Connexion à Access : _connexion.asp ? Connexion à MySQL : _connexion.php ?


Partenaires
Skystats <? include("_connexion.php"); ?>
<!-- #include file="_connexion.asp"-->
Admin
access
Votre skin
Ajout de la fiche : Ajout de la fiche :
Include
Skins
News en <% <?
' Sélectionne toutes les fiches de la table "MA_TABLE" $table="ma_table";
flash
SQL="SELECT * FROM [MA_TABLE]" // Ajoute la nouvelle fiche
Mot de
Set RS = server.createobject("ADODB.Recordset") $query = "INSERT INTO $table(nom,email)";
passe $query .= " VALUES('$nom','$email')";
RS.Open SQL,Conn , 3, 3
Access to ' Ajoute la nouvelle fiche $result = mysql_query($query);
mys RS.addnew ?>
RS("NOM")=Request.form("nom")
RS("EMAIL")=Request.form("email")
RS.update
%> Déconnexion :

<? mysql_close(); ?>

Déconnexion :
Le résumé ?

Top <% conn.close : Set conn=nothing %>


Installation
Connexion
Formulaires
1ere page
Form et
base Un petit exemple
Requetes L'exemple en action ?
Structure
Listing
Sessions

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/database/form_et_base.asp (2 of 7) [16/12/2001 11:42:31]


ASP-PHP.net - Formulaires et BD

formbase_1.asp formbase_1.php
Imprimer le script Imprimer le script
Recevoir Recevoir

<!-- #include file="_connexion.asp"--> <? include("_connexion.php"); ?>

<% URL = request.ServerVariables("SCRIPT_NAME") <? $URL = $PHP_SELF;


' Si le champ "email" n'est pas vide // si le champ "email" n'est pas vide
if Request.form("email") <> "" then if($email) {
' on ajoute la fiche // on ajoute la fiche
SQL="SELECT * FROM [MA_TABLE]" $table="ma_table";
Set RS = server.createobject("ADODB.Recordset") $query = "INSERT INTO $table(nom,email)";
RS.Open SQL,Conn , 3, 3 $query .= " VALUES('$nom','$email')";
RS.addnew $result = mysql_query($query);
RS("NOM")=Request.form("nom") // et on prépare le message à afficher
RS("EMAIL")=Request.form("email") $message = "Fiche <b>".$nom." - ";
RS.update $message .= $email."</B> ajoutée !";
' et on prépare le message à afficher
message="Fiche <b>" & Request.form("nom") _ } ?>
& " - " & Request.form("email") & "</b> ajoutée !"
<HTML><HEAD><TITLE>Exemple</TITLE>
end if %> <script language="JavaScript"><!--
function verif(email) { // Email valide ?
<HTML><HEAD><TITLE>Exemple</TITLE> var arobase = email.indexOf("@")
<script language="JavaScript"><!-- var point = email.lastIndexOf(".")
function verif(email) { // Email valide ? if((arobase < 3)||(point + 2 > email.length)
var arobase = email.indexOf("@") ||(point < arobase+3)) return false
var point = email.lastIndexOf(".") return true
if((arobase < 3)||(point + 2 > email.length) }
||(point < arobase+3)) return false function test(nom,mail) { // Vérifie le formulaire
return true if(nom.value=="") { alert('Nom requis !')
} nom.focus();return false }
function test(nom,mail) { // Vérifie le formulaire if(!verif(mail.value)) { alert('Email invalide !')
if(nom.value=="") { alert('Nom requis !') mail.focus();return false }
nom.focus();return false } return true // envoie les champs
if(!verif(mail.value)) { alert('Email invalide !') }
mail.focus();return false } //--></script>
return true // envoie les champs </HEAD><BODY>
} <table width=100% height=100%><tr><td><center>
//--></script>
</HEAD><BODY> <? echo $message; ?>
<table width=100% height=100%><tr><td><center>
http://www.asp-php.net/asphp2/fr/tutorial/asp-php/database/form_et_base.asp (3 of 7) [16/12/2001 11:42:31]
ASP-PHP.net - Formulaires et BD
<form method="post" action="<? echo $URL; ?>"
<% =message %> onSubmit="return test(this.nom,this.email)">
<table><tr>
<form method="post" action="<%=URL%>" <td>Nom</td>
onSubmit="return test(this.nom,this.email)"> <td><input type="text" name="nom"></td>
<table><tr> <td>E-mail</td>
<td>Nom</td> <td><input type="text" name="email"></td>
<td><input type="text" name="nom"></td> </tr><tr>
<td>E-mail</td> <th colspan=4>
<td><input type="text" name="email"></td> <input type="Submit" value="Ajouter">
</tr><tr> </th>
<th colspan=4> </tr></table>
<input type="Submit" value="Ajouter"> </form>
</th>
</tr></table> </td></tr></table>
</form> </BODY></HTML>
</td></tr></table> <? mysql_close(); ?>
</BODY></HTML>

<%conn.close : Set conn=nothing%>

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

<% cbvalue = (request("ma_CB")="on") %> <? $cbvalue = ($ma_CB == "on"); ?>


ou

● Pour stocker une URL ou une adresse E-mail, utilisez un champ de type "Text" puis

<A href="<%=RS("champURL")%>">Le lien</A> <A href="<? echo $val["champURL"]; ?>">Le lien</A>


ou

● Pour stocker une image, stockez son url dans un champ "Text" puis

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/database/form_et_base.asp (4 of 7) [16/12/2001 11:42:31]


ASP-PHP.net - Formulaires et BD

<img src="<%=RS("champImg")%>"> <img src="<? echo $val["champImg"]; ?>">


ou

● 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

<%=REPLACE(RS("champ"),VbCrLf,"<br>")%> <? echo STR_REPLACE("\n","<br>",$val["champ"]); ?>


ou

● Une fiche est dédiée aux questions concernant les listes déroulantes...

Connexion << Formulaires et BD >> Lister les enregistrements

Commentaires sur cette page Chercher


Pseudo
E-mail

Créer un nouveau sujet

Lire 14/12/2001 de djé


J'ai une erreur lors de la validation de mon formulaire (insertion dans une...
● 14/12/2001 de djé Finalement, c bon, je pense que cela vient du fait...
Lire 12/12/2001 de BeN
Help !!Securité !! , comment securiser une BD pour y stocker des pass ? C...
● 13/12/2001 de WarGoat tu peux déjà crypter le mot de passe, avec u...
● 13/12/2001 de sickfrid Essaie de voir si tu peux utiliser des cont...

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/database/form_et_base.asp (5 of 7) [16/12/2001 11:42:31]


ASP-PHP.net - Lister la base

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

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/database/listing.asp (1 of 6) [16/12/2001 11:42:40]


ASP-PHP.net - Lister la base

2884 E-mail
S'abonner

Nouveautés Connexion à Access : _connexion.asp ? Connexion à MySQL : _connexion.php ?


Partenaires
Skystats <? include("_connexion.php"); ?>
<!-- #include file="_connexion.asp"-->
Admin
access
Votre skin
Lecture des fiches et affichage : Lecture des fiches et affichage :
Include
Skins
News en <% <?
' sélectionne toutes les fiches de la table "MA_TABLE" $table="ma_table";
flash
SQL="SELECT * FROM [MA_TABLE]"
Mot de // sélectionne toutes les fiches de la table $table
Set RS = server.createobject("ADODB.Recordset")
passe $query = "SELECT * FROM $table";
RS.Open SQL,Conn , 3, 3
Access to $result = mysql_query($query);
mys ' tant qu'il y a des fiches
while not RS.eof %> // tant qu'il y a des fiches
<%=RS("nom")%> - while ($val = mysql_fetch_array($result)) { ?>
<%=RS("email")%><br> <? echo $val["nom"]; ?> -
<%RS.MOVENEXT ' fiche suivante <? echo $val["email"]; ?><br>
wend <? }

%> ?>

Le résumé ?

Top Déconnexion : Déconnexion :


Installation
Connexion <% conn.close : Set conn=nothing %> <? mysql_close(); ?>
Formulaires
1ere page
Form et
base
Requetes Un petit exemple
Structure L'exemple en action ?
Listing
Sessions Vous avez dû remarquer, dans la fiche précédente, que l'exemple listait les fiches alors que le script ne
montrait pas comment faire... c'était destiné à ce que vous puissiez voir que votre ajout s'effectuait
correctement... voici donc le script complet, listing inclu :

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/database/listing.asp (2 of 6) [16/12/2001 11:42:40]


ASP-PHP.net - Lister la base

formbase.asp formbase.php
Imprimer le script Imprimer le script
Recevoir Recevoir

<!-- #include file="_connexion.asp"--> <? include("_connexion.php"); ?>

<% URL = Request.ServerVariables("SCRIPT_NAME") <? $URL = $PHP_SELF;


$table="ma_table";
' Sélection de toutes les fiches // si le champ "email" n'est pas vide
SQL="SELECT * FROM [MA_TABLE]" if($email) {
Set RS = server.createobject("ADODB.Recordset") // on ajoute la fiche
RS.Open SQL,Conn , 3, 3 $query = "INSERT INTO $table(nom,email)";
%> $query .= " VALUES('$nom','$email')";
$result = mysql_query($query);
<% if Request.form("email") <> "" then ' Ajout de la fiche // et on prépare le message à afficher
$message = "Fiche <b>".$nom." - ";
RS.addnew
$message .= $email."</B> ajoutée !";
RS("NOM")=Request.form("nom")
RS("EMAIL")=Request.form("email") } ?>
RS.update
message="Fiche <b>" & Request.form("nom") & " - " _ <HTML><HEAD><TITLE>Exemple</TITLE>
& Request.form("email") & "</b> ajoutée !" <style type="text/css"><!--
textarea,td,input { font:normal 8pt Verdana }
end if %> :hover { color:red }
--></style>
<HTML><HEAD><TITLE>Exemple</TITLE>
<script language="JavaScript"><!--
<style type="text/css"><!--
function verif(email) { // Email valide ?
textarea,td,input { font:normal 8pt Verdana }
var arobase = email.indexOf("@")
:hover { color:red }
var point = email.lastIndexOf(".")
--></style>
if((arobase < 3)||(point + 2 > email.length)
<script language="JavaScript"><!--
||(point < arobase+3)) return false
function verif(email) {
return true
var arobase = email.indexOf("@")
}
var point = email.lastIndexOf(".")
function test(nom,mail) { // Vérifie le formulaire
if((arobase < 3)||(point + 2 > email.length)
if(nom.value=="") { alert('Nom requis !')
||(point < arobase+3)) return false
nom.focus();return false }
return true
if(!verif(mail.value)) { alert('Email invalide !')
}
mail.focus();return false }
function test(nom,mail) {
return true // envoie les champs
if(nom.value=="") { alert('Nom requis !')
}
nom.focus();return false }
//--></script>
if(!verif(mail.value)) { alert('Email invalide !')
</HEAD><BODY>
mail.focus();return false }
<table width=100% height=100%><tr><td><center>
return true

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/database/listing.asp (3 of 6) [16/12/2001 11:42:40]


ASP-PHP.net - Lister la base
} <? echo $message; ?>
//--></script>
</HEAD><BODY> <form method="post" action="<? echo $URL; ?>"
<table width=100% height=100%><tr><td><center> onSubmit="return test(this.nom,this.email)">
<table><tr>
<% =message %> <td>Nom</td>
<td><input type="text" name="nom"></td>
<form method="post" action="<%=URL%>" <td>E-mail</td>
onSubmit="return test(this.nom,this.email)"> <td><input type="text" name="email"></td>
<table><tr> </tr><tr>
<td>Nom</td> <th colspan=4>
<td><input type="text" name="nom"></td> <input type="Submit" value="Ajouter">
<td>E-mail</td> </th>
<td><input type="text" name="email"></td> </tr></table>
</tr><tr> </form>
<th colspan=4>
<input type="Submit" value="Ajouter"> <? // sélection de toutes les fiches
</th> $query = "SELECT * FROM $table";
</tr></table> $result = mysql_query($query); $i=1; ?>
</form>
---- vérification du contenu des
---- vérification du contenu des <? echo mysql_numrows($result); ?>
<%=RS.recordcount%> fiches de la base ---- fiches de la base ----
<BR><BR><table border=0> <BR><BR><table border=0>
<% if RS.recordcount>0 then <? while ($val = mysql_fetch_array($result)) { ?>
RS.MOVELAST <tr>
for A=1 to RS.recordcount %> <td>Fiche <? echo $i; ?></td>
<tr> <td>&nbsp;:
<td>Fiche <%=A%></td> <? echo $val["nom"]." - ".$val["email"]; ?>
<td>&nbsp;: </td>
<%=RS("NOM") & " - " & RS("EMAIL")%> </tr>
</td> <? $i++; } ?></table>
</tr>
<%RS.MOVEPREVIOUS </td></tr></table>
next </BODY></HTML>
end if%></table>
<? mysql_close(); ?>
</td></tr></table>
</BODY></HTML>

<%conn.close : Set conn=nothing%>

Remarques

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/database/listing.asp (4 of 6) [16/12/2001 11:42:40]


ASP-PHP.net - Lister la base
● Pour découper votre listing en plusieurs pages... c'est expliqué ici !

● Pour afficher la sélection d'une chexbox stockée dans un champ "YesNo", il faut procéder ainsi :

<input type="checkbox" <input type="checkbox"


name ="ma_CB" name ="ma_CB"
<% if RS("CBval") then response.write "CHECKED"%>> ou <? if $val["CBval"] echo "CHECKED"; ?>>

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...

Formulaires et BD << Lister les enregistrements >> Modifier les enregistrements

Commentaires sur cette page Chercher


Pseudo
E-mail

Créer un nouveau sujet

Lire 10/12/2001 de Fardousa


je fais comment pour afficher une table de ma base et de la modifier avec l...
● 11/12/2001 de WarGoat va voir les tutoriaux : http://www.asp-php...
Lire 29/11/2001 de Zod
Salut a tous ! J'ai enfin créé ma propre base grace à vos fiches et à vos c...
● 29/11/2001 de Didier Ca dépend de ton hébergeur... commence par nou...
● 29/11/2001 de Zod Ah oui :) Bah euh si tu as les infos pour Free, Mu...
Lire 26/11/2001 de POLUXX
Salut ! J'ai un p'tit souci : J'ai une base Access et je roule sous PHP....
● 26/11/2001 de fabrice69 S'il s'incremente (cad +1) a chaque ajout ...
Lire 21/11/2001 de JP
bonjour probleme de requete UPDATE Rs.Open "Update ATLAS Set PHOTO='"&phot...
● 21/11/2001 de WarGoat essaie : conn.execute "Update ATLAS Set ...

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/database/listing.asp (5 of 6) [16/12/2001 11:42:40]


ASP-PHP.net - Editer la base

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

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/database/edition.asp (1 of 7) [16/12/2001 11:42:48]


ASP-PHP.net - Editer la base

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 :

<% conn.close : Set conn=nothing %> <? mysql_close(); ?>

Le résumé ?

Top Pour modifier une fiche :


Installation
Connexion
Formulaires
1ere page
Form et Connexion à Access : _connexion.asp ? Connexion à MySQL : _connexion.php ?
base
Requetes <!-- #include file="_connexion.asp"--> <? include("_connexion.php"); ?>
Structure
Listing
Sessions
Sélection de(s) fiche(s) et modification : Sélection de(s) fiche(s) et modification :

<% <?
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);
%> ?>

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/database/edition.asp (2 of 7) [16/12/2001 11:42:48]


ASP-PHP.net - Editer la base
Déconnexion :
Déconnexion :
<? mysql_close(); ?>
<% conn.close : Set conn=nothing %>

et pour plusieurs champs : update table set champ1='valeur1', champ2='valeur2', champ3='valeur3'

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

<!-- #include file="_connexion.asp"--> <? include("_connexion.php"); ?>

<% URL = Request.ServerVariables("SCRIPT_NAME") <? $URL = $PHP_SELF;


$table="ma_table";
if Request.queryString("del") <> "" then ' Suppression
if($email) { // Ajout de la fiche
SQL="DELETE FROM [MA_TABLE]" _
& " WHERE email='" & Request.queryString("del") & "'" $query = "INSERT INTO $table(nom,email)";
Conn.Execute(SQL) $query .= " VALUES('$nom','$email')";
message="E-mail <b>" & Request.queryString("del") _ $result = mysql_query($query);
& "</b> supprimé !" $message = "Fiche <b>".$nom." - ";
end if $message .= $email."</B> ajoutée !";

' Sélection de toutes les fiches }


SQL="SELECT * FROM [MA_TABLE]"
Set RS = server.createobject("ADODB.Recordset") elseif($del) { // Suppression du email
RS.Open SQL,Conn , 3, 3
$query = "DELETE FROM $table WHERE email = '$del'";
if Request.form("email") <> "" then ' Ajout de la fiche $result = mysql_query($query);
$message = "E-mail <b>".$del;
RS.addnew $message .= "</b> supprimé !";
RS("NOM")=Request.form("nom")
RS("EMAIL")=Request.form("email") }
RS.update
message="Fiche <b>" & Request.form("nom") & " - " _ elseif($mod2) { // Modif du email

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/database/edition.asp (3 of 7) [16/12/2001 11:42:48]


ASP-PHP.net - Editer la base
& Request.form("email") & "</b> ajoutée !" $query = "UPDATE $table SET email='$mod2'";
$query .= " WHERE email='$mod1' ";
elseif Request.form("mod2") <> "" then ' Modif du email $result = mysql_query($query);
$message = "E-mail <b>".$mod1."</b>";
SQL = "UPDATE [MA_TABLE]" _ $message .= "<br>modifié en <b>".$mod2."</b> !";
& " SET email='" & Request.form("mod2") _
& "' WHERE email='" & Request.form("mod1") &"'" } ?>
Conn.Execute(SQL)
message="E-mail <b>" & Request.form("mod1") _ <HTML><HEAD><TITLE>Exemple</TITLE>
& "</b><br>modifié en <b>" _ <style type="text/css"><!--
& Request.form("mod2") & "</b> !" textarea,td,input { font:normal 8pt Verdana }
end if %> :hover { color:red }
--></style>
<HTML><HEAD><TITLE>Exemple</TITLE> <script language="JavaScript"><!--
<style type="text/css"><!-- function verif(email) {
textarea,td,input { font:normal 8pt Verdana } var arobase = email.indexOf("@")
:hover { color:red } var point = email.lastIndexOf(".")
--></style> if((arobase < 3)||(point + 2 > email.length)
<script language="JavaScript"><!-- ||(point < arobase+3)) return false
function verif(email) { return true
var arobase = email.indexOf("@") }
var point = email.lastIndexOf(".") function test(nom,mail) {
if((arobase < 3)||(point + 2 > email.length) if(nom.value=="") { alert('Nom requis !')
||(point < arobase+3)) return false nom.focus();return false }
return true if(!verif(mail.value)) { alert('Email invalide !')
} mail.focus();return false }
function test(nom,mail) { return true
if(nom.value=="") { alert('Nom requis !') }
nom.focus();return false } //--></script>
if(!verif(mail.value)) { alert('Email invalide !') </HEAD><BODY>
mail.focus();return false } <table width=100% height=100%><tr><td><center>
return true
} <? echo $message; ?>
//--></script>
</HEAD><BODY> <? if($mod) { // saisie du nouveau
<table width=100% height=100%><tr><td><center> ?> <form method="post" action="<? echo $URL; ?>">
Modifier <b><? echo $mod; ?></b> en :<br>
<% =message %> <input type="text" name="mod2"
value="<? echo $mod; ?>">
<% if request.queryString("mod")<>"" then ' modif <input type="hidden" name="mod1"
%> <form method="post" action="<%=URL%>"> value="<? echo $mod; ?>">
Modifier <b><%=request.queryString("mod")%></b> <input type="Submit" value="Modifier">
en :<br><input type="text" name="mod2" </form>
value="<%=request.queryString("mod")%>"> <? } ?>
<input type="hidden" name="mod1"
value="<%=request.queryString("mod")%>"> <form method="post" action="<? echo $URL; ?>"
<input type="Submit" value="Modifier"> onSubmit="return test(this.nom,this.email)">
</form> <table><tr>
<% end if %> <td>Nom</td>
<td><input type="text" name="nom"></td>
http://www.asp-php.net/asphp2/fr/tutorial/asp-php/database/edition.asp (4 of 7) [16/12/2001 11:42:48]
ASP-PHP.net - Editer la base
<form method="post" action="<%=URL%>" <td>E-mail</td>
onSubmit="return test(this.nom,this.email)"> <td><input type="text" name="email"></td>
<table><tr> </tr><tr>
<td>Nom</td> <th colspan=4>
<td><input type="text" name="nom"></td> <input type="Submit" value="Ajouter">
<td>E-mail</td> </th>
<td><input type="text" name="email"></td> </tr></table>
</tr><tr> </form>
<th colspan=4>
<input type="Submit" value="Ajouter"> <? // sélection de toutes les fiches
</th> $query = "SELECT * FROM $table";
</tr></table> $result = mysql_query($query); $i=1; ?>
</form>
---- vérification du contenu des
---- vérification du contenu des <? echo mysql_numrows($result); ?>
<%=RS.recordcount%> fiches de la base ---- fiches de la base ----
<BR><BR><table border=0> <BR><BR><table border=0>
<% if RS.recordcount>0 then <? while ($val = mysql_fetch_array($result)) { ?>
RS.MOVELAST <tr>
for A=1 to RS.recordcount %> <td>Fiche <? echo $i; ?></td>
<tr> <td> :
<td>Fiche <%=A%></td> <? echo $val["nom"]." - ".$val["email"]; ?>
<td> : </td>
<%=RS("nom") & " - " & RS("email")%> <td nowrap>
</td> <A href="<?echo $URL."?del=".$val["email"]; ?>">
<td nowrap> del</A> -
<A href="<%=URL&"?del="&RS("email")%>"> <A href="<?echo $URL."?mod=".$val["email"]; ?>">
del</A> - mod</A>
<A href="<%=URL&"?mod="&RS("email")%>"> </td>
mod</A> </tr>
</td> <? $i++; } ?></table>
</tr>
<%RS.MOVEPREVIOUS </td></tr></table>
next </BODY></HTML>
end if%></table>
<? mysql_close(); ?>
</td></tr></table>
</BODY></HTML>

<%conn.close : Set conn=nothing%>

Enjoy !

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/database/edition.asp (5 of 7) [16/12/2001 11:42:48]


ASP-PHP.net - Editer la base

Listing des enregistrements << Modification des enregistrements >> Requêtes

Commentaires sur cette page Chercher


Pseudo
E-mail

Créer un nouveau sujet

Lire 06/12/2001 de thomas


votre exemple formbase2.asp ne marche pas! faites gaffe quand meme :o)
● 06/12/2001 de Didier Ben si il marche... c'est celui de la démo... ...
Lire 27/11/2001 de DJMATRIX
je ne comprend pas ! j'ai copier votre code mot pour mot et moi quand je l'...
● 27/11/2001 de WarGoat ce doit être un pb de synthaxe dans la reque...
Lire 21/11/2001 de JP
je veux supprimer plusieur enregistrement dans une table en même temps j'ut...
● 21/11/2001 de Didier les " au lieu de ' ! mais si index est un cha...
Lire 16/11/2001 de JP
quel est la syntaxe pour l'update d'une date dans une base access
● 16/11/2001 de WarGoat "update table set champ_date=#" & val & "#"
Lire 15/11/2001 de PPsoft
J'ai un petit souci : je désire mettre à jour un champ de type Oui/Non dans...
● 15/11/2001 de WarGoat fait un test sur ta variable MenuGen(6) : si...
● 16/11/2001 de PPsoft A peu de choses près, oui, c'est ça. J'ai trou...
Lire 03/11/2001 de The crow
Comment modifier en Php plusieurs champs d'une meme fiche. J'ai pris comme ...
● 03/11/2001 de fabrice69 je vois pas ce que tu veux dire par modifi...
● 03/11/2001 de Didier "UPDATE table SET fld1='...',fld2='...', fld3=...
Lire 12/10/2001 de Chris
Slt ! Problème en ASP Je stock des codes html dans ma base de donnée, ...
● 13/10/2001 de Didier Aspirine, Doliprane, Efferalgan ...:o) ou mieu...
● 13/10/2001 de Chris OK merci Didier pour tes bons conseils ! L'au...
● 13/10/2001 de Didier Il ne faut transmettre dans l'url que l'ID de ...
● 13/10/2001 de Chris ARF ca marche pa ton truc, je te montre mon scri...
● 14/10/2001 de Didier Mais si ça marche, mais faut te servir le l'id...
● 14/10/2001 de Chris Wai ça y'est j'ai compris mes erreurs, sauf que ...
● 15/10/2001 de Didier arfff, exact ! tu as dû le mettre à la fin et ...
● 15/10/2001 de Chris Décidément, j'ai pas de bol ! J'ai rajouté le ...

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/database/edition.asp (6 of 7) [16/12/2001 11:42:48]


ASP-PHP.net - Requêtes

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

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/database/requetes.asp (1 of 4) [16/12/2001 11:42:55]


ASP-PHP.net - Requêtes

Toutes les fiches dont le champ texte fldA est


égal à la chaîne "valeur"
"SELECT * FROM table WHERE fldA = 'valeur' "
la chaîne doit être encadrée par deux
apostrophes ' !
Toutes les fiches dont le champ numérique
"SELECT * FROM table WHERE fldB < valeur" fldB est inférieur au nombre valeur
le nombre ne doit pas être encadré !
Le résumé ?
Toutes les fiches dont le champ date fldC est
supérieur à la date spécifiée
Top
"SELECT * FROM table WHERE fldC > #Date#" la date doit être encadrée par deux dièzes # et
Installation
être au format US (YYYY/MM/DD ou YYYY-MM-
Connexion DD) !
Formulaires
Toutes les fiches dont le champ texte fldA
1ere page "SELECT * FROM table WHERE fldA LIKE 'prog%' "
commence par la chaîne "prog"
Form et
base Toutes les fiches dont le champ texte fldA finit
"SELECT * FROM table WHERE fldA LIKE '%prog' "
Requetes par la chaîne "prog"
Structure Toutes les fiches dont le champ texte fldA
"SELECT * FROM table WHERE fldA LIKE '%prog%' "
Listing contient la chaîne "prog"
Sessions Toutes les fiches dont les deux champs fldA ET
"SELECT * FROM table WHERE fldA = 'M' AND fldB >= 18"
fldB correspondent au critère
Toutes les fiches dont l'un des deux champs
"SELECT * FROM table WHERE fldA = 'F' OR fldB < 18"
fldA OU fldB au moins correspond au critère
Toutes les fiches dont le champ texte fldA est
"SELECT * FROM table WHERE fldA IN ('Pierre','Jean')"
dans la liste spécifiée
Toutes les fiches dont le champ numérique
"SELECT * FROM table WHERE fldB BETWEEN 30 AND 40" fldB est compris entre les deux valeurs
spécifiées

Pour créer/modifier des fiches


Requête Description
Crée une nouvelle fiche dans la table
"INSERT INTO table(fldA,fldB) VALUES('truc','bidule')" "table" en mettant "truc" dans le champ
fldA et "bidule" dans le champ fldB
Met "truc" dans le champ fldA et "bidule"
dans le champ fldB de toutes les fiches de
"UPDATE table SET fldA='truc',fldB='bidule' WHERE fldC='bof'"
la table "table" dont le champ fldC est égal
à "bof"

Pour obtenir quelques valeurs statistiques


La réponse est dans le champ virtuel truc !

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

Les requêtes des visiteurs

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/database/requetes.asp (2 of 4) [16/12/2001 11:42:55]


ASP-PHP.net - Requêtes

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 !

Modification des enregistrements << Requêtes >> Administration des BD

Commentaires sur cette page Chercher


Pseudo
E-mail

Créer un nouveau sujet

Lire 15/12/2001 de Kenny


j'aimerais savoir si il y aurrait une requete pour prendre un texte au hasa...
Lire 14/12/2001 de kroki
comment fait on pour effaver un enregistrement à partir d'un requete?? avec...
● 14/12/2001 de ludo Delete * From TaTable where unchamps = unevaleurp...
Lire 13/12/2001 de bubulle
Bonsoir, est-ce que l'on peut faire select * from ma_table where n°='2' ...
● 13/12/2001 de WarGoat non select * from ma_table where n°=2 pu...
● 13/12/2001 de bubulle ok merci
Lire 06/12/2001 de bubulle
Bonjour j'aurais voulu savoir comment on faisait pour protéger le caractère...
● 06/12/2001 de WarGoat c'est à dire le protéger? il faut le doub...
● 06/12/2001 de fabrice69 ??? SQL= "SELECT * FROM TaTable WHERE Ton...
● 06/12/2001 de bubulle Merci WarGoat tu as bien penser.
Lire 05/12/2001 de gyrafon
Comment récupérer le nombre d'enregistrements de ma table sélectionés par u...
● 05/12/2001 de Max Starr <% SQL = "SELECT COUNT(tonchamp) FROM [ta...
Lire 05/12/2001 de NES
Comment vérifier en ASP qu'une requête ne retourne rien (dans une boucle if...
● 05/12/2001 de Max Starr <% If Not RS.EOF Then ' la requête n'est...
● 05/12/2001 de LW set rs=db.execute("Select Champ from MaTable") if r...
Lire 29/11/2001 de Zod
Salut a tous ! Votre liste est tres intéressante mais n'y connaissant pas g...
● 29/11/2001 de Didier Pour utiliser les requêtes, fais comme dans le...
Lire 28/11/2001 de harold
bonjours J ai un prix et je veux calculer ce prix moins 10% en ASP
● 28/11/2001 de Al prix_final = (prix * 90) / 100
● 28/11/2001 de ModalC <html> <head> <title>moins 10 pourcent</titl...
Lire 27/11/2001 de vinygrr
voila j'ai creer une table contenant plusieurs champs chaques champ est un...
● 28/11/2001 de Didier for each champ in RS.fields après une requête ...
● 28/11/2001 de vinygrr mais pour utiliser ca il faut que je tape ch...
Lire 23/11/2001 de enibris
Requete sur deux tables : exple: table1 : id,nom table2 : id,nom select...
● 23/11/2001 de WarGoat select table1.champ1 as t1c1, table2.champ1 ...

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/database/requetes.asp (3 of 4) [16/12/2001 11:42:55]


ASP-PHP.net - Administration

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

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/database/administrer.asp (1 of 3) [16/12/2001 11:43:01]


ASP-PHP.net - Administration

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 !

Requêtes << Administration >> Fichiers

Commentaires sur cette page Chercher


Pseudo
E-mail

Créer un nouveau sujet

Lire 29/11/2001 de coco


quand j'essaie de creer un champ date avec votre exemple:"ALTER TABLE matab...
● 29/11/2001 de Didier et pourtant ça marche dans AxS ! http://www.a...
● 29/11/2001 de Al c'est probablement parce que toutes les bases n'appe...
Lire 27/11/2001 de coco
qd on crée un nouveau champ ,peut-on lui assigner une valeur par defaut?
● 27/11/2001 de WarGoat oui : document.nomForm.nomChamp.value = ...
● 29/11/2001 de coco mais non!! quand on cree un champs avec "alter ta...
Lire 26/11/2001 de zord
Hello tous ! J'ai encore un pb avec mes tables acces (2002) En bref, j'ai...
Lire 16/11/2001 de DragonMiki
sujet sur la sécurité de la BD..... jai fais un forum en asp.... bientot c...
● 16/11/2001 de ludo Les pages en elles même sont sécurisées, ensuite ...
Lire 10/11/2001 de zord
Comment faire pour ajouter un champ texte dans une base Access (2002) avec ...
● 12/11/2001 de fabrice69 Ta requette fonctionne mais n'active pas l...
● 15/11/2001 de zord Je te remercie pour ta réponse... Moi aussi j'ai...
Lire 04/11/2001 de Mic33
Encore un PETIT probleme... j'aimerai que l'on puisse accéder à une base Ac...
● 05/11/2001 de fabrice69 Pourquoi "../gestionStock.mdb" ?? Essay...
● 05/11/2001 de mic33 Oui je sais ca m'a paru bizard mais ca marche co...
● 05/11/2001 de mic33 Réctificatif : pas bizard du tout la base est bi...

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/database/administrer.asp (2 of 3) [16/12/2001 11:43:01]


ASP-PHP.net - Le File System

Le File System
Manipulez les fichiers et dossiers de votre site !

Skin print ASP-PHP.net / Tutorial / Asp-php / Fichiers / Accueil

Lecture d'un répertoire Lister le contenu d'un dossier


Lecture d'un fichier Lire et afficher le contenu d'un fichier
Ecrire dans un fichier Créer et modifier un fichier
Gérer les fichiers et dossiers Copier, renommer ou détruire fichiers et dossiers

Contacts : Didier - CrazyCat - Fabrice69 - Ludo - Maunakea - WarGoat - v2.1 © 2001

Haut de la page by ASP-PHP.net


Mise à jour le 10/08/2001

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/fichiers/default.asp [16/12/2001 12:29:34]


ASP-PHP.net - Lecture d'un répertoire

Lecture d'un répertoire


Lister le contenu d'un dossier

Skin print ASP-PHP.net / Tutorial / Asp-php / Fichiers / Directory

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 ?

En ASP, il faut : En PHP, il faut :

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 nombre d'éléments de la collection


(fichiers ou dossiers) est

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/fichiers/directory.asp (1 of 3) [16/12/2001 12:29:46]


ASP-PHP.net - Lecture d'un répertoire

<% = fc.count %>

Un exemple d'application utilisé sur ce site (ASP) :

Le menu News, dans la colonne bleue de gauche, est construit automatiquement en lisant le dossier "fiches" sur le serveur :

<% Set FSO = _ <?


Server.CreateObject("Scripting.FileSystemObject") $rep = "asphp/fiches/";
dir = Server.MapPath("asphp/fiches/") $dir = opendir($rep);
set fc=FSO.getFolder(dir).files $maxtop = 5;

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 ?

Voir aussi la barre de navigation du site

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 !

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/fichiers/directory.asp (2 of 3) [16/12/2001 12:29:46]


ASP-PHP.net - Lecture d'un répertoire

Administration des BD << Lister un dossier >> Lire un fichier

Commentaires sur cette page Chercher


Pseudo
E-mail

Créer un nouveau sujet

Lire 11/12/2001 de lguiot


salut, j'aimerais parcourir l'arborésence des repertoires comme explorateur...
Lire 09/11/2001 de MayanD
jour oila comment jpeux faire pour verifier que ma page asp a fini de lire ...
● 12/11/2001 de WarGoat <% While not inF.atEndOfStream %> <%= in...
Lire 07/11/2001 de MayanD
salut voila comment jpeux faire pour afficher tous les fichiers de tous le...
● 07/11/2001 de WarGoat tu parcours tron répertoire et tu parcoures...
● 07/11/2001 de Didier Y'a un début de réponse plus bas : http://www...
● 08/11/2001 de MayanD ok ok 'ci :)
Lire 04/11/2001 de pioup51
Encore moi ! :) La c au sujet des FSO Dir !! Je voulais savoir comment on p...
● 05/11/2001 de Didier <%for each f in fc if right(f.name,4)=".as...
Lire 22/10/2001 de data
un FSO qui fait planter mon IIS (erreur 500 persistante), qqun sait comment...
● 22/10/2001 de fabrice69 En rebootant le server ou en arretant et r...
● 22/10/2001 de data ben en fait la seule facon que j'ai pour resoudre...
● 23/10/2001 de data ca y est g trouvé: c se 'tain de Norton Firewall ...
Lire 16/10/2001 de pitxun
est il possible d'affcher une image dans une page HTML à l'aide d'une comma...
● 16/10/2001 de guitoux1 donne ton code
● 16/10/2001 de fabrice69 Ton repertoire est un peu étrange Il faud...
● 16/10/2001 de pitxun en fait j'ecris la ligne suivante <img src="....
● 16/10/2001 de guitoux1 tu monte un niveau trop haut : si tes ...
● 16/10/2001 de pitxun effectivement dans le code que je te donne je ...
● 16/10/2001 de guitoux1 c vrai que ton chemin est bizard. généra...
● 16/10/2001 de fabrice69 Pourquoi tu ne mets pas ton répertoire ave...
Lire 15/10/2001 de olivier74
Je suis débutant en asp et je voudrais savoir si c possible de rechercher d...
● 16/10/2001 de Didier Ca dépend... si c'est pour uploader va voir l...
Lire 10/10/2001 de narjisse
j'ai l'erreur suivant:Server.MapPath() erreur 'ASP 0172 : 80004005' Che...
● 10/10/2001 de Didier Met nous la ligne de ton server.MapPath ! sin...
Lire 03/10/2001 de frank
salut, je teste l'exemple du haut de page en php (fso, lecture d'un reperto...
Lire 13/08/2001 de orely
Je voudrais afficher la date de modification d'un fichier texte, mais la fo...
● 04/09/2001 de Didier <%tadate = f.DateCreated lejour = left(tadate...
v1.1aa © ASP-PHP.net 2001 Suite

Contacts : Didier - CrazyCat - Fabrice69 - Ludo - Maunakea - WarGoat - v2.1 © 2001

Haut de la page by Didier


Mise à jour le 22/10/2001

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/fichiers/directory.asp (3 of 3) [16/12/2001 12:29:46]


ASP-PHP.net - Lecture d'un fichier

Lecture d'un fichier


Lire et afficher le contenu d'un fichier

Skin print ASP-PHP.net / Tutorial / Asp-php / Fichiers / Lecture

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 ?

En ASP, il faut : En PHP, il faut :

Créer un objet Scripting.FileSystemObject Définir le fichier qui nous intéresse


<% Set FSO = _ <? $Fnm = "mon_dossier/mon_fichier.ext"; ?>
Server.CreateObject("Scripting.FileSystemObject") %>

Vérifier que ce fichier existe bien


Récupérer le path long du dossier
qui contient le fichier <? if (file_exists($Fnm)) { ?>

<% dir = Server.MapPath("mon_dossier/") %>

Composer le chemin complet du fichier Ensuite soit lire tout le fichier


d'un coup dans un tableau
<% Fnm = dir & "\mon_fichier.ext" %>
<? $tableau = file($Fnm); ?>

Attention au \

Vérifier que ce fichier existe bien Puis afficher ce tableau

<% if FSO.FileExists(Fnm) then %> <? while(list($cle,$val) = each($tableau)) {


echo $val."<br>";
} ?>

Ouvrir le fichier
<% set inF = FSO.OpenTextFile(Fnm,1,false) %>

Soit ouvrir le fichier


Ensuite soit lire tout le fichier d'un coup <? $inF = fopen($Fnm,"r"); ?>
<% = inF.readAll %>

Lire quelques caractères


s'arrête avant s'il rencontre \n
Soit lire une seule ligne ou la fin du fichier !

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/fichiers/lecture.asp (1 of 4) [16/12/2001 12:29:57]


ASP-PHP.net - Lecture d'un fichier

<% = inF.readLine %> <? echo fgets($inF, 4096); ?>

Soit passer une ligne


La position du pointeur est dans :
<% inF.skipLine %>
<? $ptr = ftell($inF); ?>

Soit lire chacune des lignes jusqu'à la fin


et est modifiable par :
<% While not inF.atEndOfStream %>
<%= inF.readLine %><br> <? $ptr = fseek($inF,$ptr-10); ?>
<% Wend %>

Soit lire quelques caractères ou lire tout le fichier jusqu'à la fin

<% = inF.Read(5) %> <? while (!feof($inF)) {


echo fgets($inF, 4096)."<br>";
} ?>

Enfin fermer le fichier


<% inF.close %> Enfin fermer le fichier
<? fclose($inF); ?>

Un exemple d'application utilisé sur ce site (ASP) :

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=" :

<% Set FSO = _ <? $maxtop = 5;


Server.CreateObject("Scripting.FileSystemObject") // Composition de $toplk[][] vue précédemment
dir = Server.MapPath("asphp/fiches/")
for($k=1;$k<=$maxtop;$k++) { // affichage
dim toplk(5,2) : maxtop = 5 $Fnm = "asphp/fiches/".$toplk[$k][2];
' Composition de toplk() vue précédemment $inF = fopen($Fnm,"r");
while (!feof($inF)) {
for k = 1 to maxtop ' affichage du descriptif $ligne = TRIM(fgets($inF, 4096));
Fnm = dir & "\" & toplk(k,2) if(SUBSTR($ligne,0,5)=="desc=") {
set inF = FSO.OpenTextFile(Fnm,1,false)
echo SUBSTR($ligne,5)."<br>";
Do while not inF.atEndOfStream
ligne = inF.ReadLine break;
if LEFT(ligne,5) = "desc=" then %> }
}
<% =MID(ligne,6) %><br>
fclose($inF);
<%exit do } ?>
end if
Loop
inF.close

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/fichiers/lecture.asp (2 of 4) [16/12/2001 12:29:57]


ASP-PHP.net - Lecture d'un fichier

next %>

Compris ?

Remarques
1. En PHP, on peut ouvrir et lire une page Web distante... pratique pour l'indexer !

<? $inF = fopen("http://www.asp-php.net/asphp/fiches/lecture.asp","r"); ?>

Enjoy !
Lister un dossier << Lire un fichier >> Ecrire dans un fichier

Commentaires sur cette page Chercher


Pseudo
E-mail

Créer un nouveau sujet

Lire 10/12/2001 de laurent


CONFIGURATION EASYPHP Bonjour, je me pose quelques questions sur la config...
● 10/12/2001 de ludo Normal, tapes http://localhost si tu es connecté ...
Lire 10/12/2001 de hbhb
message d'erreur Erreur d'exécution Microsoft VBScript (0x800A01AD) Un com...
● 11/12/2001 de ModalC ?? Qu'est-ce que t'es en train de faire au jus...
Lire 20/11/2001 de 16s
plop. est-il possible d'executer un fichier sur un seveur grace a un fic...
● 20/11/2001 de WarGoat un fichier exe, je ne pense pas.
● 20/11/2001 de fabrice69 Non pour une raison de sécurité, c'est imp...
● 21/11/2001 de alb Je pense que cela va répondre à ta question http:...
Lire 19/11/2001 de djé
Comment spécifier le numéro de la ligne que l'on souhaite lire... <% = i...
● 19/11/2001 de Didier Tu ne peux pas... à toi de compter... chaque a...
Lire 07/11/2001 de adri1
Salut ! Je ne comprends pas ce que signifie la ligne : "// Composition de ...
● 07/11/2001 de Didier Bien vu... perspicace, hein ? En fait, dans l...
Lire 05/11/2001 de gab
J ai cette fonctin en ASP ki marche tres bien, je veux ecrire une fonciton ...
● 05/11/2001 de Didier <? while (!feof($ConditionStream)) { $Get...
● 06/11/2001 de Gab Merci Didier! ou alors (en cherchant on trouve) ...
● 06/11/2001 de Didier Je t'avais fait une traduction littérale pour ...
Lire 02/11/2001 de Alexxx
est-il possible d'inclure des variables dans un fichier texte pour qu'à la ...
● 02/11/2001 de Didier Il faut que tu utilises un signe spécial pour ...

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/fichiers/lecture.asp (3 of 4) [16/12/2001 12:29:57]


ASP-PHP.net - Gérer les fichiers et dossiers

Gérer les fichiers et dossiers


Copier, renommer ou détruire fichiers et dossiers

Skin print ASP-PHP.net / Tutorial / Asp-php / Fichiers / Gestion

Pour finir notre petit tour d'horizon du Système de Fichiers,


quelques fonctions et méthodes pour administrer vos dossiers et fichiers

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 %>

Pour créer un dossier


<? mkdir("rep_1", 0700); ?>
Pour créer un dossier
<% FSO.CreateFolder(dir & "\rep_1") %>
Pour le renommer ou le copier
utiliser les mêmes fonctions copy et rename
que pour les fichiers
Pour agir sur un dossier, obtenir un pointeur
Pour détruire un dossier vide
<% set foldPt = FSO.GetFolder(dir & "\rep_1") %>
<? rmdir("rep_1"); ?>

puis appliquer les mêmes méthodes


Copy, Move ou Delete

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/fichiers/gestion.asp (1 of 3) [16/12/2001 12:30:06]


ASP-PHP.net - Gérer les fichiers et dossiers

Un exemple d'application utilisé sur ce site (ASP) :

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 :

● Ajouter : Le fichier est déplacé dans le dossier "liens"...


● Détruire : Le fichier est supprimé...

<% Set FSO = _ <? $URL = $PHP_SELF;


Server.CreateObject("Scripting.FileSystemObject") $dir = "demo/";
dir = Server.MapPath("/demo/") // Destruction fichier
URL = Request.ServerVariables("SCRIPT_NAME") if($del)
' Destruction fichier unlink($dir."temp/".$del);
if request.QueryString("del") <> "" then // Validation du lien
set FilePt = FSO.getFile(dir & "\temp\" _ if($add)
& request.QueryString("del")) rename($dir."temp/".$add,$dir."liens/".$add);
FilePt.delete // Listing du dossier temp
end if $fc = opendir($dir."temp/");
' Validation du lien while ($f = readdir($fc)) {
if request.QueryString("add") <> "" then if(STRPOS($f,".txt")) { ?>
set FilePt = FSO.getFile(dir & "\temp\" _ <A href="<? echo $URL."?add=".$f; ?>">add</A>
& request.QueryString("add")) <A href="<? echo $URL."?del=".$f; ?>">del</A>
FilePt.Move dir & "\liens\" _ <? // Lecture du fichier pour afficher le descriptif
& request.QueryString("add")) // non détaillée ici
end if ?>
' Listing du dossier temp <br><br>
set fc=FSO.getFolder(dir & "\temp").files <? }
for each f in fc %> }
<A href="<%=URL%>?add=<%=f.name%>">add</A> closedir($fc);
<A href="<%=URL%>?del=<%=f.name%>">del</A> ?>
<% ' Lecture du fichier pour afficher le descriptif
' non détaillée ici
%>
<br><br>
<% next %>

Compris ?
Ecrire dans un fichier << Gérer fichiers et dossiers >> Compléments

Commentaires sur cette page Chercher


Pseudo
E-mail

Créer un nouveau sujet

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...

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/fichiers/gestion.asp (2 of 3) [16/12/2001 12:30:06]


ASP-PHP.net - Ecrire dans un fichier

Ecrire dans un fichier


Créer et modifier un fichier

Skin print ASP-PHP.net / Tutorial / Asp-php / Fichiers / Ecriture

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"); ?>

Récupérer le path long du dossier


qui contient le fichier
Ouvrir le fichier en mode écriture
<% dir = Server.MapPath("mon_dossier/") %> créé si inexistant
<? $inF = fopen($Fnm,"w"); ?>

Composer le chemin complet du fichier


<% Fnm = dir & "\mon_fichier.ext" %> ou en mode "append"
créé si inexistant

Attention au \ <? $inF = fopen($Fnm,"a"); ?>

Créer le fichier ou en mode "mixte"


l'ouvre en même temps ! lecture et écriture
<% set inF = FSO.CreateTextFile(Fnm) %> <? $inF = fopen($Fnm,"r+"); ?>

ou l'ouvrir en mode écriture Eventuellement positionner le pointeur


<% set inF = FSO.OpenTextFile(Fnm,2,false) %> La position du pointeur est dans :
<? $ptr = ftell($inF); ?>

soit enfin l'ouvrir en mode "append"


écriture à la fin
et est modifiable par :

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/fichiers/ecriture.asp (1 of 4) [16/12/2001 12:30:14]


ASP-PHP.net - Ecrire dans un fichier

<% set inF = FSO.OpenTextFile(Fnm,8,false) %> <? $ptr = fseek($inF,$ptr-10); ?>

Si true est mis à la place de false, un fichier est créé


automatiquement s'il n'existe pas... alors gaffe !

Ensuite écrire simplement

Ensuite écrire simplement <? fwrite($inF,$texte);


// ou
<% inF.write texte %> fputs($inF,$texte); ?>

ou écrire une ligne pour passer à la ligne, écrire \n


ajoute VbCrLf à la fin du texte
<? fputs($inF,$texte."\n"); ?>
<% inF.writeLine texte %>

ou écrire quelques lignes vides


Enfin fermer le fichier
<% inF.writeBlankLines(5) %>
<? fclose($inF); ?>

Enfin fermer le fichier


<% inF.close %>

Un exemple d'application utilisé sur ce site (ASP) :

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 :

<% Set FSO = _ <? $URL = $PHP_SELF;


Server.CreateObject("Scripting.FileSystemObject") $nom = SUBSTR($url,STRRPOS($url,"/")+1);
dir = Server.MapPath("asphp/top/") $nom = STR_REPLACE(".php",".txt",$nom);
URL = Request.ServerVariables("SCRIPT_NAME") $nom = "asphp/top/".$nom;
nom = MID(URL,INSTRREV(URL,"/")+1)
nom = dir & "\" & REPLACE(nom,".asp",".txt") $inF = fopen($nom,"a");
fputs($inF,".");
set inF = FSO.openTextFile(nom,8,true) fclose($inF);
inF.write(".") ?>
inF.close
%>

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/fichiers/ecriture.asp (2 of 4) [16/12/2001 12:30:14]


ASP-PHP.net - Ecrire dans un fichier

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

Commentaires sur cette page Chercher


Pseudo
E-mail

Créer un nouveau sujet

Lire 22/11/2001 de ben


Comment faire un transfert automatique (mise à jour) d'un fichier txt d'un ...
● 22/11/2001 de fabrice69 sans probleme avec asp upload. Il faut av...
● 22/11/2001 de WarGoat automatiquement, aie il faut que l'utilisat...
Lire 13/11/2001 de thieunet@free.fr
Salut, Comment vider le contenu d'un fichier texte en php ou encore commen...
● 14/11/2001 de ludo Tu peux l'effacer tout simplement : http://www...
Lire 02/11/2001 de pioup51
VOilà !!! Je voulais just savoir si on pouvait créer d'autre fichier que de...
● 02/11/2001 de Jello ouais, tu peux créer n'importe quelle sorte! Plu...
● 03/11/2001 de fabrice69 avec n'importe quel logiciel d'édition de ...
● 03/11/2001 de Didier Eh oui... c super non ?... tu peux même modifi...
Lire 15/10/2001 de midtownmad
Comment une fois un fichier texte ouvert depuis le serveur enregistré un te...
● 16/10/2001 de Didier en FSO tu ne peux pas ajouter du texte autreme...
Lire 11/10/2001 de lennonlechat
je cherche à créer un .txt côté client. comment faire ? Merci...! Pour l'...
● 11/10/2001 de guitoux1 peu etre en javascript ??
● 11/10/2001 de lennonlechat tu as une idée ?
● 11/10/2001 de guitoux1 ben ya un filesystemobject en javascript il...
● 11/10/2001 de lennonlechat merci !
● 11/10/2001 de guitoux1 va voir la : http://www.asp-php.net/asphp2...
● 11/10/2001 de lennonlechat ça me donne une erreur javascript : "...
● 12/10/2001 de Didier 1. on ne peut pas créer un fichier côté client...
Lire 27/08/2001 de laeti
Bonjour, J'ai un lien avec une image créé ainsi : <A TARGET='_top' HREF="...
● 27/08/2001 de mow Double les guillemets, essaye ça : alt=""" & serv...

http://www.asp-php.net/asphp2/fr/tutorial/asp-php/fichiers/ecriture.asp (3 of 4) [16/12/2001 12:30:14]

Vous aimerez peut-être aussi