Probleme inclusion systeme de newz dans l'index

Eléphant du PHP | 440 Messages

25 janv. 2006, 17:52

Bon on va remeetre les choses dans lordre :

Le premier fichier que tu nous a montré c est index.php donc l affichage de ton site , dans lequel on trouve :

include($page); ça c est l inclusion des differentes pages de ton site , et quand tu arrive sur ton site la page par defaut qui s affiche ici c est 'accueil.php'

Donc si tu veux que tes news s affichent sur l accueil de ton site tu dois include le fichier qui lit les news dans 'accueil.php' !

Est-ce clair ?
C'est en faisant des erreurs et en osant demander de l'aide qu'on apprend ! Il n'est pas ridicule de ne pas savoir !

Eléphant du PHP | 54 Messages

25 janv. 2006, 17:55

Très clair chef, j'avais pigé ça. Mais alors à quoi correspond le code php qui est déjà dans la page accueil.php ? Dois-je le virer et mettre le code de liste_news.php à la place ?
Je rappelle le code ACCUEIL.PHP:
<div id="haut">
	  <h1>Bienvenue sur Objectif SVT</h1>
	  </div>
	  <div id="contenu">
	  <div id="texte">
	  <?php
// On récupère les 5 dernières news
$retour = mysql_query('SELECT * FROM news WHERE valide = "1" ORDER BY id DESC LIMIT 0, 5');
while ($donnees = mysql_fetch_array($retour))
{
?>
<div class="news">
        <h3>
        <?php echo $donnees['titre']; ?> <br />
        <em>Ecrit par <?php echo $donnees['pseudo'] ?> le <?php echo date('d/m/Y \à H\hi', $donnees['timestamp']); ?></em>
        </h3>
        
        <p>
		<?php
        //On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />)
        $contenu = nl2br(stripslashes($donnees['contenu']));
        echo $contenu;
        ?>
        </p>
</div>

<?php
}  // Fin de la boucle des news
?>

	  </div>
	  </div>
Et voici le code de LISTE_NEWS.PHP:
<div id="haut">
<h2><a href="rediger_news.php">Ajouter une news</a></h2>
</div>
<div id="contenu">
	  <div id="texte">
<?php
//----------------------------------------------------------------------------------------------------------------
// Vérification 1 : est-ce qu'on veut poster une news ?
//----------------------------------------------------------------------------------------------------------------

if (isset($_POST['titre']) AND isset($_POST['contenu']) AND isset($_POST['pseudo']))
{
        $pseudo = addslashes($_POST['pseudo']);
        $titre = addslashes($_POST['titre']);
        $contenu = addslashes($_POST['contenu']);
        // On vérifie si c'est une modification de news ou pas
        if ($_POST['id_news'] == 0)
        {
                // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
mysql_query("INSERT INTO news (titre, contenu, timestamp, pseudo, valide) VALUES ('" . $titre . "', '" . $contenu . "', '" . time() . "', '" . $pseudo . "', '1')");
        }
        else
        {
                // C'est une modification, on met juste à jour le titre, le contenu et le pseudo
                mysql_query("UPDATE news SET titre='" . $titre . "', contenu='" . $contenu . "', pseudo='" . $pseudo . "' WHERE id=" . $_POST['id_news']);
        }
}

// --------------------------------------------------------------------------------------------------------------
// Vérification 2 : est-ce qu'on veut supprimer une news ?
// --------------------------------------------------------------------------------------------------------------

if (isset($_GET['supprimer_news']))  // Si on demande de supprimer une news
{
        // Alors on supprime la news correspondante
        mysql_query('DELETE FROM news WHERE id=' . $_GET['supprimer_news']);
}
?>

<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
<th>Date</th>
<th>Pseudo</th>
<th>Valider</th>
</tr>

<?php
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC');
while ($donnees = mysql_fetch_array($retour))  // On fait une boucle pour lister les news
{
?>

<tr>
<td><?php echo '<a href="rediger_news.php?modifier_news=' . $donnees['id'] . '">'; ?>Modifier</a></td>
<td><?php echo '<a href="liste_news.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($donnees['titre']); ?></td>
<td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
<td><?php echo $donnees['pseudo'] ?></td>
<td><?php
        if (($donnees['valide']) == 0) { //Afficher "valider" si la news a été proposée
        ?>
        &nbsp;&nbsp;<a href="valinews.php?ampnewsavalid=<?php echo $donnees['id'];?>">valider</a>&nbsp;&nbsp;
        <?php
        }
        else{
        echo $donnees['valide']; 
        }
        ?>
</tr>

<?php
}  // Fin de la boucle qui liste les news
?>
</table>
</div>
</div>

Eléphant du PHP | 440 Messages

25 janv. 2006, 17:59

