Je viens à vous aujourd'hui car je suis en train de terminer mon TFE. Tout est fonctionnel, hormis une page de mon site d'administration qui me cause du soucis depuis plusieurs jours maintenant (en plus je suis à la bourre lol).
Cette page doit gérer l'ajout, la modification et la suppression d'articles, et est donc lièe à une table "articles".
D'ailleurs, au sujet de la DB, je voulais vous montrer à quoi elle ressemble mais... pas moyen d'ajouter le fichier image: j'ai le fameux message " This message was flagged as spam and has been denied. "
Mais en gros, pour ce qui nous concerne, j'ai 2 tables:
- une table rubrique, avec un id, un titre, un texte, une date, et un média.
- une table articles, avec un id, un titre, un texte, une date, un média, et une liaison vers l'id rubrique (pour dire que tel article est lié à telle rubrique en fait)
En dessous de ce formulaire, j'ai crée un tableau qui reprend le contenu déjà existant dans la DB.
Si je tente de supprimer une entrée, j'ai l'erreur suivante: rying to get property of non-object in C:\wamp\www\MAILLON\ADMIN\index2.php on line 70
Si j'essaye de modifier une entrée, à côté de chaque champ du formulaire, j'ai aussi une erreur: Trying to get property of non-object in C:\wamp\www\MAILLON\ADMIN\index2.php on line 169 Call Stack #TimeMemoryFunctionLocation 10.0010743088{main}( )..\index2.php:0 "/> [le numéro de la ligne varie pour chaque champ]
Et si je tente d'ajouter une entrée, je n'ai pas d'erreur... Par contre, ce qui s'ajoute ne correspond pas aux valeurs réellement entrées: le titre que j'ai entré (par exemple "titre 5") sera remplacé par le titre de la rubrique (par exemple "accueil").
Je suis assez désemparée, parce que je suis à la bourre lol, et aussi parce que hormis cette page, tout fonctionne.
Voici mon code source:
<?php
require_once("connexion.php");
include("fonctions.php");
// LES VARIABLES:
$laTable = "articles";
// LES FONCTIONS:
function montrer($id){
global $laTable,$tiroir;
$sql = "SELECT *
FROM $laTable
WHERE id = $id ;";
$resultat = mysql_query($sql);
$tiroir = mysql_fetch_object($resultat);
}
function modifier(){
global $laTable;
$titre = addslashes($_POST["titreArticle"]);
$texte = addslashes($_POST["texteArticle"]);
$date = $_POST["dateRub"];
$rubrique = addslashes($_POST["rubriqueLiee"]);
$fichier = $_FILES["mediaArticle"]["name"];
$id = $_POST["id"];
if ($_FILES["mediaArticle"]["name"]!="") {
$fichier = $_FILES["mediaArticle"]["name"];
$sql = "UPDATE $laTable
SET titre = '$titre',
texte =' $texte',
date = NOW(),
media = '$media',
rubriqueLiee = '$rubrique'
WHERE id = $id;";
}
else {
$sql = "UPDATE $laTable
SET titre = '$titre',
texte ='$texte',
date =NOW(),
rubrique = '$rubrique'
WHERE id = $id;";
}
mysql_query($sql);
}
function ajouter(){
global $laTable;
$titre = addslashes($_POST["titreArticle"]);
$texte = addslashes($_POST["texteArticle"]);
$fichier = $_FILES["mediaArticle"]["name"];
$rubrique = addslashes($_POST["rubriqueLiee"]);
$sql = "INSERT INTO $laTable (titre,texte,date,media,rubrique)
VALUES ('$titre','$texte',NOW(),'$fichier','$rubrique');";
mysql_query($sql);
}
function supprimer() {
global $laTable,$tiroir;
$id = $_GET["del"];
montrer($id);
$lefichier = $tiroir->media;
if($lefichier !="" && file_exists("uploads/$lefichier")){
unlink("uploads/$lefichier");
}
$sql = "DELETE FROM $laTable
WHERE id = $id;";
mysql_query($sql);
}
// TESTS ET ROUTAGE ----------------------------------------------
// INSERT si il existe un POST id et qu'il est nul
if (isset($_POST["id"]) && $_POST["id"]==0) {
ajouter();
uploadArticle();
}
// DELETE si il existe un GET del
if (isset($_GET["del"])) {
supprimer();
}
// SHOW si il existe un GET show
if (isset($_GET["show"])) {
$id = $_GET["show"];
montrer($id);
}
// UPDATE si il existe un POST id et qu'il est différent de 0
if (isset($_POST["id"]) && $_POST["id"]>0) {
modifier();
uploadArticle();
}
// ---------------------------------------------------------------
// Je formule ma requête et je stocke la recherche dans une armoire $resultat
$sql = "SELECT *
FROM articles,rubriques
WHERE articles.rubrique = rubriques.id;";
$resultat = mysql_query($sql);
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ASBL Le Maillon - Site d'administration.</title>
<link rel="stylesheet" href="styles.css"/>
<script type="text/javascript" src="tiny_mce/tiny_mce.js"></script>
<script type="text/javascript"> <!-- POUR LE WYSIWYG tinyMCE -->
!--
tinyMCE.init({
mode : "textareas",
theme: "advanced",
language: "fr",
theme_advanced_buttons1 : "bold,italic,underline,|,justifyleft,justifycenter,justifyright,|,bullist,numlist",
theme_advanced_buttons2: "undo,redo,|,link",
theme_advanced_buttons3: "fontsizeselect,fontselect,formatselect",
theme_advanced_toolbar_location: "top",
theme_advanced_statusbar_location: "bottom",
content_css: "../templates/TinyMCE.css",
});
//-->
</script>
<script>
function confirmation(){
message = "Etes vous sur de vouloir supprimer cet article et son contenu ?"
reponse = confirm(message);
if (reponse==true){
return true;
}
else {
return false;
}
}
</script>
</head>
<body>
<div id="main">
<header>
<?php include("header.php"); ?>
</header>
<nav>
<?php include("menu.php"); ?>
</nav>
<section>
<article>
<h2>Gestion des <?php echo $laTable; ?>:</h2>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>" id="form_articles" enctype="multipart/form-data">
<fieldset>
<p><label for="titreArticle">Titre:</label><input type="text" name="titreArticle" id="titreArticle" value="<?php if(isset($_GET["show"])) {echo $tiroir->titre;} ?>"/></p>
<p><label for="texteArticle">Texte:</label>
<TEXTAREA name="texteArticle" id="texteArticle" value="<?php if(isset($_GET["show"])) {echo $tiroir->texte;} ?>"></TEXTAREA>
</p>
<p><label for="dateArticle">Date:</label><input type="date" name="dateArticle" id="dateArticle" value="<?php if(isset($_GET["show"])) {echo $tiroir->date;} ?>"/></p>
<p><label for="mediaArticle">Médias:</label><input type="file" name="mediaArticle" id="mediaArticle" /></p>
<p><label for="rubriqueLiee">Rubrique liée:</label>
<select name="rubriqueLiee" id="rubriqueLiee">
<?php
$sql = "SELECT *
FROM rubriques;";
$resultat_rubriques = mysql_query($sql);
// début de région à répéter
while ($tiroir_rubrique = mysql_fetch_object($resultat_rubriques)) { ?>
<option value="<?php echo $tiroir_rubrique->id; ?>" <?php if (isset($_GET["show"]) && $tiroir->rubrique==$tiroir_rubrique->id) {echo "selected='selected'";} ?>>
<?php echo $tiroir_rubrique->titre; ?>
</option>
<?php } // fin de région à répéter
?>
</select>
</p>
<input type="hidden" name="id" value="<?php if(isset($_GET["show"])) {echo $tiroir->id;} else {echo "0";} ?>" />
<input type="submit" name="submit" value="AJOUTER" class="bouton"/>
</fieldset>
</form>
<table>
<caption>Tableau récapitulatif du contenu des articles</caption>
<thead> <!-- En-tête du tableau -->
<tr>
<th>Titre</th>
<th>Texte</th>
<th>Date de publication</th>
<th>Média</th>
<th>Rubrique liées</th>
<th>Action</th>
</tr>
</thead>
<tbody> <!-- Corps du tableau -->
<?php // début de région à répéter
while ($tiroir = mysql_fetch_object($resultat)) { ?>
<tr>
<td><?php echo $tiroir->titre; ?></td>
<td><?php echo $tiroir->texte; ?></td>
<td><?php echo $tiroir->date; ?></td>
<td><?php echo $tiroir->media; ?></td>
<td><?php echo $tiroir->rubrique; ?></td> <!-- LIGNE A MODIFIER POUR VOIR LE TITRE DE LA RUBRIQUE -->
<td><a href="<?php echo $_SERVER["PHP_SELF"];?>?show=<?php echo $tiroir->id; ?>">Modifier</a> -
<a href="<?php echo $_SERVER["PHP_SELF"];?>?del=<?php echo $tiroir->id; ?>" onclick="return confirmation();">Supprimer</a>
</td>
</tr>
<?php } // fin de région à répéter ?>
</tbody>
</table>
</article>
</section>
<footer>
<?php include("footer.php"); ?>
</footer>
</div>
</body>
</html>
Voilà, si quelqu'un avait la gentillesse de m'aider, car autant de soucis sur une seule page... Je suis complètement paumée et ne sais par où commencer.D'avance, un tout grand merci à vous!