Version complète: sur le forum Webmaster Hub : Script de news - problèmes avec le code
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
Spill
Bonjour , je possède un script de news . Mais il ne marche pas (sinon , que ferais-je ici tongue.gif ?)

Voici le script de news tirée de http://g.carneus-design.com/news.php pour l'instant , je veut qu'il marche tout simplement et après je vais le coller dans le script de mon site . Le problème - chaque page contient une erreur . Pour le login , mot de passe , base ça marche .

news.php

CODE


<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-2" />
<meta name="author" content="[ Autor dokumentu ]" />
<meta name="description" content="[ Opis dokumentu ]" />
<meta name="generator" content="EdHTML" />
<title>news</title>
</head>
<body>

<?php

mysql_connect("localhost", "root", ""); // Connexion a MySQL


$retour = mysql_query('SELECT * FROM news_puissance');
while ($donnees = mysql_fetch_array($retour))
{

}
echo ''.$donnees['titre'].'<br><img src="images/'.$donnees['image'].'"/><br>';
echo ''.$donnees['contenu'].'<br><br>'; echo $donnees['auteur'];

?>

</body>
</html>



rediger_news.php

CODE


<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-2" />
<meta name="author" content="[ Autor dokumentu ]" />
<meta name="description" content="[ Opis dokumentu ]" />
<meta name="generator" content="EdHTML" />
<title>Rediger news</title>

<script language="JavaScript" type="text/JavaScript">
function addText(instext) {
var mess = document.forum.contenu;
//IE support
if (document.selection) {
mess.focus();
sel = document.selection.createRange();
sel.text = instext;
document.forum.focus();
}
//MOZILLA/NETSCAPE support
else if (mess.selectionStart || mess.selectionStart == "0") {
var startPos = mess.selectionStart;
var endPos = mess.selectionEnd;
var chaine = mess.value;

mess.value = chaine.substring(0, startPos) + instext + chaine.substring(endPos, chaine.length);

mess.selectionStart = startPos + instext.length;
mess.selectionEnd = endPos + instext.length;
mess.focus();
} else {
mess.value += instext;
mess.focus();
}
}
</script>

</head>
<body>

<?php

mysql_connect("localhost", "root", ""); // Connexion a MySQL


if (isset($_POST['envoyer']) && $_POST['envoyer'] == 'Envoyer')
{
if (empty($_POST['titre']) || empty($_POST['contenu'])) {
$erreur = 'Vous devez remplir tout les champs !';
}
else
{
if ($lien_image != "none") {
$dest_image = "images/".$_FILES['lien_image']['name'];
$image = $_FILES['lien_image']['name'];

$source_file=stripslashes($lien_image);
$res_copy=copy($source_file , $dest_image); }
$sql = mysql_query('INSERT INTO news_puissance VALUES("","'.$_POST['titre'].'", "'.$pseudo.'", "'.$_POST['contenu'].'", "'.$image.'")') or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
echo 'Votre news est en ligne !';
}
}

?>
</body>
</html>



moderer_news.php

CODE


<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-2" />
<meta name="author" content="[ Autor dokumentu ]" />
<meta name="description" content="[ Opis dokumentu ]" />
<meta name="generator" content="EdHTML" />
<title>Moderer news</title>
</head>
<body>

<?php


if (isset($_GET['supprimer_news']))
{
mysql_query('DELETE FROM news_puissance WHERE id=' . $_GET['supprimer_news']);
}
?>
<table border="1" cellspacing="0">
<tr>
<th width="80">Supprimer</th>
<th width="30">Lien</th>
<th width="6">Titre</th>
<th width="132">Modifier</th>
</tr>
<?php
$retour = mysql_query("SELECT * FROM news_puissance ORDER BY id DESC");
while ($donnees = mysql_fetch_array($retour))
{
?>
<tr>
<td><?php echo '<a href="moderer_news.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
<td><div align="center"><?php echo stripslashes($donnees['page']); ?></div></td>
<td><?php echo stripslashes($donnees['titre']); ?></td>
<td><?php echo '<a href="modifier_news.php?id=' . $donnees['id'] . '">'; ?>Modifier</td>
</tr>

}



</body>
</html>



modifier_news.php

CODE


<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-2" />
<meta name="author" content="[ Autor dokumentu ]" />
<meta name="description" content="[ Opis dokumentu ]" />
<meta name="generator" content="EdHTML" />
<title>Modifier news</title>

