PHP plante, je ne comprend pas...

Résolu/Fermé
mopasto Messages postés 3 Date d'inscription samedi 26 décembre 2009 Statut Membre Dernière intervention 27 décembre 2009 - 27 déc. 2009 à 16:03
 le père - 28 déc. 2009 à 09:14
Bonjour,
Je rencontre actuellement des petits problèmes sur mes pages php.
Ci-dessous, j'ai mis mon codage pour les 4 pages.

Voici mes problèmes :
Les deux premières pages sont visibles ici :Searchanddestroy.host22.com
Index.php : comme vous pouvez le voir sur le site, le texte des news n'apparait pas, et la date est mauvaise
news.php (cliquez sur nouvelles sur le site) : erreur PHP qu'il indique.
rediger_news.php : marche sans problème
liste_news.php : indique aucune news dans le tableau, mais elle existe bien sur l'index.php (avec le problème expliquer ci-dessus)


Index.php :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<link rel="stylesheet" media="screen" type="text/css" title="Exemple" href="design.css" />
<title>Site de la guilde "Search and destroy"</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<div id="topMenu">
 <center><font color='#EA2042'>Recrutement :</font><br/></center>
<div class="barre_recrutement"><center> | <img src="images/chaman.png" alt="" height="21" width="21" class="img_center" border="0" /> <font color='green'>Ouvert</font> | <img src="images/chasseur.png" alt="" height="21" width="21" class="img_center" border="0" /> <font color='green'>Ouvert</font> | <img src="images/demoniste.png" alt="" height="21" width="21" class="img_center" border="0" /> <font color='green'>Ouvert</font> | <img src="images/druide.png" alt="" height="21" width="21" class="img_center" border="0" /> <font color='green'>Ouvert</font> | <img src="images/guerrier.png" alt="" height="21" width="21" class="img_center" border="0" /> <font color='green'>Ouvert</font> | <img src="images/mage.png" alt="" height="21" width="21" class="img_center" border="0" /> <font color='green'>Ouvert</font> | <img src="images/paladin.png" alt="" height="21" width="21" class="img_center" border="0" /> <font color='green'>Ouvert</font> | <img src="images/pretre.png" alt="" height="21" width="21" class="img_center" border="0" /> <font color='green'>Ouvert</font> | <br /> | <img src="images/voleur.png" alt="" height="21" width="21" class="img_center" border="0" /> <font color='green'>Ouvert</font> | <img src="images/dk.png" alt="" height="21" width="21" class="img_center" border="0" /> <font color='green'>Ouvert</font> | </center></div>
</div>
</body>
<div id="en_tete">
<!-- Ici on mettra la bannière -->
<img src="MyBannerMaker_Banner.jpg" alt="Bannière du site" />
</div>

<!-- Ici on mettra le menu -->
<div id="menu">

<div class="element_menu">
<h3>Entrée</h3>
<ul>
<li><a href="index.php"title="Accueil">Accueil</a></li>
<li><a href="news.php"title="Quoi de nouveau ?">Les nouvelles</a></li>
<li><a href="https://www.000webhost.com/migrate?static=true"title="Administration">Administration</a></li>
</ul>
</div>

<div class="element_menu">
<h3>Communauté</h3>
<ul>
<li><a href="https://searchanddestroy.leforum.eu/index.php"title="Lien vers le forum">Forum</a></li>
<li><a href="liste_des_membres.php"title="La liste des membres">Liste des membres</a></li>
<li><a href="reglement.html"title="Le réglement de la guilde">Réglement</a></li>
<li><a href="media.php"title="Les photos et vidéos de la guilde">Média</a></li>
</ul>
</div>

<div class="element_menu">
<h3><a href="contact.html"title="Comment nous contacter">Contact</a></h3>
</div>

