- Une page d'administration sur laquelle on ajoute un nouvel édito
- Un fichier SQL pour créer la table
- Un fichier de connexion à la base de données
- Une page sur laquelle on affiche l'édito
Voici les portions de code des différentes pages ...
sql.sql - La création de la table !
Rien de bien sorcier ... la table 'une' contient 5 champs (id, titre, contenu, miniature, auteur) ...
CREATE TABLE IF NOT EXISTS `une` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`titre` varchar(255) NOT NULL,
`contenu` longtext NOT NULL,
`miniature` mediumtext NOT NULL,
`auteur` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
editorial.php - placé à la racine du site, affiche l'éditoOn inclut d'abord le fichier de configuration pour se connecter à la base de données, puis on exécute une requête qui sélectionne le contenu de la table. On affiche ensuite les résultats trouvés (un seul évidement puisque l'on modifie seulement les valeurs des champs). L'image est redimensionnée en 150x100 pour éviter les déformations ... La présentation est bien sûr à modifier !
<?php
include('_admin_une/config.php');
$sql = 'SELECT * FROM une';
$req = mysql_query($sql) or die ('Erreur SQL !');
while($row = mysql_fetch_array($req))
{
echo '<div style="width: 650px; margin: auto; overflow: auto; border: solid black 1px; padding: 1%;">';
echo '<img width="150" style="float: left; margin-right: 15px;" height="100" src="' . $row['miniature'] . '" />';
echo '<h3>' . $row['titre'] . '</h3>';
echo '<p align="justify">' . $row['contenu'] . '</p>';
echo '<center><b>Ecrit par ' . $row['auteur'] . '</b></center>';
}
?>
_admin.php - Contenu dans un dossier "_admin_une", permet de mettre à jour un éditoOn affiche d'abord un formulaire dans lequel il faut renseigner les différents champs de la table. Puis on vérifie la validité de ceux ci. A noter : en cas d'erreur, les champs déjà remplis sont conservés
<h2>Gestion de la une</h2>
<form name="une" action="_admin.php" method="post">
<table border="0">
<tr>
<td><label style="float: left; font-weight: bold;">Titre :</label></td>
<td><input size="100%;" type="text" name="titre" value="<?php if(isset($_POST['titre'])){ echo $_POST['titre'];} ?>" /></td>
</tr>
<tr>
<td><label style="float: left; font-weight: bold;">Contenu :</label></td>
<td><textarea name="contenu" cols="100" rows="10"><?php if(isset($_POST['contenu'])){ echo $_POST['contenu'];} ?></textarea></td>
</tr>
<tr>
<td><label style="float: left; font-weight: bold;">URL de l'image (150 x 100) :</label></td>
<td><input size="100%;" type="text" name="miniature" value="<?php if(isset($_POST['miniature'])){ echo $_POST['miniature'];} ?>" /> </td>
</tr>
<tr>
<td><label style="float: left; font-weight: bold;">Auteur :</label></td>
<td><input size="100%;" type="text" name="auteur" value="<?php if(isset($_POST['auteur'])){ echo $_POST['auteur'];} ?>"/></td>
</tr>
</table>
<br />
<input type="submit" value="publier" name="publier" />
</form>
<?php
if(isset($_POST['publier']))
{
$titre = mysql_real_escape_string($_POST['titre']);
$contenu = mysql_real_escape_string($_POST['contenu']);
$miniature = mysql_real_escape_string($_POST['miniature']);
$auteur = mysql_real_escape_string($_POST['auteur']);
if(!empty($titre))
{
if(!empty($contenu))
{
if(!empty($miniature))
{
if(!empty($auteur))
{
require("config.php");
$sql = "UPDATE une SET titre = '" . $titre . "', contenu = '" . $contenu . "', miniature = '" . $miniature . "', auteur = '" . $auteur . "' WHERE id = 1";
$req = mysql_query($sql);
echo 'Mise a jour reussie !';
echo '<br /><a href="../editorial.php">Retour a la une</a>';
}
else
{
echo '<font style="color: #FF0000;">Champ "auteur" obligatoire</font>';
}
}
else
{
echo '<font style="color: #FF0000;">Champ "miniature" obligatoire</font>';
}
}
else
{
echo '<font style="color: #FF0000;">Contenu obligatoire</font>';
}
}
else
{
echo '<font style="color: #FF0000;">Champ "titre" obligatoire</font>';
}
}
?>
config.php - Contenu dans le dossier "_admin_une", permet la connexion à la base de données !On renseigne d'abord les variables utilisées pour la connexion MySQL (hote, nom d'utilisateur, mot de passe et base de données utilisée), puis on effectue la connexion !
<?php
$serveur = 'localhost';
$identifiant = 'root';
$passe = '';
$bdd = 'votre_base';
$connexion = mysql_connect($serveur, $identifiant, $passe);
mysql_select_db($bdd, $connexion);
?>
Voici ce que cela donnera :L'éditorial : http://img692.imageshack.us/img692/9554/editow.jpg
La zone d'administration : http://img84.imageshack.us/img84/456/ajout.jpg
En cours d'ajout :
- Un upload d'image pour charger les images directement sur le serveu
Voila ... si ceux qui s'y connaissent veulent me donner des conseils pour mieux programmer, je suis preneur