arfff , fallait le dire tout de suite que le petit fichier c etait 'accueil.php' , moi je croyais que c etait ton fichier de lecture de news qui etait a part !

Donc y a un probleme de lecture de news .....

On recapitule alors , le proble c est quoi ? les news s affichent pas du tout ? t as un message d erreur ?
C'est en faisant des erreurs et en osant demander de l'aide qu'on apprend ! Il n'est pas ridicule de ne pas savoir !

Eléphant du PHP | 440 Messages

25 janv. 2006, 18:04

La connection a ta base est elle bonne ?
Modifié en dernier par DarkBlue le 25 janv. 2006, 18:11, modifié 1 fois.
C'est en faisant des erreurs et en osant demander de l'aide qu'on apprend ! Il n'est pas ridicule de ne pas savoir !

Eléphant du PHP | 54 Messages

25 janv. 2006, 18:06

LOL c'est pas grave.
Alors, la zone dans laquelle je veux afficher les news (la div"centre") s'affiche parfaitement mais il n'y a rien dedans ! Je devrais pourtant voir au moins des pseudo boite de dialogue ou autre non ? avec d'éventuels messages d'erreur de login à la bdd?
Pourtant rien REGARDE: http://objectifsvt.free.fr/index.php

En local, ça donne ça: http://objectifsvt.free.fr/saisie_ecran.jpg
Pour les messages du haut: normal je suis en local !
Modifié en dernier par ratdelabo le 25 janv. 2006, 18:07, modifié 1 fois.

Eléphant du PHP | 440 Messages

25 janv. 2006, 18:06

autre chose :
while ($donnees = mysql_fetch_array($retour)) 

devrait s ecrire :
while ($donnees = mysql_fetch_array($retour ,MYSQL_ASSOC))
sinon tu risque de voir que la premiere news s'afficher !
C'est en faisant des erreurs et en osant demander de l'aide qu'on apprend ! Il n'est pas ridicule de ne pas savoir !

Eléphant du PHP | 54 Messages

25 janv. 2006, 18:13

J'ai créé un fichier connect.php dans lequel figure mes info de connections à ma bdd.
Ne devrais-je pas mettre un
<?php
ob_start();
require('connect.php') ;
?>
au début plutôt ?

Eléphant du PHP | 440 Messages

25 janv. 2006, 18:13

Vu ce qu il s affiche sur ta page , la connexion a la BDD ne se fait pas , tu es sur des identifiants ?
C'est en faisant des erreurs et en osant demander de l'aide qu'on apprend ! Il n'est pas ridicule de ne pas savoir !

Eléphant du PHP | 440 Messages

25 janv. 2006, 18:14

J'ai créé un fichier connect.php dans lequel figure mes info de connections à ma bdd.
Ne devrais-je pas mettre un
<?php
ob_start();
require('connect.php') ;
?>
au début plutôt ?
require('connect.php') ; est au debut de ton fichier index.php donc il est declaré sur toutes les pages pour tout le site , ça vient surement de tes identifiant !
C'est en faisant des erreurs et en osant demander de l'aide qu'on apprend ! Il n'est pas ridicule de ne pas savoir !

Eléphant du PHP | 54 Messages

25 janv. 2006, 18:15

carrément certain des identifiants...
Pourtant, deux messages d'erreurs apparaîssent.
Si tu me sors de ce merdier je t'offre une boite de chocolat !

Eléphant du PHP | 440 Messages

25 janv. 2006, 18:20

t'as essayé ta requete dans phpmyadmin ? peut etre qu elle ne renvoi rien ...
C'est en faisant des erreurs et en osant demander de l'aide qu'on apprend ! Il n'est pas ridicule de ne pas savoir !

Eléphant du PHP | 54 Messages

25 janv. 2006, 18:28

Qu'est-ce je marque exactement dans la requête ?

Eléphant du PHP | 440 Messages

25 janv. 2006, 18:30

tu vas dans phpmyadmin , tu vas sur la bonne table pis dans le grand champs de texte ou il y a marque "SELECT * FROM ..."

tu remplace par :

SELECT * FROM news WHERE valide = "1" ORDER BY id DESC LIMIT 0, 5

et tu clique sur executer
C'est en faisant des erreurs et en osant demander de l'aide qu'on apprend ! Il n'est pas ridicule de ne pas savoir !

Eléphant du PHP | 54 Messages

25 janv. 2006, 18:31

Déjà fait ! Exécutée avec succès. Ca ca coince pas !

Eléphant du PHP | 440 Messages

25 janv. 2006, 18:32

oui mais est ce que t as des resultats qui s affiche ?

normalement en dessous de "executé avec succes' tu devrais avoir un petit tableau de 5 lignes qui recapitule les 5 dernieres news !
C'est en faisant des erreurs et en osant demander de l'aide qu'on apprend ! Il n'est pas ridicule de ne pas savoir !