Extensions et les tutorials gratuits disponibles sur internet pour Dreamweaver. PHP et ASP. Classement thématique. Blog référencé par Adobe Communauté Dreamweaver.
Dreamweaver gratuit
Lancement de l'enquête "Lecteurs de Dreamweaver Gratuit, qui êtes-vous, que souhaitez-vous ?"
22 juin 2009 | Posté par caroder à 09:34
Comme je l'avais annoncé dans un précédent billet, je lance une enquête afin de mieux connaître mes lecteurs et pouvoir répondre à leurs attentes. Dites-moi qui vous êtes et faites-moi vos suggestions, ceci m'aidera dans l'orientation de mes articles et la conception de mes futurs tutorials.

Si vous souhaitez répondre, merci de cliquer ici :répondre au sondage.
Merci par avance à tous ceux qui voudront bien participer.
Les résultats de cette enquête seront publiés début juillet sur le site.
Sommaire du tutorial "créer un sondage avec Dreamweaver et PHP/MySQL"
19 mai 2008 | Posté par caroder à 18:42
Voici le sommaire de ce tutorial "Créer un sondage avec Dreamweaver et PHP/MySQL" afin de vous y retrouver plus facilement. Ce tuto est en 5 parties. Chaque lien ouvre une nouvelle fenêtre.
- Création du formulaire d'insertion des votes
- Calcul des résultats du sondage
- Affichage graphique des résultats du sondage
- Empêcher un internaute de voter plusieurs fois
- Affichage conditionnel des résultats
Créer un sondage en PHP avec Dreamweaver - 5e partie
18 mai 2008 | Posté par caroder à 18:42
Nous allons maintenant rendre conditionnel l'affichage des réultats du sondage. Pour voir ces résultats, il faudra avoir voté. Ainsi vos utilisateurs ne seront pas influencés par les résultats.
Créer un jeu d'enregistrement nommé RS_ip, en le paramétrant à "toutes les colonnes" et sans filtrage puis modifier comme suit :
mysql_select_db($database_mabase, $ma_connexion)
$ip = $_SERVER["REMOTE_ADDR"];
$query_RS_ip = "SELECT * FROM ip_tbl WHERE adr_ip ='" . $ip . "'";
$RS_ip = mysql_query($query_RS_ip, $ma_connexion) or die(mysql_error());
$row_RS_ip = mysql_fetch_assoc($RS_ip);
$totalRows_RS_ip = mysql_num_rows($RS_ip);
Positionnez votre curseur juste avant la ligne présentant les résultats et insérez :
<?php if($totalRows_RS_ip > 0) { ?>
Positionnez votre curseur juste après la balise fermante de la table présentant les résultats et insérez :
<?php } ?>
Le tour est joué, votre interface de sondage est terminée !
Nota : pour éviter de déclarer plusieurs fois la variable $ip dans la page, placez la en début de code.
Vous pouvez perfectionner cette interface en permettant le multi-sondage et créant donc une table questions_tbl comprenant l'intitulé de la question du sondage et son numéro d'ID ainsi qu'en complétant la table réponse avec une colonne id_question.
Créer un sondage en PHP avec Dreamweaver – 4e partie
05 mai 2008 | Posté par caroder à 05:41
Nous allons dans la 4e partie de ce tutorial voir comment empêcher un internaute de voter plusieurs fois.
J’évoque ici les 2 méthodes (à ma connaissance !) permettant d’éviter les doublons de vote :
- Installer un cookie sur le poste utilisateur au moment du vote pour interdire le vote si le cookie existe déjà.
- Stocker en base l’adresse IP de l’utilisateur pour interdire le vote si cette adresse est déjà en base.
Chacune de ces deux méthodes a un inconvénient :
- le cookie : l’utilisateur peut supprimer le cookie
- l’adresse IP : les adresses IP partagées (notamment dans le cadre professionnel ou pour les FAI, les adresses IP flottantes) n’autoriseront le vote que d’une seule personne au sein d’une organisation ou plusieurs votes pour une personne.
Nous utiliserons ici la méthode de l’adresse IP, celle du cookie étant à la merci de l’astuce du votant, elle me semble moins sécure (l’adresse IP étant, elle, stockée sur VOTRE serveur)…
Pour stocker l’adresse IP de l’utilisateur, nous allons donc créer une table tb_ipl dans notre base de données.
CREATE TABLE ` tb_ip` (
`id_secur` int(11) NOT NULL auto_increment,
`adr_ip` varchar(20) default NULL,
PRIMARY KEY (`id_secur`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Revenons maintenant à notre page PHP. Nous allons insérer l’adresse IP de l’utilisateur s’il vote. Intégrez le code suivant en dessous de la ligne $Result1 = mysql_query($insertSQL, $ nom_de_ma_connexion) or die(mysql_error()); (à l’intérieur du code indiquant que si le formulaire est posté, il faut insérer le vote dans la table tb_sondage) :
/* STOCKAGE IP POUR EVITER LES DOUBLONS DE VOTE */
$ip = $_SERVER["REMOTE_ADDR"]; //on recupère l'ip
$insertSQL2 = "INSERT INTO tb_ip (adr_ip) VALUES ('$ip')"; // On l'insère dans la table des IP
mysql_select_db($database_nom_de_ma_base, $nom_de_ma_connexion); // récupérez les noms de variables dans la ligne correspondante d’un jeu d’enregistrement de la page
$Result2 = mysql_query($insertSQL2, $nom_de_ma_connexion) or die(mysql_error());
Faite quelques tests de vote pour vérifier que votre adresse IP est bien insérée dans la base.
Maintenant il faut tester si l’adresse IP est présente dans la base avant d’autoriser de poster le vote. Pour cela nous allons utiliser le code de l’extension de FelixOne, Check New Element (disponible gratuitement en utilisant le lien dans la colonne de droite de ce site). Je vous donne ici le code tout préparé car les modifications que nous avons apportées précédemment au code de Dreamweaver et l’utilisation de la variable d’adresse IP rendent l’extension inutilisable ici. Il faut donc le copier/coller en l’état :
// *** TEST DES DOUBLONS DANS LES IP ***
$FX_flag = "MM_insert";
$FX_found = false;
if (isset($_POST [$FX_flag])) {
$FX_dupKeyRedirect = "erreur.php";
$FX_dupKeyValue = $_SERVER["REMOTE_ADDR"];
$FX_dupKeySQL = "SELECT adr_ip FROM tb_ip WHERE adr_ip = '" . $FX_dupKeyValue . "'";
mysql_select_db($database_nom_de_ma_base, $nom_de_ma_connexion); // récupérez les noms de variables dans la ligne correspondante d’un jeu d’enregistrement de la page
$FX_rsKey=mysql_query($FX_dupKeySQL, $nom_de_ma_connexion) or die(mysql_error());
if(mysql_num_rows($FX_rsKey) > 0) {
$FX_found = true;
$FX_dupValue = "IP (" . $FX_dupKeyValue . ") ";
}
if($FX_found) {
$FX_dupValue .= "Ce vote ne peut être pris en compte !";
$FX_qsChar = "?";
if ($FX_dupKeyRedirect == "") $FX_dupKeyRedirect = substr($_SERVER["PHP_SELF"], strrpos($_SERVER["PHP_SELF"], "/")+1);
if (strpos($FX_dupKeyRedirect, "?")) $FX_qsChar = "&";
$FX_dupKeyRedirect = $FX_dupKeyRedirect . $FX_qsChar . "FX_ReqValue=" . urlencode($FX_dupValue);
header ("Location: " . $FX_dupKeyRedirect);
exit;
}
mysql_free_result($FX_rsKey);
}
Il ne vous reste plus qu’à créer la page erreur.php avec le message indiquant à l’utilisateur qu’il a déjà voté et ne peut donc revoter !
Le prochain billet sera consacré à l’affichage conditionnel des résultats du vote.
Créer un sondage en PHP avec Dreamweaver – 3e partie
14 avril 2008 | Posté par caroder à 11:17
Nous allons parfaire l’affichage de nos résultats et réaliser un graphique en barre.
Créez dans Photoshop une image de taille 10 x 20 px contenant une couleur à votre convenance (plutôt unie ou alors avec un dégradé dans le sens de la hauteur).
Insérez cette image juste avant le calcul des pourcentages dans le tableau. Attribuez à cette image un alignement vertical en milieu abolu. Cette image a pour attribut une largeur donné automatiquement par Dreamweaver et qui correspond à 10px. Nous allons ajuster la largeur par défaut proportionnellement aux résultats du sondage. Pour cela dans l’attribut d’image insérez le bout de code suivant :
<img src="images/img-sondage.gif" width="<?php echo round(100 * $row_RS_reponse2['compteur'] / $row_RS_resultats['total'], 0); ?>" height="20" align="absmiddle" />
(Notez le 0 à la place du 2 dans l’arrondi car les largeurs des images sont des entiers).
Prévisualisez, vous devez maintenant obtenir quelque chose qui ressemble à ceci :
Vous pouvez aussi si vous le désirez afficher un graphique en camembert. Pour cela reportez-vous à l’extension correspondante dont j’ai déjà parlée dans ce blog.
Nous verrons dans un prochain billet comment conditionner l’affichage au vote et empêcher un internaute de voter plusieurs fois.
Créer un sondage en PHP avec Dreamweaver – 2e partie
03 avril 2008 | Posté par caroder à 08:38
Nous allons dans cette deuxième partie du tutorial "Créer un sondage en PHP avec Dreamweaver" afficher les résultats du sondage. Pour cela nous allons créer un jeu d’enregistrement que nous allons paramétrer la fenêtre comme suit :
Ouvrez maintenant la fenêtre en mode code et modifiez la ligne :
$query_RS_resultats = "SELECT * FROM tb_sondage";
comme suit :
$query_RS_resultats = "SELECT SUM(compteur) as total FROM tb_sondage";
Insérez maintenant une balise <p> après votre formulaire et tapez : « Résultats sur votes ». Ouvrez le panneau de liaison, déplier le jeu d’enregistrement « RS_resultats » et faites cliquer-glisser l’item « total » entre les mots « sur » et « vote ». Centrer le texte dans la page.
Vous devez maintenant obtenir cette ligne de code :
<p align="center">Résultats sur <?php echo $row_RS_resultats['total']; ?> votes</p>
Nota : j’ai bien conscience que la façon de procéder ci-dessous n’est pas très « propre » et quant à moi je code « a mano » cette partie. La méthode indiquée ici évite aux néophites de coder…
Pour pouvoir appliquer sur la même page le comportement région répétées à un jeu d’enregistrement, nous allons malheureusement être obligé de refaire un jeu d’enregistrement équivalent à RS_reponse. Nous l’appellerons RS_response2.
Créer maintenant un tableau de 2 colonnes et 2 lignes. Données des titres aux colonnes et mettez en forme votre tableau selon vos désirs. Ouvrez le panneau de liaison et faites cliquez les items « libelle », « compteur » et « total » comme ci-dessous :

Afficher maintenant votre page en mode code. Appliquez le comportement région répétées à au <tr> comportant les résultats sur le jeu d’enregistrement RS_reponse2. Afficher la page en mode code et transformez la ligne suivante :
<td><?php echo $row_RS_reponse2['compteur']; ?><?php echo $row_RS_resultats['total']; ?></td>
Comme suit :
<td><?php echo round(100 * $row_RS_reponse2['compteur'] / $row_RS_resultats['total'], 2); ?> %</td>
Explication : pour connaître les pourcentages pour chaque réponse il faut diviser le nombre de vote pour chaque réponse par le nombre total de vote et multiplier par cent. La fonction PHP round() permet d’arrondir le résultat (ici paramétrée à 2 chiffres après la virgule).
Vous pouvez vérifiez que les résultats de votre sondage apparaissent correctement dans la page si vous avez au moins voté une fois.
Nous verrons dans une 3e partie comment afficher les résultats uniquement après le vote ainsi que restreindre la possibilité de voter à une seule fois.
(La 1re partie de ce tutorial est disponible ici : http://dreamgratuit.canalblog.com/archives/2008/03/31/8520180.html)
Créer un sondage en PHP avec Dreamweaver – 1re partie
31 mars 2008 | Posté par caroder à 07:36
Dans ce tutoriel en 5 parties, nous allons créer un petit sondage avec bouton radio (choix multiple, réponse unique) qui présentera à l’utilisateur les résultats du sondage une fois qu’il aura voté. Merci à Floppy dont je me suis inspirée...
La question de notre sondage portera sur l’éditeur de code utilisé par le sondé :)
On suppose que votre base de données (dans ce tuto appelée ma_base) existe déjà et que ce fonctionnel s’insère dans un site existant possédant une connexion nommée ma_Connexion.
Tout d’abord allez dans PHPMyAdmin afin de créer la table contenant le sondage :
#
# Structure de la table 'sondage'
#
CREATE TABLE tb_sondage (
id_reponse tinyint(4) NOT NULL default '0',
compteur bigint(20) NOT NULL default '0',
libelle varchar(255) NOT NULL default '',
PRIMARY KEY (id_reponse)
) TYPE=MyISAM;
#
# Contenu de la table 'sondage'
#
INSERT INTO tb_sondage VALUES (1, 0, 'Dreamweaver');
INSERT INTO tb_sondage VALUES (2, 0, 'Ultra Edit');
INSERT INTO tb_sondage VALUES (3, 0, 'Notepad++');
INSERT INTO tb_sondage VALUES (4, 0, 'Autres');
Nous allons maintenant réaliser la page qui contient le sondage. Faites Fichier >> Nouveau >> Page vierge >> PHP >> Mise en forme Aucune.
Vérifiez en mode code, que la 1re ligne de votre document est bien :
<?php require_once('Connections/ma_Connexion.php'); ?>
Nous allons tout d’abord créer le squelette du formulaire contenant le sondage. Pour cela, nous respectons les standards W3C :
<form name="vote" id="vote" >
<fieldset>
<legend>Sondage</legend>
<p>Quel éditeur de code utilisez-vous ?</p>
<label for=""></label>
<input name="reponse" id="" type="radio" value="" />
<br />
</fieldset>
<p>
<input id="button1" type="submit" value="Voter" />
</p>
</form>
Voici pour info la CSS que j’utilise dans ce tutorial :
<style media="screen" type="text/css">
form { font-size:0.8em; background:#e0e0e0; width:250px; padding:10px; margin:0 auto; border:1px solid #e1e1e1; font-family: Arial, Helvetica, sans-serif; }
form fieldset {width:230px; display:block; padding:5px; line-height:1.5em; border:1px solid #fff; margin:15px 0 0 5px;}
form legend { border:1px solid #666; color:#f00; font-size:1em; margin-bottom:0; padding:3px; width:60px; background:none; font-weight:bold;}
form label {clear:left; display:block; float:left; width:120px; text-align:right; padding-right:10px; color:#000; margin-bottom:0.5em; font-size:1em; line-height:1.5em; }
form input {padding:0; margin-bottom:0.8em;}
form #button1 { background:#ff6600; border:1px solid #333; color:#fff; padding-right:0.5em; cursor:pointer; width:100px; margin-left:75px; font-weight:bold;}
</style>
Vous constatez ici qu’il n’y a qu’un seul bouton radio sans libellé ni valeur. Nous allons pour cela utiliser un jeu d’enregistrement et un comportement serveur.
Pour le jeu d’enregistrement, nous allons paramétrer la fenêtre comme suit :
Une fois validé cette fenêtre, mettez-vous en mode code et ouvrez le panneau de liaison. Faites cliquer-glisser les items « id_reponse » et « libelle » comme indiqué dans la portion de code ci-dessous :
<label for="<?php echo $row_RS_reponse['libelle']; ?>"><?php echo $row_RS_reponse['libelle']; ?></label>
<input name="reponse" id="<?php echo $row_RS_reponse['libelle']; ?>" type="radio" value="<?php echo $row_RS_reponse['reponse']; ?>" />
<br />
Maintenant sélectionnez le code ci-dessus et appliquez le comportement serveur « Région répétée » que vous paramétrez bien évidemment à « tous les enregistrements ».
Si vous affichez la page dans votre navigateur, vous devez obtenir ceci :
Pour mettre à jour le compteur dans la table, il faut maintenant insérer la réponse faite par l’utilisateur dans le compteur de la table tb_sondage. Pour cela, nous allons utiliser le comportement serveur « insérer un enregistrement » que nous allons remanier. Voici le paramétrage de cette fenêtre :
Mettez la fenêtre principale en mode code si ce n’est déjà fait et modifier les lignes suivantes :
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "vote")) {
$insertSQL = sprintf("INSERT INTO tb_sondage (reponse) VALUES (%s)",
GetSQLValueString($_POST['reponse'], "int"));
comme suit (en gras ci-dessous) :
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "vote")) {
$insertSQL = sprintf("UPDATE tb_sondage set compteur = compteur + 1 WHERE id_reponse =%s",
GetSQLValueString($_POST['id_reponse'], "int"));
Tester votre fonctionnel dans votre navigateur : si tout se passe bien vous devriez voir le compteur s’incrémenter à chaque vote !
Nous verrons donc bientôt comment afficher en ligne les résultats du vote.
(disponible ici : http://dreamgratuit.canalblog.com/archives/2008/04/03/8589836.html )
---------------------------------------------------------------------------------------
This tutorial is about building a poll (vote / survey) system with Dreamweaver / PHP - MySQL






