Aller au contenu

Script de news - problèmes avec le code


Sujets conseillés

Posté (modifié)

Bonjour , je possède un script de news . Mais il ne marche pas (sinon , que ferais-je ici :P ?)

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



<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



<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



<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



<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

Modifié par Portekoi
Posté (modifié)

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 :

<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

Modifié par Spill
Posté

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 :)

Portekoi

Posté (modifié)

rediger_news.php -

rien s'affiche - que du blanc

news.php -

while ($donnees = mysql_fetch_array($retour))

modifier_news.php -

if ($modif==1) {

Zone de titre :

<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 .

Modifié par Spill
Posté

Bonjour,

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:

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 ;)

Posté

Re,

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

pour ton premier problème, remplace ca :

$retour = mysql_query('SELECT * FROM news_puissance');

while ($donnees = mysql_fetch_array($retour))

par

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

while ($donnees = mysql_fetch_array($retour))

Portekoi

Posté

Replace ta page rediger news par ca :




<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>

Posté (modifié)

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 :

else

Modifié par Spill
Posté

Essaie d'y mettre un peu du tiens :)

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

Posté

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 :)

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...