FAQ Adobe® Dreamweaver CS3/CS4
FAQ Adobe® Dreamweaver CS3/CS4Consultez toutes les FAQ
Nombre d'auteurs : 6, nombre de questions : 55, dernière mise à jour : 16 juin 2021Â
- Existe-t-il un indicateur de code pour le language PHP ?
- Comment configurer Dreamweaver pour qu'il applique la coloration syntaxique de PHP à un fichier portant l'extension « .INC » ?
- Qu'est ce qu'un jeu d'enregistrement (Recordset) ?
- Comment créer une connexion à une base de données ?
- Comment créer un jeu d'enregistrement en mode « simple » ?
- Comment créer une variable de formulaire et l'insérer facilement dans une page ?
- Comment créer une région répétée ?
- Comment créer une liste (SELECT) dynamique à partir d'un jeu d'enregistrement ?
- Comment afficher une liste (SELECT) avec une valeur déjà sélectionnée ?
- Comment insérer des données dans une base SQL à partir d'un formulaire ?
Il peut être intéressant, lorsque vous tapez les premières lettres d'une fonction PHP, d'éviter les erreurs de syntaxe et d'obtenir les paramètres de celle-ci.
En mode « Code », positionnez vous entre deux balises « PHP », tapez la ou les premières lettres de la fonction désirée et appuyez sur « Ctrl+Espace »,
Un menu « Indicateur de code » apparaît, la première fonction correspondante aux lettres tapées est automatiquement sélectionnée.
Insérez la fonction désirée en cliquant sur la touche « Entrée ».
Vous devez modifier la ligne 75 du fichier :
C:\Program Files\Adobe\Adobe Dreamweaver CS3\configuration\DocumentTypes\MMDocumentTypes.xml
En ajoutant l'extension « .INC » à la propriété « winfileextension »
Vous devez aussi modifier le fichier :
C:\Program Files\Adobe\Adobe Dreamweaver CS3\configuration\extensions.txt
En ajoutant l'extension « .INC » à la ligne « Fichiers PHP » et « Tous les documents ».
Un jeu d'enregistrement va permettre d'extraire une ou plusieurs informations stockées dans une base de données à l'aide d'une requête SQL.
Il peut être créé en mode « simple » ou en mode « avancé ».
Ouvrez une page PHP (Ctrl+N > Page vierge > PHP),
Sélectionnez : Fenêtre > Base de données (ou Ctrl+Maj+F10),
Cliquez sur le bouton « + » et choisir « Connexion MYSQL ».
Dans la fenêtre qui s'ouvre, indiquez les informations nécessaires à la connexion,
Cliquez sur « Tester », une pop-up doit s'ouvrir avec le message : « Connexion établie ».
Vous trouverez ensuite un nouveau dossier « Connexions », dans celui de votre site local, contenant un fichier portant le nom indiqué lors de la création de la connexion.
Exemple de fichier connexion :
<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_CnxDEVELOPPEZ
=
"localhost"
;
$database_CnxDEVELOPPEZ
=
"developpez"
;
$username_CnxDEVELOPPEZ
=
"root"
;
$password_CnxDEVELOPPEZ
=
"123456"
;
$CnxDEVELOPPEZ
=
mysql_pconnect($hostname_CnxDEVELOPPEZ
,
$username_CnxDEVELOPPEZ
,
$password_CnxDEVELOPPEZ
) or
trigger_error(mysql_error(),
E_USER_ERROR);
?>
Sélectionnez : Fenêtre > Liaisons (ou Ctrl+F10),
Cliquez sur le bouton « + » et choisissez « Jeux d'enregistrements (Requête) »,
Indiquez un nom, par exemple « Rs_Pays » (Rs correspondant à l'abréviation de Recordset),
Choisissez sa connexion dans la liste déroulante,
(Si celle-ci n'a pas encore été créée, cliquez sur « Définir » et « Nouveau » puis remplir les différents champs),
La liste des tables correspondantes à la connexion choisie s'affiche,
Sélectionnez la table sur laquelle vous souhaitez faire une requête,
Dans la partie « Colonnes » apparaissent tous les champs correspondants à la table sélectionnée ; Par défaut « Toutes » est cochée.
Si vous ne désirez pas récupérer l'ensemble des colonnes,
Cochez « Sélectionnées » et sélectionner les colonnes souhaitées en maintenant la touche « Ctrl » enfoncée,
Choisissez le champ sur lequel vous voulez effectuer un filtre, ou laissez « aucun »,
Choisissez le champ sur lequel vous voulez effectuer un tri, ou laissez « aucun ».
Vous pouvez tester votre requête en cliquant sur « Tester ».
Une nouvelle fenêtre s'ouvre vous indiquant le nombre d'enregistrements correspondant.
Cliquer sur « Ok ».
Le code de votre requête est généré automatiquement :
Ici une simple requête pour obtenir tous les champs (* = tous les champs) de la table « pays ».
<?php
require_once('Connections/CnxDEVELOPPEZ.php'
);
?>
<?php
if
(!
function_exists("GetSQLValueString"
)) {
function
GetSQLValueString($theValue
,
$theType
,
$theDefinedValue
=
""
,
$theNotDefinedValue
=
""
)
{
$theValue
=
get_magic_quotes_gpc() ?
stripslashes($theValue
) :
$theValue
;
$theValue
=
function_exists("mysql_real_escape_string"
) ?
mysql_real_escape_string($theValue
) :
mysql_escape_string($theValue
);
switch
($theType
) {
case
"text"
:
$theValue
=
($theValue
!=
""
) ?
"'"
.
$theValue
.
"'"
:
"NULL"
;
break
;
case
"long"
:
case
"int"
:
$theValue
=
($theValue
!=
""
) ?
intval($theValue
) :
"NULL"
;
break
;
case
"double"
:
$theValue
=
($theValue
!=
""
) ?
"'"
.
doubleval($theValue
) .
"'"
:
"NULL"
;
break
;
case
"date"
:
$theValue
=
($theValue
!=
""
) ?
"'"
.
$theValue
.
"'"
:
"NULL"
;
break
;
case
"defined"
:
$theValue
=
($theValue
!=
""
) ?
$theDefinedValue
:
$theNotDefinedValue
;
break
;
}
return
$theValue
;
}
}
mysql_select_db($database_CnxDEVELOPPEZ
,
$CnxDEVELOPPEZ
);
$query_Rs_Pays
=
"SELECT * FROM pays"
;
$Rs_Pays
=
mysql_query($query_Rs_Pays
,
$CnxDEVELOPPEZ
) or
die(mysql_error());
$row_Rs_Pays
=
mysql_fetch_assoc($Rs_Pays
);
$totalRows_Rs_Pays
=
mysql_num_rows($Rs_Pays
);
?>
Ouvrez une page PHP (Ctrl+N > Page vierge > PHP),
Sélectionnez : Fenêtre > Liaisons (ou Ctrl+F10),
Cliquez sur le bouton « + » et sélectionnez « Variable de formulaire »,
Dans la fenêtre indiquer le « Nom » pour votre variable et cliquer sur « Ok », (Ce nom devant être le nom d'un champ de formulaire que vous avez créé).
Vous avez maintenant dans le panneau « Liaison » votre variable qui apparaît dans « Form »,
Choisissez le mode « Code » sur votre page,
Faites un clic gauche sur votre nouvelle variable, maintenez enfoncé, et déplacez votre curseur vers le code de votre page PHP,
Une fois que vous avez relâché le bouton le code suivant apparaît :
<?php
echo $_POST
[
'test'
];
?>
Vous pouvez créer de la même manière des variables : d'URL, de Session, Cookie, de Serveur et d'Environnement.
Ce qui donne ceci en matière de code généré :
Après avoir créé un jeu d'enregistrement (requête SQL), il faut créer un tableau contenant deux lignes, une pour l'entête des colonnes et une seconde pour l'affichage des données.
Créez un tableau avec deux colonnes :
Ici, la première colonne correspondant aux noms de « Pays » et la seconde aux « Capitales ».
<table width
=
"300"
border
=
"1"
cellspacing
=
"1"
cellpadding
=
"0"
>
<tr>
<td width
=
"140"
><div align
=
"center"
>
Pays</div></td>
<td width
=
"151"
><div align
=
"center"
>
Capitale</div></td>
</tr>
<tr>
<td>&
amp;nbsp;</td>
<td>&
amp;nbsp;</td>
</tr>
</table>
Indiquez à partir du jeu d'enregistrement les données que vous souhaitez afficher dans votre tableau :
<
table width=
"
300
"
border=
"
1
"
cellspacing=
"
1
"
cellpadding=
"
0
"
>
<
tr>
<
td width=
"
140
"
><
div align=
"
center
"
>
Pays</
div></
td>
<
td width=
"
151
"
><
div align=
"
center
"
>
Capitale</
div></
td>
</
tr>
<
tr>
<
td>
<?php
echo $row_rs_Pays
[
'NOM'
];
?>
</
td>
<
td>
<?php
echo $row_rs_Pays
[
'CAPITALE'
];
?>
</
td>
</
tr>
</
table>
Sélectionnez la deuxième ligne du tableau,
Sélectionnez : Insertion > Objets de données > Région répétée,
Sélectionnez votre jeux d'enregistrement et cliquer sur « Afficher tous les enregistrements ».
<
table width=
"
300
"
border=
"
1
"
cellspacing=
"
1
"
cellpadding=
"
0
"
>
<
tr>
<
td width=
"
140
"
><
div align=
"
center
"
>
Pays</
div></
td>
<
td width=
"
151
"
><
div align=
"
center
"
>
Capitale</
div></
td>
</
tr>
<?php
do
{
?>
<
tr>
<
td>
<?php
echo $row_rs_Pays
[
'NOM'
];
?>
</
td>
<
td>
<?php
echo $row_rs_Pays
[
'CAPITALE'
];
?>
</
td>
</
tr>
<?php
}
while
($row_rs_Pays
=
mysql_fetch_assoc($rs_Pays
));
?>
</
table>
La seconde ligne va se répéter autant de fois qu'il y a d'enregistrement dans votre jeu d'enregistrement.
Si la barre « Insertion » n'est pas affichée,
Sélectionnez : Fenêtre > Insertion (ou Ctrl+F2),
Choisissez l'onglet « Formulaire », puis cliquez sur le bouton « Liste/Menu »,
(Vous pouvez également sélectionner Insertion > Formulaire > Liste/Menu),
Donnez un nom à votre liste dans le champ « ID » (ce nom correspondra au « name » et à l'« id » de votre « select »),
Si vous désirez indiquer une étiquette, indiquez un nom dans le champ « Etiquette »,
Sélectionnez ensuite le style pour votre étiquette, puis la position de celle-ci,
Cliquer sur « Ok ».
Vous obtenez le code suivant : (ici une liste ayant le nom « pays » sans étiquette)
<select name
=
"Pays"
id
=
"Pays"
>
</select>
Positionnez-vous en mode « Création »,
Sélectionnez la liste,
Dans le panneau « Propriétés » (si celui-ci n'est pas affiché Ctrl+F3), cliquez sur le bouton « Dynamique »,
Dans « Options du jeux d'enregistrements », sélectionnez le jeu d'enregistrement qui doit alimenter dynamiquement votre liste,
Valeur : Sélectionner le champ que vous désirez indiquer comme « value » pour chaque « option » de votre liste,
Etiquettes : Sélectionner le champ que vous souhaitez voir s'afficher dans votre liste,
Ne rien inscrire dans le champ « Sélectionner une valeur égale à : ».
Code généré : Ici une liste ayant pour étiquette des noms de pays et pour valeur l'« ID » du pays dans la table.
<
select name=
"
Pays
"
id=
"
Pays
"
>
<?php
do
{
?>
<
option value=
"
<?php echo
$row_Rs_Pays['ID']
?>
"
>
<?php
echo $row_Rs_Pays
[
'NOM'
]
?>
</
option>
<?php
}
while
($row_Rs_Pays
=
mysql_fetch_assoc($Rs_Pays
));
$rows
=
mysql_num_rows($Rs_Pays
);
if
($rows
>
0
) {
mysql_data_seek($Rs_Pays
,
0
);
$row_Rs_Pays
=
mysql_fetch_assoc($Rs_Pays
);
}
?>
</
select>
Après avoir créé sa liste :
Ici une liste de Pays avec l'« ID » en valeur.
<
select name=
"
Pays
"
id=
"
Pays
"
>
<?php
do
{
?>
<
option value=
"
<?php echo
$row_Rs_Pays['ID']
?>
"
>
<?php
echo $row_Rs_Pays
[
'NOM'
]
?>
</
option>
<?php
}
while
($row_Rs_Pays
=
mysql_fetch_assoc($Rs_Pays
));
$rows
=
mysql_num_rows($Rs_Pays
);
if
($rows
>
0
) {
mysql_data_seek($Rs_Pays
,
0
);
$row_Rs_Pays
=
mysql_fetch_assoc($Rs_Pays
);
}
?>
</
select>
Positionnez-vous en mode « Création »,
Sélectionnez la liste puis dans le panneau « Propriétés » (Ctrl+F3), cliquer sur le bouton « Dynamique »,
Dans la partie « Sélectionner une valeur égale à », indiquez la valeur que vous désirez ou bien aidez-vous du bouton « éclair » qui permet d'accéder soit aux différents jeux d'enregistrement,
soit aux différentes variables que vous avez pu créer.
Puis cliquer sur « Ok ».
Le code généré : Ici on veut que la valeur de la liste sélectionnée soit égale à la variable d'URL : $_GET['nom'].
<
select name=
"
Pays
"
id=
"
Pays
"
>
<?php
do
{
?>
<
option value=
"
<?php echo
$row_Rs_Pays['ID']
?>
"
<?php
if
(!
(strcmp($row_Rs_Pays
[
'ID'
],
$_GET
[
'nom'
]
))) {
echo "selected=
\"
selected
\"
"
;}
?>
>
<?php
echo $row_Rs_Pays
[
'NOM'
]
?>
</
option>
<?php
}
while
($row_Rs_Pays
=
mysql_fetch_assoc($Rs_Pays
));
$rows
=
mysql_num_rows($Rs_Pays
);
if
($rows
>
0
) {
mysql_data_seek($Rs_Pays
,
0
);
$row_Rs_Pays
=
mysql_fetch_assoc($Rs_Pays
);
}
?>
</
select>
Nous avons une base SQL avec une table « utilisateurs », cette dernière est composée de trois champs : ID, PSEUDO et MDP (MotDePasse). Code SQL :
CREATE
TABLE
`utilisateurs`
(
`ID`
int
(
11
)
NOT
NULL
auto_increment
,
`PSEUDO`
varchar
(
30
)
NOT
NULL
,
`MDP`
varchar
(
8
)
NOT
NULL
,
PRIMARY
KEY
(
`ID`
)
)
ENGINE
=
InnoDB DEFAULT
CHARSET
=
latin1 AUTO_INCREMENT
=
1
;
A l'aide d'un formulaire nous voulons alimenter cette « table ».
Positionnez-vous en mode « Création »,
Sélectionnez : Insertion > Formulaire > Formulaire,
Positionnez-vous à l'intérieur des pointillés rouges (correspondant à la délimitation des balises de votre formulaire),
Sélectionnez : Insertion > Formulaire > Champ de texte (ou directement en cliquant sur le bouton correspondant dans le panneau Insertion > Onglet « Formulaire »),
Indiquez un ID : « pseudo »,
Faites un retour ligne,
Insérez un nouveau champ et lui donner comme ID : « mdp »
Faites un retour ligne et insérez un bouton de « type=submit » (Insertion > Formulaire > Bouton).
Le code généré est le suivant :
<form id
=
"form1"
name
=
"form1"
method
=
"post"
action
=
""
>
<p>Pseudo
<input type
=
"text"
name
=
"pseudo"
id
=
"pseudo"
/>
</p>
<p>Mot de Passe
<input type
=
"text"
name
=
"mdp"
id
=
"mdp"
/>
</p>
<p>
<input type
=
"submit"
name
=
"button"
id
=
"button"
value
=
"Envoyer"
/>
</p>
</form>
Maintenant nous allons créer un « Comportement de serveur » à partir du panneau « Application »
Sélectionnez : Fenêtre > Comportements de serveur (Ctrl+F9),
Cliquez sur le bouton « + » et choisir « Insérer un enregistrement »,
Une nouvelle fenêtre s'ouvre,
« Envoyer les valeurs à partir de : » correspond au nom de votre formulaire,
Sélectionnez votre connexion,
La liste « Insérer une table » se met à jour, sélectionnez la table que vous désirez alimenter, ici « utilisateurs ».
Dans la partie « Colonnes » de nouvelles informations apparaissent : il s'agit de la correspondance entre les champs de votre table et ceux de votre formulaire.
La première ligne indique :
la clé primaire 'ID' est inutilisée (ce champ étant de type 'auto_increment')
Et ensuite :
'PSEUDO'(champ de votre table) Gets value from(prendra la valeur provenant de) 'FORM.pseudo'(champ de votre formulaire) as 'Texte'(ici du texte sera envoyé)
Vous retrouvez ces informations dans les deux listes en dessous : « Valeur » et « Envoyer en tant que »,
Ici la correspondance s'est faite automatiquement car nous avons choisi le même nom pour notre champ formulaire et pour notre champ table.
Si les noms avaient été différents, il aurait fallu choisir par nous même : « Valeur » et « Envoyer en tant que ».
Indiquer ensuite l'url de la page que vous voulez afficher une fois l'enregistrement effectué ou aidez vous en cliquant sur « Parcourir ».
Cliquer sur « Ok ».
Le code généré :
<?php
require_once('Connections/CnxDEVELOPPEZ.php'
);
?>
<?php
if
(!
function_exists("GetSQLValueString"
)) {
function
GetSQLValueString($theValue
,
$theType
,
$theDefinedValue
=
""
,
$theNotDefinedValue
=
""
)
{
$theValue
=
get_magic_quotes_gpc() ?
stripslashes($theValue
) :
$theValue
;
$theValue
=
function_exists("mysql_real_escape_string"
) ?
mysql_real_escape_string($theValue
) :
mysql_escape_string($theValue
);
switch
($theType
) {
case
"text"
:
$theValue
=
($theValue
!=
""
) ?
"'"
.
$theValue
.
"'"
:
"NULL"
;
break
;
case
"long"
:
case
"int"
:
$theValue
=
($theValue
!=
""
) ?
intval($theValue
) :
"NULL"
;
break
;
case
"double"
:
$theValue
=
($theValue
!=
""
) ?
"'"
.
doubleval($theValue
) .
"'"
:
"NULL"
;
break
;
case
"date"
:
$theValue
=
($theValue
!=
""
) ?
"'"
.
$theValue
.
"'"
:
"NULL"
;
break
;
case
"defined"
:
$theValue
=
($theValue
!=
""
) ?
$theDefinedValue
:
$theNotDefinedValue
;
break
;
}
return
$theValue
;
}
}
$editFormAction
=
$_SERVER
[
'PHP_SELF'
];
if
(isset($_SERVER
[
'QUERY_STRING'
]
)) {
$editFormAction
.=
"?"
.
htmlentities($_SERVER
[
'QUERY_STRING'
]
);
}
if
((isset($_POST
[
"MM_insert"
]
)) &
amp;&
amp;
($_POST
[
"MM_insert"
]
==
"form1"
)) {
$insertSQL
=
sprintf("INSERT INTO utilisateurs (PSEUDO, MDP) VALUES (%s, %s)"
,
GetSQLValueString($_POST
[
'pseudo'
],
"text"
),
GetSQLValueString($_POST
[
'mdp'
],
"text"
));
mysql_select_db($database_CnxDEVELOPPEZ
,
$CnxDEVELOPPEZ
);
$Result1
=
mysql_query($insertSQL
,
$CnxDEVELOPPEZ
) or
die(mysql_error());
$insertGoTo
=
"Page.php"
;
if
(isset($_SERVER
[
'QUERY_STRING'
]
)) {
$insertGoTo
.=
(strpos($insertGoTo
,
'?'
)) ?
"&"
:
"?"
;
$insertGoTo
.=
$_SERVER
[
'QUERY_STRING'
];
}
header(sprintf("Location: %s"
,
$insertGoTo
));
}
?>
<!
DOCTYPE html PUBLIC "
-//W3C//DTD XHTML 1.0 Transitional//EN
"
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
"
>
<
html xmlns=
"
http://www.w3.org/1999/xhtml
"
>
<
head>
<
meta http-
equiv=
"
Content-Type
"
content=
"
text/html; charset=iso-8859-1
"
/>
<
title>
Document sans titre</
title>
</
head>
<
body>
<
form id=
"
form1
"
name=
"
form1
"
method=
"
POST
"
action=
"
<?php echo
$editFormAction
; ?>
"
>
<
p>
Pseudo
<
input type=
"
text
"
name=
"
pseudo
"
id=
"
pseudo
"
/>
</
p>
<
p>
Mot de Passe
<
input type=
"
text
"
name=
"
mdp
"
id=
"
mdp
"
/>
</
p>
<
p>
<
input type=
"
submit
"
name=
"
button
"
id=
"
button
"
value=
"
Envoyer
"
/>
</
p>
<
input type=
"
hidden
"
name=
"
MM_insert
"
value=
"
form1
"
/>
</
form>
</
body>
</
html>