Gaim
Photographie/Fabricants/Canon/Canon PowerShot A200

Photographie/Techniques particulières/Stéréophotographie

Les anaglyphes.
Ce sont des images bichromes qui restituent l'impression de relief quand on les observe à l'aide de lunettes spéciales dont les deux verres sont en fait deux filtres de couleurs complémentaires (généralement cyan (œil droit) et rouge (œil gauche), parfois bleu-violet et jaune-orangé).
Les anaglyphes ont été inventés par Louis Ducos du Hauron.
Stéréo-photographie et mouvement.
Yvan Christ a signalé (Photo-Ciné-Revue, Décembre 1968) l'existence de planches stéréo-photographiques datant du milieu du second empire et baptisées « épreuves à mouvement ». Le décor de ces planches est conforme aux habitudes de la stéréo-photographie et la perception du relief y est normale, en revanche les personnages sont représentés dans deux attitudes différentes, donc à des instants différents. Le rendu du relief ne fonctionne pas bien pour eux mais en revanche, en fermant alternativement l'œil gauche et l'œil droit, les scènes s'animent de façon évidemment saccadée et rudimentaire.
Ces vues sont à classer parmi les ancêtres du cinéma. Elles s'inscrivent parmi les tentatives visant à concilier l'animation de figures produites par le phénakistiscope et la stéréo-photographie, dont l'essor fut considérable à partir de 1850. Cependant, les vrais fondements du cinématographe doivent plutôt être trouvés dans les recherches d'Eadweard Muybridge et d'Étienne-Jules Marey.

Photographie/Fabricants/Olympus/Olympus C-730 UZ

Programmation PHP/Exemples/Livre
Créer le livre.
Tout d'abord, il faut créer le livre d'or, c'est-à-dire une table où seront stockés les messages.
Voici un exemple de table, avec un identifiant auto-incrémenté qui sera la clé (pour pouvoir identifier de manière unique chaque message), puis un champ pour le nom, courriel, date, ... et bien sûr le message.
CREATE TABLE `livre` (
 `id` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
 `nom` VARCHAR( 128 ),
 `email` VARCHAR( 128 ),
 `date` DATE,
 `message` TEXT NOT NULL,
 PRIMARY KEY( `id` )
Ajouter un message.
Voici la requête SQL qui permet d'insérer les données dans la table:
INSERT INTO `livre` ( `nom` , `email` , `date` , `message` )
 VALUES ( `UnNom` , `Une@` , `xx/xx/xxxx` , `blalblablabla...` );
Saisie des données.
Voici un exemple de formulaire servant à récupérer les données saisies par l'utilisateur pour les faire suivre vers 'ajout_message.php' qui les traitera. La méthode utilisée est POST, bien que GET marche aussi, mais POST possède l'avantage de ne pas rendre visible dans l'URL les paramètres passés, ce qui rend cette méthode plus « propre » et plus claire.
fichier formulaire.html
<!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>Formulaire</title>
</head>
<body>
<form name="formulaire" method="post" action="ajout_message.php">
<label for="nom">Nom :</label><input type="text" id="nom" name="nom" /><br />
<label for="email">Courriel :</label><input type="text" id="email" name="email" /><br />
<label for="message">Votre message :</label><br />
<textarea id="message" name="message" cols="50" rows="10">Message par défaut</textarea><br />
<input type="submit" />
</form>
</body>
</html>
Traitement des données.
Le fichier « ajout_message.php » va récupérer et traiter les données saisies par l'utilisateur puis effectuer une insertion dans la base (c'est-à-dire ajouter le message dans le livre d'or). Ces données portent le nom qui leur a été donné dans le formulaire, précédé d'un '$' (représente une variable en PHP).
Il est fortement conseillé d'effectuer des tests de saisie à ce niveau, pour vérifier que l'utilisateur a rempli correctement les champs (champs non vides, adresse email correcte...).
fichier params.php
<?php
$host='localhost';
$user='root';
$password=";
$base='toto';
fichier ajout_message.php
<?php
isset($_POST['nom']) or die('Pas de paramètres en entrée');
//récupération des données entrées par l'utilisateur
$nom = $_POST['nom'];
$message = $_POST['message'];
$email= $_POST['email'];
//vérification des données entrées par l'utilisateur
if (($nom == "")||($message == ""))
 die("Paramètres incorrects.
 <a href='formulaire.html'>Cliquez ici pour revenir au formulaire</a>".mysql_error());
//connexion à la base
require 'params.php';
$link=mysql_connect($host,$user,$password) or die('Erreur de connexion au SGBD.');
mysql_select_db($base,$link) or die('La base de données n\'existe pas');
//insertion du message
$date=date("Y-m-d"); // on récupère la date
$message = htmlspecialchars($message,ENT_QUOTES); //convertit les caractères spéciaux
$sql="INSERT INTO `livre` ( `id` , `nom` , `email` , `date` , `message` ) VALUES ( NULL , '$nom', '$email', '$date', '$message' );";
$res=mysql_query($sql,$link);
mysql_close($link);
if ($res==NULL) die('Erreur lors de l\'écriture du message'.mysql_error());
print "Message correctement ajouté.<br />Merci d'avoir pris le temps de remplir ce livre d'or";
La fonction codice_1 permet de convertir les caractères spéciaux qui pourrait être interprétés comme du code HTML par un navigateur.
Il existe d'autres fonctions, comme codice_2, qui permet en plus de spécifier les caractères de remplacement, ou codice_3 qui permet de remplacer les retours chariots par le caractère HTML de retour à la ligne (codice_4).
Récupérer les messages et les faire afficher.
Cette partie est beaucoup plus simple à réaliser que la partie précédente.
Voici la requête SQL qui permet de récupérer toutes les informations de la table dans la base de donées:
SELECT * FROM `livre` ORDER BY `id`
Les messages seront alors triés en fonction du champ `id`, et, par défaut, par ordre croissant, donc plus du plus ancien au plus récent.
Pour les classer dans l'ordre décroissant, il faut rajouter l'instruction DESC, ce qui donne la requête suivante :
SELECT * FROM `livre` ORDER BY `id` DESC
Après, il suffit d'afficher les informations obtenues grâce à la requête.
fichier affiche_message.php
<!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>Livre d'or</title>
</head>
<body>
<?php
//connexion à la base
require 'params.php';
$link=mysql_connect($host,$user,$password) or die('Erreur de connexion au SGBD.');
mysql_select_db($base,$link) or die('La base de données n\'existe pas');
//récupération des messages
$sql="SELECT * FROM `livre` ORDER BY `id` DESC";
$rep=mysql_query($sql,$link);
mysql_close($link);
while ( $ligne = mysql_fetch_array($rep))
 //on récupère les valeurs des diffèrent champs pour chaque message
 $nom=$ligne['nom'];
 $email=$ligne['email'];
 $date=$ligne['date'];
 $message=$ligne['message'];
 /* on remplace les retours chariots '\n'
 par le symbole de retour à la ligne en HTML : <br /> */
 $message=nl2br($message);
 //on affiche ses valeurs dans un tableau
 print "<table>
 <tr><th>Par :<a href=mailto:$email>$nom</a>/th>
 <th>Le : $date</th></tr>
 <tr><td colspan='2'>$message</td></tr>
 </table>";
</body>
</html>
Ceci n'est que le strict minimum pour faire un livre d'or. D'autres fonctionnalités, comme le nombre d'affichage par page, peuvent être ajoutées.