<script language="JavaScript" type="text/JavaScript">
function addText(instext) {
var mess = document.forum.contenu;
//IE support
if (document.selection) {
mess.focus();
sel = document.selection.createRange();
sel.text = instext;
document.forum.focus();
}
//MOZILLA/NETSCAPE support
else if (mess.selectionStart || mess.selectionStart == "0") {
var startPos = mess.selectionStart;
var endPos = mess.selectionEnd;
var chaine = mess.value;

mess.value = chaine.substring(0, startPos) + instext + chaine.substring(endPos, chaine.length);

mess.selectionStart = startPos + instext.length;
mess.selectionEnd = endPos + instext.length;
mess.focus();
} else {
mess.value += instext;
mess.focus();
}
}
</script>
</head>
<body>

<?php

if ($modif==1) {
if (empty($_POST['titre2']) || empty($_POST['contenu2'])) {
$erreur = 'Vous devez remplir tout les champs !';
}
else
{
if ($lien_image != "none") {
$dest_image = "images/".$_FILES['lien_image']['name'];
$image = $_FILES['lien_image']['name'];

$source_file=stripslashes($lien_image);
$res_copy=copy($source_file , $dest_image); }
$sql = mysql_query('UPDATE news_puissance SET titre="'.$_POST['titre2'].'", contenu="'.$_POST['contenu2'].'" WHERE id='.$idarticle.', image="'.$image.'"') or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
} } ?>



<form name="forum" method="post" action="modifier_news.php?modif=1&id=">
<table width="100%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#333333">
<tr>
<td width="90" align="center" bgcolor="#DEBA42" class="texteTITRE">Titre :</td>
<td width="339" align="center" bgcolor="#D5B13F" class="textePRINCIPAL"><input name="titre2" type="text" id="titre2" value="<?php echo $table3['titre']; ?> " size="40"></td>
</tr>
<tr>
<td align="center" valign=top bgcolor="#FFFFFF" class="textePRINCIPAL2"> </td>
<td align="center" bgcolor="#FFFFFF" class="textePRINCIPAL"><textarea name="contenu2" cols="40" rows="10" id="contenu2">
</textarea></td>
</tr>
<tr>
<td></td><td><input type="file" name="lien_image" enctype="multipart/form-data"></td></tr>
<tr>
<td colspan="2" align="center" bgcolor="#D5B13F" class="textePRINCIPAL"><input type="submit" name="envoyer" value="Envoyer" ></td>
</tr>
</table>
</form>

</body>
</html>



EDIT : Merci d'utiliser codebox et non code pour les codes longs
beal2912
Bonjour,

pourrais-tu donner l'erreur que tu obtiens ? c'est mieux pour en chercher la cause tongue.gif
Spill
rediger_news.php -

rien s'affiche - que du blanc

news.php -

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\documents and settings\utilisateur\mes documents\testsphp\news.php on line 17

modifier_news.php -

En haut : Notice: Undefined variable: modif in c:\documents and settings\utilisateur\mes documents\testsphp\modifier_news.php on line 41


Zone de titre :
CODE
<br /><b>Notice</b>:  Undefined variable:  table3 in <b>c:\documents and settings\utilisateur\mes documents\testsphp\modifier_news.php</b> on line <b>62</b><br />


moderer_news.php -


Parse error: parse error in c:\documents and settings\utilisateur\mes documents\testsphp\moderer_news.php on line 44
Portekoi
Bonjour,

On ne peut t'aider en l'état. Il faut que tu nous donnes les lignes qui sont citées par les erreurs et non tout ton script.

Par exemple, à quoi correspond la ligne 17 du fichier news.php?

Sois plus explicite smile.gif


Portekoi
Spill
rediger_news.php -

rien s'affiche - que du blanc

news.php -
CODE
while ($donnees = mysql_fetch_array($retour))

modifier_news.php -
CODE
if ($modif==1) {


Zone de titre :
CODE
<td width="339" align="center" bgcolor="#D5B13F" class="textePRINCIPAL"><input name="titre2" type="text" id="titre2" value="<?php echo $table3['titre']; ?> " size="40"></td>


moderer_news.php -


La ligne 44 n'existe pas .
sarc
Bonjour,

CITATION
Notice: Undefined variable: modif in c:\documents and settings\utilisateur\mes documents\testsphp\modifier_news.php on line 41

Ca, c'est pas vraiment grave, ça veut dire que ta variable n'a pas été initialisée, c'est à dire qu'elle n'a pas de valeur... Généralement on configure le serveur pour qu'il n'affiche pas ces erreurs là, c'est ça la permissivité de PHP whistling.gif

CITATION
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\documents and settings\utilisateur\mes documents\testsphp\news.php on line 17

Ca, c'est plus problématique : soit ta connexion SQL ne marche pas (ou tu n'es pas connecté à la base), soit la requète n'est pas valide à cause d'erreurs dans les colonnes... soit encore il n'y a aucun résultat de renvoyé.

