I. Introduction▲
Apprenez à utiliser le langage PHP pour développer des sites Web dynamiques grâce, notamment, à l'interaction facile de ce langage avec les bases de données.
Ce langage est idéal pour créer des blogs ou des forums de discussion.
Avec la méthode "Développement Facile", vous allez pouvoir créer des sites Web dynamiques avec du contenu évolutif et une maintenance facilitée.
Retrouvez un extrait de la formation "PHP Facile", composée de plus de 30 cours professionnels pour vous aider à progresser rapidement avec la maîtrise du langage PHP.
II. Comment envoyer vos mails directement depuis PHP▲
Grâce à ce cours, vous pourrez envoyer des mails directement depuis votre site en PHP.
Plus besoin de souscrire à un service de gestion de mail extérieur.
Ci-dessous, l'exemple de code.
<?php
/**
The
Initial
Developer
of
the
Original
Code
is
Matthieu
-
http
:
/
/
www
.
programmation
-
facile
.
com
/
Portions
created
by
the
Initial
Developer
are
Copyright
(
C
)
2013
the
Initial
Developer
.
All
Rights
Reserved
.
Contributor
(
s
)
:
*/
//
création
et
envoi
d'un
mail
//
Deux
destinataires
séparés
par
une
virgule.
$
destinataires
=
"
yannick
@
developpement
-
facile
.
com
,
news
@
developpement
-
facile
.
com
"
;
//
Objet.
$
objet
=
"
Inscription
validée
"
;
//
Message.
$
message
=
"
Yannick
,
\n
"
;
$
message
.
=
"
Nous
vous
confirmons
votre
inscription
à\n
"
;
$
message
.
=
"
la
formation
Développement
Facile
.
\n
"
;
$
message
.
=
"
Vous
allez
recevoir
un
mail
avec
vos
accès
personnalisé
.
\n\n
"
;
$
message
.
=
"
Matthieu
pour
Développement
Facile
.
\n
"
;
//
En-têtes
supplémentaires.
$
entêtes
=
"
From
:
'
Inscription
'
<
sav
@
developpement
-
facile
.
com
>
\n
"
;
$
entêtes
.
=
"
Reply
-
To
:
'
Inscription
'
<
sav
@
developpement
-
facile
.
com
>
\n
"
;
$
entêtes
.
=
"
X
-
Priority
:
1\n
"
;
//
Envoi.
$
bEnvoie
=
mail($
destinataires
,
$
objet
,
$
message
,
$
entêtes
);
//
envoi
d'un
mail
au
format
HTML
//
Destinataires.
$
destinataires
=
"
yannick
@
developpement
-
facile
.
com
,
news
@
developpement
-
facile
.
com
"
;
//
Objet.
$
objet
=
"
Bonjour
!
"
;
//
En-têtes
supplémentaires.
$
entêtes
=
"
From
:
\
"
Matthieu\
"
<
matthieu
@
developpement
-
facile
.
com
>
\n
"
;
$
entêtes
.
=
"
MIME
-
Version
:
1
.
0\n
"
;
$
entêtes
.
=
"
Content
-
Type
:
text
/
html
;
charset
=
iso
-
8859
-
1\n
"
;
$
entêtes
.
=
"
Content
-
Transfer
-
Encoding
:
8bit\n
"
;
//
Message
(HTML).
$
message
=
"
<
html
>
\n
"
;
$
message
.
=
"
<
head
>
<
title
>
Bonjour
!
<
/
title
>
<
/
head
>
\n
"
;
$
message
.
=
"
<
body
>
\n
"
;
$
message
.
=
"
<
font
color
=
\
"
green\
"
>
Bonjour
!
<
/
font
>
\n
"
;
$
message
.
=
"
<
/
body
>
\n
"
;
$
message
.
=
"
<
/
html
>
\n
"
;
//
Envoi.
$
bEnvoie
=
mail($
destinataires
,
$
objet
,
$
message
,
$
entêtes
);
?>
III. Comment envoyer des mails HTML avec des pièces jointes depuis php▲
La suite du cours vidéo précédent, enrichissez vos mails en ajoutant des pièces jointes.
Ci-dessous, l'exemple vu dans la vidéo, remplacez tuto1.doc par un fichier de votre choix.
<?php
/**
The
Initial
Developer
of
the
Original
Code
is
Matthieu
-
http
:
/
/
www
.
programmation
-
facile
.
com
/
Portions
created
by
the
Initial
Developer
are
Copyright
(
C
)
2013
the
Initial
Developer
.
All
Rights
Reserved
.
Contributor
(
s
)
:
*/
//
envoi
d'un
mail
avec
encodage
et
découpage
//
Destinataires.
$
destinataires
=
"
yannick
@
developpement
-
facile
.
com
,
news
@
developpement
-
facile
.
com
"
;
//
Objet.
$
objet
=
"
Bonjour
2
!
"
;
//
En-têtes
supplémentaires.
$
entêtes
=
"
From
:
\
"
Matthieu\
"
<
matthieu
@
developpement
-
facile
.
com
>
\n
"
;
$
entêtes
.
=
"
MIME
-
Version
:
1
.
0\n
"
;
$
entêtes
.
=
"
Content
-
Type
:
text
/
html
;
charset
=
iso
-
8859
-
1\n
"
;
$
entêtes
.
=
"
Content
-
Transfer
-
Encoding
:
8bit\n
"
;
//
Message
(HTML).
$
message
=
"
<
html
>
\n
"
;
$
message
.
=
"
<
head
>
<
title
>
Bonjour
!
<
/
title
>
<
/
head
>
\n
"
;
$
message
.
=
"
<
body
>
\n
"
;
$
message
.
=
"
<
font
color
=
\
"
green\
"
>
Bonjour
22
!
<
/
font
>
\n
"
;
$
message
.
=
"
<
/
body
>
\n
"
;
$
message
.
=
"
<
/
html
>
\n
"
;
//
Encodage
et
découpage.
$
message
=
chunk_split( base64_encode( $
message
) );
//
Envoi.
$
bEnvoie
=
mail($
destinataires
,
$
objet
,
$
message
,
$
entêtes
);
//
envoi
d'un
mail
avec
une
pièce
jointe
//
Destinataires.
$
destinataires
=
"
yannick
@
developpement
-
facile
.
com
,
news
@
developpement
-
facile
.
com
"
;
//
Objet.
$
objet
=
"
Bonjour
33
!
"
;
//
Entêtes
supplémentaires.
$
entêtes
=
"
"
;
//
->
origine
du
message
$
entêtes
.
=
"
From
:
\
"
Matthieu\
"
<
matthieu
@
developpement
-
facile
.
com
>
\r\n
"
;
//
->
message
au
format
Multipart
MIME
$
entêtes
.
=
"
MIME
-
Version
:
1
.
0\r\n
"
;
$
entêtes
.
=
"
Content
-
Type
:
multipart
/
mixed
;
"
;
$
entêtes
.
=
"
boundary
=
\
"
=
M
=
A
=
T
=
T
=
H
=
I
=
E
=
U
=
\
"
\r\n
"
;
//
Message.
$
message
=
"
"
;
//
->
première
partie
du
message
(texte
proprement
dit)
//
->
en-tête
de
la
partie
$
message
.
=
"
-
-
=
M
=
A
=
T
=
T
=
H
=
I
=
E
=
U
=
\r\n
"
;
$
message
.
=
"
Content
-
Type
:
text
/
plain
;
"
;
$
message
.
=
"
charset
=
iso
-
8859
-
1\r\n
"
;
$
message
.
=
"
Content
-
Transfer
-
Encoding
:
8bit\r\n
"
;
$
message
.
=
"
\r\n
"
;
//
ligne
vide
//
->
données
de
la
partie
$
message
.
=
"
Voir
la
pièce
jointe
.
\r\n
"
;
$
message
.
=
"
\r\n
"
;
//
ligne
vide
//
->
deuxième
partie
du
message
(pièce-jointe)
//
->
en-tête
de
la
partie
$
message
.
=
"
-
-
=
M
=
A
=
T
=
T
=
H
=
I
=
E
=
U
=
\r\n
"
;
$
message
.
=
"
Content
-
Type
:
application
/
octet
-
stream
;
"
;
$
message
.
=
"
name
=
\
"
tuto1
.
DOC\
"
\r\n
"
;
$
message
.
=
"
Content
-
Transfer
-
Encoding
:
base64\r\n
"
;
$
message
.
=
"
Content
-
Disposition
:
attachment
;
"
;
$
message
.
=
"
filename
=
\
"
tuto1
.
doc\
"
\r\n
"
;
$
message
.
=
"
\r\n
"
;
//
ligne
vide
//
lecture
du
fichier
en
pièce
jointe
$
sFileAdd
=
file_get_contents("
tuto1
.
doc
"
);
//
encodage
et
découpage
des
données
$
sFileAdd
=
chunk_split(base64_encode($
sFileAdd
));
//
pièce
jointe
de
la
partie
(intégration
dans
le
message)
$
message
.
=
"
$
sFileAdd
\r\n
"
;
$
message
.
=
"
\r\n
"
;
//
ligne
vide
//
Délimiteur
de
fin
du
message.
$
message
.
=
"
-
-
=
M
=
A
=
T
=
T
=
H
=
I
=
E
=
U
=
-
-
\r\n
"
;
//
Envoi.
$
bEnvoie
=
mail($
destinataires
,
$
objet
,
$
message
,
$
entêtes
);
?>
IV. Comment lire un fichier avec PHP▲
Plutôt que de passer par une bases de données, vous pouvez simplement gérer vos données dans un fichier.
Dans cette vidéo, apprenez à lire un fichier en PHP.
L'exemple ci-dessous va d'abord créer un fichier, s'il n'existe pas, l'ouvrir, écrire dedans puis le lire.
Vous pourrez vérifier la bonne exécution du code en récupérant le fichier tuto.txt dans le même répertoire que votre code.
<?php
/**
The
Initial
Developer
of
the
Original
Code
is
Matthieu
-
http
:
/
/
www
.
programmation
-
facile
.
com
/
Portions
created
by
the
Initial
Developer
are
Copyright
(
C
)
2013
the
Initial
Developer
.
All
Rights
Reserved
.
Contributor
(
s
)
:
*/
//
lecture
d'un
fichier
//
Ouvrir
un
fichier
en
écriture.
$
oFileOpen
=
fopen("
tuto
.
txt
"
,
"
wb
"
);
//
Ecrire
dans
le
fichier.
fwrite($
oFileOpen
,
"
Matthieu
Developpement
Facile
"
);
//
Fermer
le
fichier.
fclose($
oFileOpen
);
//
Ouvrir
un
fichier
en
lecture.
$
oFileOpen
=
fopen("
tuto
.
txt
"
,
"
rb
"
);
//
Lire
dans
le
fichier.
$
sFileTxt
=
fread( $
oFileOpen
,
filesize("
tuto
.
txt
"
) );
//
Fermer
le
fichier.
fclose($
oFileOpen
);
//
Afficher
les
informations
lues.
echo $
sFileTxt
.
"
<
br
/
>
"
;
//
Plus
simple
pour
afficher
le
contenu
d'un
fichier.
$
sFileTxt
=
file_get_contents("
tuto
.
txt
"
);
//
Afficher
les
informations
lues.
echo $
sFileTxt
;
?>
V. Comment créer, lire et écrire un fichier texte avec PHP▲
Pour compléter le cours précédent, voici les détails de la création, lecture et écriture de fichiers en PHP.
Ci-dessous, l'exemple de code.
<?php
/**
The
Initial
Developer
of
the
Original
Code
is
Matthieu
-
http
:
/
/
www
.
programmation
-
facile
.
com
/
Portions
created
by
the
Initial
Developer
are
Copyright
(
C
)
2013
the
Initial
Developer
.
All
Rights
Reserved
.
Contributor
(
s
)
:
*/
//
affiche
le
contenu
d'un
répertoire
//
//
//
Première
méthode
:
opendir
+
readdir
+
closedir.
echo "
<
b
>
1
)
opendir
+
readdir
+
closedir
<
/
b
>
<
br
/
>
"
;
//
Ouvrir
le
répertoire.
$
oDirectory
=
opendir("
tutoriels
"
);
//
Parcourt
le
répertoire
en
lisant
le
nom
du
fichier
while($
oFileRead
=
readdir($
oDirectory
))
{
echo $
oFileRead
.
"
<
br
/
>
"
;
}
//
Ferme
le
répertoire.
closedir($
oDirectory
);
//
Deuxième
méthode
:
scandir.
echo "
<
br
/
>
<
b
>
2
)
scandir
<
/
b
>
<
br
/
>
"
;
//
Liste
le
contenu
du
répertoire
dans
un
tableau.
$
oListeFiles
=
scandir("
tutoriels
"
);
//
Parcourt
le
résultat
foreach ($
oListeFiles
as $
oFileToRead
)
{
echo $
oFileToRead
.
"
<
br
/
>
"
;
}
?>
VI. Comment uploader un fichier avec un formulaire PHP▲
Avec ce cours vidéo, offrez la possibilité à vos utilisateur d'uploader leurs fichiers sur votre serveur via un formulaire en PHP.
Ci-dessous, l'exemple de code.
<?php
/**
The
Initial
Developer
of
the
Original
Code
is
Matthieu
-
http
:
/
/
www
.
programmation
-
facile
.
com
/
Portions
created
by
the
Initial
Developer
are
Copyright
(
C
)
2013
the
Initial
Developer
.
All
Rights
Reserved
.
Contributor
(
s
)
:
*/
//
Initialisation
de
la
variable
de
message.
$
message
=
"
"
;
//
Traitement
du
formulaire
s'il
y
a
un
fichier
envoyé
sur
le
serveur.
if (isset($
_POST
[
"
valid
"
]
))
{
//
Récupère
les
informations
sur
le
fichier.
$
oFileInfos
=
$
_FILES
[
"
fichier
"
]
;
//
nom
du
fichier.
$
nom
=
$
oFileInfos
[
"
name
"
]
;
//
le
type
MIME.
$
type_mime
=
$
oFileInfos
[
"
type
"
]
;
//
la
taille.
$
taille
=
$
oFileInfos
[
"
size
"
]
;
//
emplacement
du
fichier
temporaire.
$
fichier_temporaire
=
$
oFileInfos
[
"
tmp_name
"
]
;
//
le
code
d'erreur.
$
code_erreur
=
$
oFileInfos
[
"
error
"
]
;
switch ($
code_erreur
)
{
case UPLOAD_ERR_OK :
//
Fichier
bien
reçu.
//
Détermine
sa
destination
finale.
$
destination
=
"
tutoriels
/
$
nom
"
;
//
Copie
le
fichier
temporaire
if (copy($
fichier_temporaire
,
$
destination
))
{
//
Copie
OK
$
message
=
"
Transfert
terminé
-
Fichier
=
$
nom
-
"
;
$
message
.
=
"
Taille
=
$
taille
octets
-
"
;
$
message
.
=
"
Type
MIME
=
$
type_mime
.
"
;
}
else
{
//
Problème
de
copie
=>
message
d'erreur.
$
message
=
"
Problème
de
copie
sur
le
serveur
.
"
;
}
break;
case UPLOAD_ERR_NO_FILE :
//
Pas
de
fichier
saisi.
$
message
=
"
Pas
de
fichier
saisi
.
"
;
break;
case UPLOAD_ERR_INI_SIZE :
//
Taille
fichier
>
upload_max_filesize.
$
message
=
"
Fichier
"
.
$
nom
.
"
non
transféré
"
;
$
message
.
=
"
(
taille
>
upload_max_filesize
)
"
;
break;
case UPLOAD_ERR_FORM_SIZE :
//
Taille
fichier
>
MAX_FILE_SIZE.
$
message
=
"
Fichier
"
.
$
nom
.
"
non
transféré
"
;
$
message
.
=
"
(
taille
>
MAX_FILE_SIZE
)
"
;
break;
case UPLOAD_ERR_PARTIAL :
//
Fichier
partiellement
transféré.
$
message
=
"
Fichier
"
.
$
nom
.
"
non
transfere
"
;
$
message
.
=
"
(
problème
lors
du
transfert
)
"
;
break;
case UPLOAD_ERR_NO_TMP_DIR :
//
Pas
de
répertoire
temporaire.
$
message
=
"
Fichier
"
.
$
nom
.
"
non
transféré
"
;
$
message
.
=
"
(
pas
de
répertoire
temporaire
)
"
;
break;
case UPLOAD_ERR_CANT_WRITE :
//
Erreur
lors
de
l'écriture
du
fichier
sur
disque.
$
message
=
"
Fichier
"
.
$
nom
.
"
non
transféré
"
;
$
message
.
=
"
(
erreur
lors
de
l
'
écriture
du
fichier
sur
le
serveur
)
"
;
break;
case UPLOAD_ERR_EXTENSION :
//
Transfert
stoppé
par
l'extension.
$
message
=
"
Fichier
"
.
$
nom
.
"
non
transféré
"
;
$
message
.
=
"
(
transfert
stoppé
par
l
'
extension
)
"
;
break;
default :
//
Erreur
non
prévue
!
$
message
=
"
Fichier
non
transféré
"
;
$
message
.
=
"
(
erreur
inconnue
:
"
.
$
code_erreur
.
"
)
"
;
}
}
//
fin
du
isset
POST
?>
<
!
DOCTYPE html PUBLIC "
-
/
/
W3C
/
/
DTD
XHTML
1
.
0
Strict
/
/
EN
"
"
http
:
/
/
www
.
w3
.
org
/
TR
/
xhtml1
/
DTD
/
xhtml1
-
strict
.
dtd
"
>
<
html xmlns=
"
http
:
/
/
www
.
w3
.
org
/
1999
/
xhtml
"
>
<
head>
<
title>
Upload<
/
title>
<
/
head>
<
body>
<
form action=
"
file_upload_php
.
php
"
method=
"
post
"
enctype=
"
multipart
/
form
-
data
"
>
<
div>
Fichier :
<
input size=
"
100
"
type=
"
file
"
name=
"
fichier
"
value=
"
"
/
>
<
input type=
"
submit
"
name=
"
valid
"
value=
"
Envoyer
le
fichier
"
/
>
<
br /
>
<?php
echo $
message
;
?>
<
/
div>
<
/
form>
<
/
body>
<
/
html>
VII. Comment forcer le téléchargement de fichier avec PHP▲
Dans ce cours vidéo, apprenez à forcer le téléchargement de fichier en PHP.
En effet, un simple lien de téléchargement n'est parfois pas suffisant pour garantir le téléchargement de fichier.
Avec ce cours, vous n'aurez plus ce problème.
Ci-dessous, l'exemple de code
<?php
/**
The
Initial
Developer
of
the
Original
Code
is
Matthieu
-
http
:
/
/
www
.
programmation
-
facile
.
com
/
Portions
created
by
the
Initial
Developer
are
Copyright
(
C
)
2013
the
Initial
Developer
.
All
Rights
Reserved
.
Contributor
(
s
)
:
*/
//
Liste
des
documents
disponibles
en
téléchargement
$
documents
=
array("
tutoriels
.
pdf
"
,
"
screenshot
.
gif
"
,
"
video2
.
mp4
"
);
//
Traitement
du
formulaire
si
$_GET
non
vide.
if (!
empty($
_GET
))
{
//
Récupère
l'identifiant
du
document.
$
iIdFile
=
$
_GET
[
"
id
"
]
;
//
En
déduire
le
nom
du
document.
$
sFilename
=
$
documents
[
$
iIdFile
]
;
//
Envoyer
l'entête
d'attachement.
$
header
=
"
Content
-
Disposition
:
attachment
;
"
;
$
header
.
=
"
filename
=
$
sFilename
\n
"
;
header($
header
);
//
Envoyer
l'entête
du
type
MIME
(ici,
"inconnu").
header("
Content
-
Type
:
x
/
y\n
"
);
//
Envoyer
le
document.
readfile($
sFilename
);
}
?>
<
!
DOCTYPE html PUBLIC "
-
/
/
W3C
/
/
DTD
XHTML
1
.
0
Strict
/
/
EN
"
"
http
:
/
/
www
.
w3
.
org
/
TR
/
xhtml1
/
DTD
/
xhtml1
-
strict
.
dtd
"
>
<
html xmlns=
"
http
:
/
/
www
.
w3
.
org
/
1999
/
xhtml
"
>
<
head>
<
title>
Téléchargement<
/
title>
<
/
head>
<
body>
<
table border=
"
1
"
cellpadding=
"
4
"
cellspacing=
"
0
"
>
<
tr align=
"
center
"
>
<
th>
Documents disponibles sur le serveur<
/
th>
<
/
tr>
<?php
//
Parcourt
la
liste
des
documents
et
utilise
le
nom
//
pour
l'affichage
et
l'identifiant
dans
l'URL.
foreach($
documents
as $
iIdFile
=
>
$
document
)
{
echo "
<
tr
>
<
td
>
<
a
href
=
\
"
file_download_php
.
php
?
id
=
$
iIdFile
\
"
>
"
.
$
document
.
"
<
/
a
>
<
/
td
>
<
/
tr
>
"
;
}
?>
<
/
table>
<
/
body>
<
/
html>
VIII. Recevez gratuitement la formation "PHP Facile"▲
Si vous souhaitez aller plus loin dans la création de sites Web dynamique,
vous pouvez recevoir gratuitement la formation "PHP Facile" avec des cours pas à pas, accompagnés des codes source commentés.
Ainsi, vous progressez à votre rythme, avec un suivi personnalisé et individuel. Vous avez la possibilité de poser toutes vos questions techniques sous chaque cours.
Vous allez ainsi découvrir comment utiliser le langage PHP et les bases de données MySQL.
Cliquez simplement ici pour recevoir gratuitement la formation "PHP Facile" !Cliquez simplement ici pour recevoir gratuitement la Formation PHP Facile !
IX. Remerciements▲
Merci beaucoup à l'équipe de rédaction de Developpez.com de contribuer à la diffusion de ce tutoriel.
J'adresse également un merci tout particulier à Jacques Jeanjacques_jean pour sa relecture orthographique.