Probleme avec script de news

Eléphanteau du PHP | 38 Messages

05 avr. 2006, 09:05

Bonjour tous le monde,

Je vien vers vous en esperant un petit coup main de votre part

Tous d'abord ce sont des news en "lire la suite"

Mon probleme est que tous les caracteres possedant ( " ) ou ( ' ) je me retrouve avec des ( \ ) devant ces caracteres bon encore c'est un probleme plutot minime je pense

Mon second probleme est que lorsque je poste une news si je met trop de texte, et bien la news s'affiche entierement sur ma page ou elle devrai se couper pour laisse place à " lire la suite " et le texte qui s'affiche et un lien qui devrai etre celui de " lire la suite "

Voila l'apercu de ce que sa donne sur ma page de test ( http://space.of.light.free.fr/ ) c'est la premiere news

Si vous avez besoin du script je le posterai le code

Merci a tous

Invité
Invité n'ayant pas de compte PHPfrance

05 avr. 2006, 09:12

salut,

pour les " ' regarde ici
http://www.manuelphp.com/php/function.addslashes.php
http://www.manuelphp.com/php/function.stripslashes.php

pour ton système de news post ton morceau de code... ça sera plus parlant :) pour détecter l'éventuelle erreur.

Mammouth du PHP | 19672 Messages

05 avr. 2006, 09:13

Il serait en effet souhaitable que tu illustres ta question avec les portions de code utilisées pour effectuer ce troncage, pour ce qui me concerne, ma boule de cristal a été confisquée lors de la dernière grande inquisition, ma vision ne va pas au-delà de mon écran :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 38 Messages

05 avr. 2006, 11:16

Voici mon code qui s'afffiche sur ma page d'index
<html>


<body>

<?php
mysql_connect("localhost", "******", "******");
mysql_select_db("site");
// On récupère les 5 dernières news
$num = 1;
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 5');
while ($donnees = mysql_fetch_array($retour))
{
$position = 0;
$maxi = 120 ;
$cont = $donnees['contenu'];
$final = substr ($cont,$position,$maxi);
$contenu = nl2br(stripslashes($donnees['contenu']));
?>

<div align="center">
	<table border="0" cellpadding="0" cellspacing="0" width="500" height="60">
		<tr>
			<td rowspan="3" width="60" height="60">
			<p align="center"><p align="center"><img src="images/sga-maintitle2.jpg" width="50" height="50" border="1"></p></td>
			<td width="10"></td>
			<td><?php echo $donnees['titre']; ?></td>
		</tr>
		<tr>
			<td width="10">&nbsp;</td>
			<td><?php echo date('d.m.Y à H\hi', $donnees['timestamp']); ?></td>
		</tr>
		<tr>
			<td width="10">&nbsp;</td>
			<td><? echo "$final"; ?>... </td>
		</tr>
	</table>
</div>

<?php
} mysql_close(); // Fin de la boucle des news
?>
</body>

</html>
Mais je ne sais pas si c'est cette parti qui flanche ou la partie ou je post ma news si il ya besoin du code ou je post la news dite le moi :P

Mammouth du PHP | 19672 Messages

05 avr. 2006, 12:24

Tu utilises peut-être pas la bonne fonciton pour récupérer les données: avec mysql_fetch_assoc, ça fonctionnerait peut-être mieux si on ajoute en plus quelques corrections mineures :
<html>
<body>
<?php
mysql_connect("localhost", "******", "******");
mysql_select_db("site");
// On récupère les 5 dernières news
$num = 1;
$position = 0;
$maxi     = 120 ;
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 5');
while ($donnees = mysql_fetch_assoc($retour))
{
    $cont     = $donnees['contenu'];
    $final    = substr($cont, $position, $maxi);
    $contenu  = nl2br(stripslashes($donnees['contenu']));
?>
<div align="center">
    <table border="0" cellpadding="0" cellspacing="0" width="500" height="60">
        <tr>
            <td rowspan="3" width="60" height="60">
            <p align="center"><img src="images/sga-maintitle2.jpg" width="50" height="50" border="1"></p></td>
            <td width="10">&nbsp;</td>
            <td><?php echo $donnees['titre']; ?></td>
        </tr>
        <tr>
            <td width="10">&nbsp;</td>
            <td><?php echo date('d.m.Y à H\hi', $donnees['timestamp']); ?></td>
        </tr>
        <tr>
            <td width="10">&nbsp;</td>
            <td><?php echo $final; ?>... </td>
        </tr>
    </table>
</div>

<?php
}
mysql_close(); // Fin de la boucle des news
?>
</body>

</html>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 38 Messages

05 avr. 2006, 12:36

Merci pour les corrections , mais sa me fait tjrs la meme chose :(

Mammouth du PHP | 19672 Messages

05 avr. 2006, 12:47

Ben je vois pas trop, je viens de faire un test en local, mais comme j'ai pas la base de données, j'ai limité à une seule nouvelle, voilà ce que ça donne et chez moi ça fonctionne très bien :
<html>
<body>
<?php
$num = 1;
$position = 0;
$maxi     = 120;
$donnees = array(
    "titre" => "Le titre de ma nouvelle",
    "timestamp" => mktime(),
    "contenu" => "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi vestibulum euismod magna. Proin egestas nibh et metus. Quisque fermentum massa at diam. Donec eu elit vitae est laoreet bibendum. Nam aliquet neque ac diam. Pellentesque iaculis sapien vitae enim. Suspendisse accumsan dui sit amet lacus. Nunc commodo, est id convallis pharetra, magna ante tempus metus, ac feugiat massa lacus non elit. Aliquam consequat, eros non sodales lobortis, wisi felis malesuada dolor, non luctus lacus neque ac enim. Proin feugiat bibendum dolor."
);
    $cont     = $donnees['contenu'];
    $final    = substr($cont, $position, $maxi);
    $contenu  = nl2br(stripslashes($donnees['contenu']));
?>
<div align="center">
    <table border="0" cellpadding="0" cellspacing="0" width="500" height="60">
        <tr>
            <td rowspan="3" width="60" height="60">
            <p align="center"><img src="images/sga-maintitle2.jpg" width="50" height="50" border="1"></p></td>
            <td width="10">&nbsp;</td>
            <td><?php echo $donnees['titre']; ?></td>
        </tr>
        <tr>
            <td width="10">&nbsp;</td>
            <td><?php echo date('d.m.Y à H\hi', $donnees['timestamp']); ?></td>
        </tr>
        <tr>
            <td width="10">&nbsp;</td>
            <td><?php echo $final; ?>... </td>
        </tr>
    </table>
</div>
</body>
</html>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 38 Messages

05 avr. 2006, 12:59

Enfaite je vien de trouve le probleme comme mon texte comporte des ( " ) et bien je ne sais pas ce qui se passe mais il s'arrete a cette ( " ) et doit croire que sa fait partie du code , je l'ai est remplacé par des ( ' ) est sa fonctionne par conter si tu savai comment faire pr pouvoir afficher aussi bien les ( ") que les ( ' ) sa m'arrangerai pas mal

Merci