Premier test : afficher la requète sur ta page, (suivie éventuellement de exit(); pour éviter d'autres erreurs), puis tu testes la requète dans PHPmyadmin... Plusieurs possibilités :
1. ça te renvoie une ou plusieurs lignes => problème de connexion à la base
2. ça te renvoie aucune ligne => il faut faire un test de mysql_num_rows et ne pas lancer la boucle s'il n'y a pas de ligne
3. ça te renvoie une erreur => corriger l'erreur..


Pour la page qui n'affiche que du blanc, c'est sûrement qu'une erreur n'a pas été renvoyée. Si tu es dans Apache, vas vérifier les logs erreur apache pour trouver l'erreur !

Voilà un début de réponse..

Edit : j'ai oublié le parse error. Si la ligne n'existe pas, c'est certainement qu'il manque une accolade fermante dans ton programme, qu'il y a un if ou un while qui n'est pas fermé... Vérifie où il manque un } et rajoute-le wink.gif
Portekoi
Re,

Essaie de mettre des phrases dans tes posts sur genre "merci", "bonjour" etc...

pour ton premier problème, remplace ca :
CITATION
$retour = mysql_query('SELECT * FROM news_puissance');
while ($donnees = mysql_fetch_array($retour))


par

CITATION
$retour = mysql_db_query('le nom de ta base', 'SELECT * FROM news_puissance');
while ($donnees = mysql_fetch_array($retour))



Portekoi
Spill
Merci , le dernier problème : sur rediger news ça n'affiche rien . Ou dois-je écrire mes news ?
Portekoi
Replace ta page rediger news par ca :

CODE



<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-2" />
<meta name="author" content="[ Autor dokumentu ]" />
<meta name="description" content="[ Opis dokumentu ]" />
<meta name="generator" content="EdHTML" />
<title>Rediger news</title>

<script language="JavaScript" type="text/JavaScript">
function addText(instext) {
var mess = document.forum.contenu;
//IE support
if (document.selection) {
mess.focus();
sel = document.selection.createRange();
sel.text = instext;
document.forum.focus();
}
//MOZILLA/NETSCAPE support
else if (mess.selectionStart || mess.selectionStart == "0") {
var startPos = mess.selectionStart;
var endPos = mess.selectionEnd;
var chaine = mess.value;

mess.value = chaine.substring(0, startPos) + instext + chaine.substring(endPos, chaine.length);

mess.selectionStart = startPos + instext.length;
mess.selectionEnd = endPos + instext.length;
mess.focus();
} else {
mess.value += instext;
mess.focus();
}
}
</script>

</head>
<body>

<?php

mysql_connect("localhost", "root", ""); // Connexion a MySQL


if (isset($_POST['envoyer']) && $_POST['envoyer'] == 'Envoyer')
{
if (empty($_POST['titre']) || empty($_POST['contenu'])) {
$erreur = 'Vous devez remplir tout les champs !';
}
else
{
if ($lien_image != "none") {
$dest_image = "images/".$_FILES['lien_image']['name'];
$image = $_FILES['lien_image']['name'];

$source_file=stripslashes($lien_image);
$res_copy=copy($source_file , $dest_image); }
$sql = mysql_query('INSERT INTO news_puissance VALUES("","'.$_POST['titre'].'", "'.$pseudo.'", "'.$_POST['contenu'].'", "'.$image.'")') or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
echo 'Votre news est en ligne !';
}
else
{
echo "Coucou, ca marche";
}
}

?>
</body>
</html>

Spill
Ca affiche une erreur . Parse error: parse error in c:\documents and settings\utilisateur\mes documents\testsphp\rediger_news.php on line 61


Ligne 61 :
CODE
else
Portekoi
Essaie d'y mettre un peu du tiens smile.gif

Reprends ta page d'origine et affiche juste avant le </body> un mot pour voir si ta page est bien appellée.

Si tel est le cas, c'est que tu as un problème sur tes if.


Portekoi
NorSeb
Bonjour,

Visiblement une mise à niveau (c'est un euphémisme) s'impose.

Il me semble qu'il manque un mysql_select_db() dans tes paramètres de connexion à ta base de données. C'est pour ca que les mysql_fetch_array() ne "donnent" rien.

Les parse error correspondent à des erreurs de syntaxe. Il doit manquer un ; quelque part, ou bien y-a-t-il un déséquilibre des parenthèses ou accolades, etc...

Commence par te relire, puis va faire un tour sur le site du Zéro pour y apprendre les bases du PHP, ca ne pourra t'être que bénéfique smile.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.