Petit up et récapitulatif : tout est presque ok.
Il manque l'affichage des news et des témoignages sur la page d'accueil.
J'ai remis des variables à jour car elles différaient parfois. Voici mon dernier code :
<?php
// On se connecte à notre base
$base = mysql_connect ('***', '***', '***');
mysql_select_db('***', $base);
// Lancement de la requête. on sélectionne les news que l'on va ordonner suivant l'ordre "inverse" des dates (de la plus récente à la plus vieille : DESC) tout en ne sélectionnant que le nombre voulu de news à afficher (LIMIT)
$sql = 'SELECT auteur, titre, date, image_news, texte_news FROM news ORDER BY date DESC LIMIT 10';
// On lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// On construit le tableau $tab_news qui sera repris par le code javascript pour le défilement
$tab_news = array();
$i = 0;
while($resultat = mysql_fetch_assoc($req))
{
$tab_news[$i]['image_news'] = $resultat['image_news'];
$tab_news[$i]['texte_news'] = $resultat['texte_news'];
$i++;
}
$sql = 'SELECT image_tems, texte_tems FROM temoignages ORDER BY date DESC';
// On lance la requête (mysql_query)
$req = mysql_query($sql) or die(mysql_error()) ;
// On construit le tableau $tab_tems qui sera repris par le code javascript pour le défilement
$tab_tems = array();
$i = 0;
while($resultat = mysql_fetch_assoc($req))
{
$tab_tems[$i]['image_tems'] = $resultat['image_tems'];
$tab_tems[$i]['texte_tems'] = $resultat['texte_tems'];
$i++;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans nom</title>
<script type="text/javascript">
function Message(tab,id_message,id_photo)
{
var id_mes = document.getElementById(id_message);
var id_pho = document.getElementById(id_photo);
var tab_news_js = tab;
// Nombre d'éléments du tableau
var nb_tab_news_js = tab_news_js.length;
// Si les éléments cibles existent et le tableau a plus d'un élément
if (id_mes && id_pho && nb_tab_news_js > 1)
{
var Img_preload_src = new Array();
// Préchargement des images
for (var i=0; i < nb_tab_news_js; i++)
{
if (typeof tab_news_js[i]['image'] != 'undefined')
{
Img_preload_src[tab_news_js[i]['image']] = new Image();
Img_preload_src[tab_news_js[i]['image']].src = tab_news_js[i]['image'];
}
}
function Boucle(inc)
{
// Je définie l'indice en focntion de la position dans le tableau
var inc = inc < nb_tab_news_js ? inc : 0;
// Je nettoie l'élément cible du texte
var noeuds = id_mes.childNodes.length;
for (var i = 0; i < noeuds; i++)
{
id_mes.removeChild(id_mes.firstChild);
}
// Je prend l'adresse de la photo enregistrée dans le tableau; au cas où l'image ne serait pas renseignée dans le tableau php, image "transparente" (empty)
var image = typeof tab_news_js[inc]['image'] != 'undefined' ? tab_news_js[inc]['image'] : 'sites/all/images/cube1.jpg' ;
// Je cherche le texte enregistré dans le tableau
var texte = typeof tab_news_js[inc]['texte_news'] != 'undefined' ? tab_news_js[inc]['texte_news'] : '';
// Je crée un noeud texte avec le texte récupéré
texte = document.createTextNode(texte);
// J'insère la photo dans l'élément cible
id_pho.src = image;
// J'insère le noeud texte dans l'élément cible
id_mes.appendChild(texte);
// J'incrémente
inc++;
// J'appelle la fonction Boucle toutes les sept secondes
setTimeout(function(){Boucle(inc)},'7000');
}
Boucle(0);
}
}
// Fonction de chargement onload
function AddLoad_JS(func) {
if (window.addEventListener)
{
window.addEventListener("load", func, false);
}
else if (document.addEventListener)
{
document.addEventListener("load", func, false);
}
else if (window.attachEvent)
{
window.attachEvent("onload", func);
}
}
// Chargement onload de la fonction Message avec ses paramètres tab_news, id texte_news, et id image_news
AddLoad_JS(function(){Message(<?php echo (isset($tab_news) && is_array($tab_news))? json_encode($tab_news) : 'new Array' ?>, 'texte_news', 'image_news')});
// Chargement onload de la fonction Message avec ses paramètres tab_tems, id texte_tem, et id image_tems
AddLoad_JS(function(){Message(<?php echo (isset($tab_tems) && is_array($tab_tems))? json_encode($tab_tems) : 'new Array' ?>, 'texte_tems', 'image_tems')});
</script>
<style type="text/css">
.conteneur td {
padding : 10px;
}
.conteneur {
height : 175px;
width : 100%;
border : 0px solid black;
}
</style>
</head>
<body>
<table class = "conteneur">
<tr>
<td>
<img id = "image_news" src="<?php if (isset($tab_news[0]['image'])) echo $tab_news[0]['image']; else echo 'sites/all/images/cube1.jpg'?>" />
</td>
<td id = "texte_news">
<?php if (isset($tab_news[0]['texte_news'])) echo $tab_news[0]['texte_news'];?>
</td>
</tr>
</table>
<table class = "conteneur">
<tr>
<td>
<img id = "image_tems" src="<?php if (isset($tab_tems[0]['image'])) echo $tab_tems[0]['image']; else echo 'sites/all/images/cube2.jpg'?>" />
</td>
<td id = "texte_tems">
<?php if (isset($tab_tems[0]['texte_tems'])) echo $tab_tems[0]['texte_tems'];?>
</td>
</tr>
</table>
</body>
</html>
Quant au formulaire :
<?php
// on teste si le formulaire a été validé
if (isset($_POST['go']) && $_POST['go']=='Poster la news') {
// on se connecte à notre base
$base = mysql_connect ('***', '***', '***');
mysql_select_db('***', $base);
// on teste la déclaration de nos variables
if (!isset($_POST['auteur']) || !isset($_POST['titre']) || !isset($_POST['texte_news'])) {
$erreur = 'Les variables nécessaires au script ne sont pas définies.';
}
else {
if (empty($_POST['auteur']) || empty($_POST['titre']) || empty($_POST['texte_news'])) {
$erreur = 'Au moins un des champs est vide.';
}
// si tout est bon, on peut commencer l'insertion dans la base
else {
// lancement de la requête d'insertion
$sql = 'INSERT INTO news VALUES("", "'.mysql_escape_string($_POST['auteur']).'", "'.mysql_escape_string($_POST['titre']).'", "'.mysql_escape_string($_POST['image_news']).'", "'.date("Y-m-d H:i:s").'", "'.mysql_escape_string($_POST['texte_news']).'")';
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
// on ferme la connexion à la base de données
mysql_close();
// on redirige vers la page d'accueil du site (attention, cette redirection ne fonctionne qui si vous avez placé cette page dans un répertoire à partir de la racine du site). Si ce n'est pas le cas, veuillez entrer ici le bon chemin d'accès afin de retomber sur la page d'accueil du site.
header('Location: index.php');
// on termine le script courant
exit();
}
}
}
?>
<html>
<head>
<title>Insertion d'une nouvelle news</title>
</head>
<body>
<!-- on fait pointer le formulaire vers la page traitant les données -->
<form action="insert_news.php" method="post">
<table>
<tr>
<td>
<span class="gras">Auteur :</span>
</td>
<td>
<input type="text" name="auteur" maxlength="30" size="50" value="<?php if (isset($_POST['auteur'])) echo htmlentities(trim($_POST['auteur'])); ?>">
</td>
</tr>
<tr>
<td>
<span class="gras">Titre :</span>
</td>
<td>
<input type="text" name="titre" maxlength="50" size="50" value="<?php if (isset($_POST['titre'])) echo htmlentities(trim($_POST['titre'])); ?>">
</td>
</tr>
<tr>
<td>
<span class="gras">Image</span>
<input type="text" style="display:none" name="nbr_photo" value="0" id="nbr_photo" />
</td>
<td>
<input type="file" name="image_news" id="image_news" value="image_news" />
</td>
</tr>
<tr>
<td>
<span class="gras">News :</span>
</td>
<td>
<textarea name="texte_news" cols="50" rows="10"><?php if (isset($_POST['texte_news'])) echo htmlentities(trim($_POST['texte_news'])); ?></textarea>
</td>
</tr>
<tr>
<td>
<td align="right">
<input type="submit" name="go" value="Poster la news">
</td>
</tr>
</table>
</form>
<?php
// on affiche les erreurs éventuelles
if (isset($erreur)) echo '<br /><br />',$erreur;
?>
</body>
</html>
Mon calvaire est presque fini, HELP please
Rappel du site :
http://www.i-mediaservices.com
Merci =)