<div class="element_menu">
<h3><a href="lien_utile.html"title="Les liens utiles">Liens utiles</a></h3>
</div>
</div>
<div id="corps">
<!-- Ici on mettra le contenu principal de la page (tout le texte quoi) -->
<h1 id="haut_accueil">Mon super site</h1>
<body>
<h1>Bienvenue sur mon site !</h1>
<p>Voici les dernières news :</p>

<?php
mysql_connect("********", "*******", "*******");
mysql_select_db("******");
// On récupère les 5 dernières news
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 5');
while ($donnees = mysql_fetch_array($retour))
{
?>
<div class="news">
<h3>
<?php echo $donnees['pseudo']; ?>
<?php echo $donnees['titre']; ?>
<em>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 />)
$resum_accueil = nl2br(stripslashes($donnees['resum_accueil']));
echo $resum_accueil;
?>
</p>
</div>
<?php
} // Fin de la boucle des news
?>
</body>
</p>
</div>

<div id="pied_de_page">
<!-- Enfin, on mettra en bas de la page le nom de l'auteur, un copyright... -->
<p>© Copyright "Guilde search and Destroy" 2009-2010, tous droits réservés</p>
<a href="#haut_accueil">Remonter en haut</a>
</div>



news.php :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<link rel="stylesheet" media="screen" type="text/css" title="Exemple" href="design.css" />
<title>Site de la guilde "Search and destroy"</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<div id="topMenu">
 <center><font color='#EA2042'>Recrutement :</font><br/></center>
<div class="barre_recrutement"><center> | <img src="images/chaman.png" alt="" height="21" width="21" class="img_center" border="0" /> <font color='green'>Ouvert</font> | <img src="images/chasseur.png" alt="" height="21" width="21" class="img_center" border="0" /> <font color='green'>Ouvert</font> | <img src="images/demoniste.png" alt="" height="21" width="21" class="img_center" border="0" /> <font color='green'>Ouvert</font> | <img src="images/druide.png" alt="" height="21" width="21" class="img_center" border="0" /> <font color='green'>Ouvert</font> | <img src="images/guerrier.png" alt="" height="21" width="21" class="img_center" border="0" /> <font color='green'>Ouvert</font> | <img src="images/mage.png" alt="" height="21" width="21" class="img_center" border="0" /> <font color='green'>Ouvert</font> | <img src="images/paladin.png" alt="" height="21" width="21" class="img_center" border="0" /> <font color='green'>Ouvert</font> | <img src="images/pretre.png" alt="" height="21" width="21" class="img_center" border="0" /> <font color='green'>Ouvert</font> | <br /> | <img src="images/voleur.png" alt="" height="21" width="21" class="img_center" border="0" /> <font color='green'>Ouvert</font> | <img src="images/dk.png" alt="" height="21" width="21" class="img_center" border="0" /> <font color='green'>Ouvert</font> | </center></div>
</div>
</body>
<div id="en_tete">
<!-- Ici on mettra la bannière -->
<img src="MyBannerMaker_Banner.jpg" alt="Bannière du site" />
</div>

<!-- Ici on mettra le menu -->
<div id="menu">

<div class="element_menu">
<h3>Entrée</h3>
<ul>
<li><a href="index.php"title="Accueil">Accueil</a></li>
<li><a href="news.php"title="Quoi de nouveau ?">Les nouvelles</a></li>
<li><a href="https://www.000webhost.com/migrate?static=true"title="Administration">Administration</a></li>
</ul>
</div>

<div class="element_menu">
<h3>Communauté</h3>
<ul>
<li><a href="https://searchanddestroy.leforum.eu/index.php"title="Lien vers le forum">Forum</a></li>
<li><a href="liste_des_membres.php"title="La liste des membres">Liste des membres</a></li>
<li><a href="reglement.html"title="Le réglement de la guilde">Réglement</a></li>
<li><a href="media.php"title="Les photos et vidéos de la guilde">Média</a></li>
</ul>
</div>

<div class="element_menu">
<h3><a href="contact.html"title="Comment nous contacter">Contact</a></h3>
</div>

<div class="element_menu">
<h3><a href="lien_utile.html"title="Les liens utiles">Liens utiles</a></h3>
</div>
</div>
<div id="corps">
<!-- Ici on mettra le contenu principal de la page (tout le texte quoi) -->
<h1 id="haut_accueil">Mon super site</h1>
<body>
<h1>Bienvenue sur mon site !</h1>
<p>Voici les dernières news :</p>

<?php
mysql_connect("*******", "******", "********");
mysql_select_db("*******");
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 10000000000000000000000');
while ($donnees = mysql_fetch_array($retour))
{
?>
<div class="news">
<h3>
<?php echo $donnees['pseudo']; ?>
<?php echo $donnees['titre']; ?>
<em>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
?>
</body>
</p>
</div>

<div id="pied_de_page">
<!-- Enfin, on mettra en bas de la page le nom de l'auteur, un copyright... -->
<p>© Copyright "Guilde search and Destroy" 2009-2010, tous droits réservés</p>
<a href="#haut_accueil">Remonter en haut</a>
</div>



rediger_news.php :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Rédiger une news</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
h3, form
{
text-align:center;
}
</style>
</head>

<body>
<h3><a href="liste_news.php">Retour à la liste des news</a></h3>
<?php
mysql_connect("********", "*******", "********");
mysql_select_db("a4394670_news");
if (isset($_GET['modifier_news'])) // Si on demande de modifier une news
{
// On protège la variable "modifier_news" pour éviter une faille SQL
$_GET['modifier_news'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news']));
// On récupère les infos de la news correspondante
$retour = mysql_query('SELECT * FROM news WHERE id=\'' . $_GET['modifier_news'] . '\'');
$donnees = mysql_fetch_array($retour);

// On place le titre et le contenu dans des variables simples
$pseudo = stripslashes($donnees['pseudo']);
$titre = stripslashes($donnees['titre']);
$contenu = stripslashes($donnees['contenu']);
$resum_accueil = stripslashes($donnees['resum_accueil']);
$id_news = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
}
else // C'est qu'on rédige une nouvelle news
{
// Les variables $titre et $contenu sont vides, puisque c'est une nouvelle news
$titre = '';
$contenu = '';
$pseudo = '';
$resum_accueil = '';
$id_news = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
}
?>
<form action="liste_news.php" method="post">
<p>Pseudo : <input type="text" size="30" name="pseudo" value="<?php echo $pseudo; ?>" /></p>
<p>Titre : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>
<p>
Contenu :<br />
<textarea name="contenu" cols="50" rows="10">
<?php echo $contenu; ?>
</textarea><br />
Resume de la news<br />
<textarea name="resum_accueil" cols="50" rows="10">
<?php echo $resum_accueil; ?>
</textarea><br />

<input type="hidden" name="id_news" value="<?php echo $id_news; ?>" />
<input type="submit" value="Envoyer" />
</p>
</form>
</body>
</html>



liste_news.php :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Liste des news</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
h2, th, td
{
text-align:center;
}
table
{
border-collapse:collapse;
border:2px solid black;
margin:auto;
}
th, td
{
border:1px solid black;
}
</style>
</head>

<body>

<h2><a href="rediger_news.php">Ajouter une news</a></h2>
<?php
mysql_connect("******", "*******", "********");
mysql_select_db("******");
//-----------------------------------------------------
// Vérification 1 : est-ce qu'on veut poster une news ?
//-----------------------------------------------------
if (isset($_POST['titre']) AND isset($_POST['contenu']))
{
$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 VALUES('', '" . $titre . "', '" . $resum_accueil . "', '" . $contenu . "', '" . $pseudo . "', '" . time() . "')");
}
else
{
// On protège la variable "id_news" pour éviter une faille SQL
$_POST['id_news'] = addslashes($_POST['id_news']);
// C'est une modification, on met juste à jour le titre et le contenu
mysql_query("UPDATE news SET titre='" . $titre . "', contenu='" . $resum_accueil . "', contenu='" . $contenu . "' 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
// On protège la variable "id_news" pour éviter une faille SQL
$_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
mysql_query('DELETE FROM News WHERE id=\'' . $_GET['supprimer_news'] . '\'');
}
?>
<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Pseudo</th>
<th>Titre</th>
<th>Date</th>
</tr>
<?php
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC')or die ('Error: '.mysql_error ());
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['pseudo']); ?></td>
<td><?php echo stripslashes($donnees['titre']); ?></td>
<td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
</tr>
<?php
} // Fin de la boucle qui liste les news
?>
</table>
</body>
</html>



Pour le MYSQl :
news est le nom de ma table
sur la page MYSQL j'ai :
1 News de test J\'ai envie de faire un test 1261825101
2 News de test J\'ai envie de faire un test 1261825157
3 tesrt test 1261825328
4 test erfçj)odjfgjsdg 1261845037
avec : nom de la news=>pseudo=>contenu=>resum_accueil=> timestamp
Le pseudo et le resum_accueil ont pourtant été écris pour les 4 news

Et la table :
Field Type Collation Attributes Null Default Extra Action
id int(11) No auto_increment
titre varchar(255) latin1_general_ci No
pseudo varchar(255) latin1_general_ci No
contenu text latin1_general_ci No
resum_accueil text latin1_general_ci No
Timestamp bigint(20) No 0


Je vous remercie d'avance de vous penchez sur ma question,
Mopasto.
A voir également:

4 réponses

Bonjour

Pour l'heure dans index.php, je n'ai pas vérifié la fonction date. Quels timestamps as-tu pour tes diverses news ?
Pour news.php, tu n'as pas peur d'exagérer avec ton $retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 10000000000000000000000');
Si tu ne veux pas de limite, ne mets pas de LIMIT, pas la peine d'écrire un nombre qui dépasse les capacités de LIMIT
pour liste_news.php :
while ($donnees == mysql_fetch_array($retour)) // On fait une boucle pour lister les news
Pour faire ta boucle, il faut une affectation (un seul =) et non pas une comparaison
0
mopasto Messages postés 3 Date d'inscription samedi 26 décembre 2009 Statut Membre Dernière intervention 27 décembre 2009
27 déc. 2009 à 17:27
Bonjour,

j'ai réussi a corrigé quelque problème :
la liste des news apparait correctement
la date est correct pour index.php
Problème restant :
Comment régler le décalage horaire ?
News.php n'affiche toujours pas la bonne date
resum_accueil et contenu sont invisibles et le pseudo aussi.

Merci de d'être interesser à mon problème ;)
0
mopasto Messages postés 3 Date d'inscription samedi 26 décembre 2009 Statut Membre Dernière intervention 27 décembre 2009
27 déc. 2009 à 19:49
J'ai régler le problème de la date.
0
Bonjour

Dans liste_news, quand tu enregistres ta news avec INSERT, tu fais bien
$titre = addslashes($_POST['titre']);
$contenu = addslashes($_POST['contenu']);
(enfin... quand je dis bien... c'est mysql_escape_string qu'il faut, pas addslashes)
mais tu n'initialises jamais $pseudo=.. ni $resum_accueil=...
Pas étonnant que tu ne retrouves pas ces infos ensuite.
Franchement, si tu avais vérifié les valeurs avant le nsert, tu aurais réglé le problème toi-même sans avoir besoin de poser la question ici
De plus, dans la mise à jour, fais-tu attention à ce que tu écris ?
mysql_query("UPDATE news SET titre='" . $titre . "', contenu='" . $resum_accueil . "', contenu='" . $contenu . "' WHERE id='" . $_POST['id_news'] . "'"); 
0