par
Pauloscorps » 18 mai 2011, 15:34
Bonjour à tous,
J'ai quelques problèmes avec la réalisation du backoffice de mon site.
J'ai 3 script : un d'ajout, un d'édition et un autre de suppression des articles de blog.
Mon script d'ajout fonctionne parfaitement, en revanche par les deux autres.
En effet, ceux-ci sont fait en 3 fichiers et non pas en 2 comme le premier.
Ceci engendre donc un problème : je n'arrive pas à récupérer mon idArticle, pourtant passé en paramètre dans l'URL.
Voici mon code pour l'édition:
editerarticle.php :
<?php
// [...]tout mon système d'arborescence qui fonctionne très bien
// affichage des produits
$requete = 'SELECT idArticle, idCat, titreArticle, contenuArticle, photoArticle, descPhoto FROM articles where idCat = \'' . $categorie . '\' ORDER BY dateArticle DESC;';
$resultat = mysql_query ($requete, $connexion);
if (!empty($resultat))
{
while ($monArticle = mysql_fetch_object ($resultat))
{
$contenu = $monArticle->contenuArticle;
$contenu = substr($contenu, 0, 100);
echo '<a href="editer.php?categorie='.$monArticle->idCat.'&article='.$monArticle->idArticle.'">';
echo '<div class="edit">';
echo '<h3>' .$monArticle->titreArticle. '</h3>';
echo '<p>' .$contenu. '...</p>';
echo '</a>';
echo '</div>';
}
}
else
{
echo "Erreur dans l'exécution de la requête.<br/>\n";
echo "Message de MySQL : ", mysql_error($connexion);
}
echo '</ul>';
echo '</div><br/>';
mon formulaire "form_editionarticle.php" :
<?php
require_once('connexion.php'); // connexion à la base
$idArticle = $_GET['article'];
$request = 'SELECT * FROM articles WHERE idArticle = "'.$idArticle.'";'; // récupération des informations relatives à l'article demandé
$resultat = mysql_query ($request, $connexion);
if (!empty($resultat) or die(mysql_error()))
{
while ($monArticle = mysql_fetch_object ($resultat))
{
/*********** Renommage des variables relatives à $monArticle pour leur exploitation ultérieure ************/
$titreArticle = $monArticle->titreArticle;
$contenuArticle = $monArticle->contenuArticle;
$descPhoto = $monArticle->descPhoto;
$idCat = $monArticle->idCat;
$photoArticle = $monArticle->photoArticle;
}
}
else
{
echo '<p> Echec de la requête générale d\'édition</p>';
}
?>
<TABLE width=100% border=0>
<form action="../edition/editer.php" method="post" enctype="multipart/form-data">
<TR>
<TD colspan=3><a href="javascript:window.history.go(-3)"><input type="button" value="Retour à la sélection des articles"></input></a></TD>
</TR>
<TR>
<td colspan=1> Titre de l'article : </td>
<td colspan=2><input type="text" name="titreArticle" size=108 value="<?php echo $titreArticle; ?>"/></td>
</TR>
<tr>
<td colspan="1"> Contenu de l'article : </td>
<td colspan="2"><textarea name="contenuArticle" rows=15 cols=110 /><?php echo $contenuArticle; ?></textarea></td>
</tr>
<tr>
<td colspan="1">Catégorie :</td>
<td colspan="2"><em class="info">Pensez à re-sélectionner la catégorie, même si elle reste inchangée.</em><br/>
<select name="idCat">
<option selected="selected"> <?php //echo $nomCat; ?></option>
<?php
$requete = 'SELECT * FROM categories WHERE idCat>=5 ORDER BY nomCat ASC' ;
$resultat = mysql_query ($requete, $connexion);
if (!empty($resultat))
{
while ($cat = mysql_fetch_object ($resultat))
{
$nomCat = $cat->nomCat;
echo '<option value="'.$cat->idCat.'">'.$cat->nomCat.'</option>';
}
}
else
{
echo "Message de MySQL : ", mysql_error($connexion);
}
?>
</select>
</td>
</tr>
<tr>
<td width="33%"> Photo : </td>
<td width="45%"><input type="file" name="photoArticle" id="Changer de photo ?"/></input></td>
<td width="23%"><img src="<?php echo $photoArticle; ?>"></img></td>
</tr>
<tr>
<td colspan="1"> Description : </td>
<td colspan="2"><input type="text" name="descPhoto" value="<?php echo $descPhoto; ?>"/></input></td>
</tr>
<tr>
<td colspan="1"><input type="submit" name="submit"/></input></td>
</tr>
</form>
</TABLE>
<br/><br/>
<?php mysql_close($connexion); //déconnexion ?>
et enfin mon script d'édition "editer.php" :
<?php
require_once('../includes/connexion.php');
session_start();
if (!isset($_SESSION['login']))
{
header('Location:../index.php');
exit();
}
echo '<div id="content">';
include('../includes/header.php');
include('../fonctions/fctredimimage.php');
$idArticle = $_GET['article'];
if (isset($_POST['submit']))
{
$idCat = ($_POST["idCat"]);
$titreArticle = htmlspecialchars($_POST["titreArticle"]);
$contenuArticle = htmlspecialchars($_POST["contenuArticle"]);
$photoArticle = $_FILES["photoArticle"];
$descPhoto = htmlspecialchars($_POST["descPhoto"]);
addslashes($contenuArticle) && addslashes($titreArticle) && addslashes($descPhoto);
if(!empty($idCat))
{
//----------------------------------------------------------------------------------------------------------------
// TRAITEMENT DE L'IMAGE
//----------------------------------------------------------------------------------------------------------------
$nomOrigine = $_FILES['photoArticle']['name'];
$repertoireOrigine = "c:/wamp/tmp/";
$elementsChemin = pathinfo($nomOrigine);
$extensionFichier = $elementsChemin['extension'];
$extensionsAutorisees = array("jpeg", "jpg", "JPG", "JPEG", "GIF", "PNG", "gif", "png");
$repertoireDestination = "c:/wamp/www/smtk/photos/";
$nomDestination = "photo".date("YmdHis").".".$extensionFichier;
if (!(in_array($extensionFichier, $extensionsAutorisees)))
{
echo "Le fichier n'a pas l'extension attendue";
}
else
{
if (move_uploaded_file($_FILES['photoArticle']["tmp_name"], $repertoireDestination.$nomDestination))
{
$redimOK = fctredimimage(200,270,$repertoireDestination,$nomDestination,$repertoireDestination,$nomDestination);
if ($redimOK == true)
{
// echo 'Redimensionnement OK !';
}
else
{
echo 'Le redimensionnement a réussi.';
}
$URLPhoto = ("http://localhost/smtk/photos/".$nomDestination);
// ca marche !
}
else
{
echo "Le fichier n'a pas été uploadé ";
}
}
/**********************************************************************/
/******************* REQUETE SQL D'AJOUT DANS LA BDD ******************/
/**********************************************************************/
$req = "UPDATE articles
SET
idCat = '$idCat',
titreArticle = '$titreArticle',
photoArticle = '$URLPhoto',
descPhoto = '$descPhoto',
contenuArticle = '$contenuArticle'
WHERE idArticle = '$idArticle';";
$result = mysql_query($req, $connexion) or die(mysql_error());
if ($result)
{
echo '<div class="valide"><p>La modification a été correctement effectuée.</p></div>' ;
}
else
{
echo '<div class="echec"><p> La modification a échoué.</p></div>';
}
}
else echo '<div class="echec"><p> Vous n\'avez pas rempli tous les champs. </p></div>';
}
include('../includes/form_editionarticle.php');
include('../includes/footer.php');
?>
Voilà le problème : Dès que je soumet mon formulaire, j'obtiens :
Code : Tout sélectionner
Notice: Undefined index: article in C:\wamp\www\SMTK\admtool\includes\form_editionarticle.php on line 3
Notice: Undefined variable: idArticle in C:\wamp\www\SMTK\admtool\edition\editer.php on line 72
Pourtant je ne comprends pas, la ligne $idArticle = $_GET['article']; aurait du régler le problème non ?
Désolé de la longueur de mes script, mais j'ai vraiment besoin d'aide là

.
Merci d'avance.
Bonjour à tous,
J'ai quelques problèmes avec la réalisation du backoffice de mon site.
J'ai 3 script : un d'ajout, un d'édition et un autre de suppression des articles de blog.
Mon script d'ajout fonctionne parfaitement, en revanche par les deux autres.
En effet, ceux-ci sont fait en 3 fichiers et non pas en 2 comme le premier.
Ceci engendre donc un problème : je n'arrive pas à récupérer mon idArticle, pourtant passé en paramètre dans l'URL.
Voici mon code pour l'édition:
editerarticle.php :
[php]
<?php
// [...]tout mon système d'arborescence qui fonctionne très bien
// affichage des produits
$requete = 'SELECT idArticle, idCat, titreArticle, contenuArticle, photoArticle, descPhoto FROM articles where idCat = \'' . $categorie . '\' ORDER BY dateArticle DESC;';
$resultat = mysql_query ($requete, $connexion);
if (!empty($resultat))
{
while ($monArticle = mysql_fetch_object ($resultat))
{
$contenu = $monArticle->contenuArticle;
$contenu = substr($contenu, 0, 100);
echo '<a href="editer.php?categorie='.$monArticle->idCat.'&article='.$monArticle->idArticle.'">';
echo '<div class="edit">';
echo '<h3>' .$monArticle->titreArticle. '</h3>';
echo '<p>' .$contenu. '...</p>';
echo '</a>';
echo '</div>';
}
}
else
{
echo "Erreur dans l'exécution de la requête.<br/>\n";
echo "Message de MySQL : ", mysql_error($connexion);
}
echo '</ul>';
echo '</div><br/>';
[/php]
mon formulaire "form_editionarticle.php" :
[php]
<?php
require_once('connexion.php'); // connexion à la base
$idArticle = $_GET['article'];
$request = 'SELECT * FROM articles WHERE idArticle = "'.$idArticle.'";'; // récupération des informations relatives à l'article demandé
$resultat = mysql_query ($request, $connexion);
if (!empty($resultat) or die(mysql_error()))
{
while ($monArticle = mysql_fetch_object ($resultat))
{
/*********** Renommage des variables relatives à $monArticle pour leur exploitation ultérieure ************/
$titreArticle = $monArticle->titreArticle;
$contenuArticle = $monArticle->contenuArticle;
$descPhoto = $monArticle->descPhoto;
$idCat = $monArticle->idCat;
$photoArticle = $monArticle->photoArticle;
}
}
else
{
echo '<p> Echec de la requête générale d\'édition</p>';
}
?>
<TABLE width=100% border=0>
<form action="../edition/editer.php" method="post" enctype="multipart/form-data">
<TR>
<TD colspan=3><a href="javascript:window.history.go(-3)"><input type="button" value="Retour à la sélection des articles"></input></a></TD>
</TR>
<TR>
<td colspan=1> Titre de l'article : </td>
<td colspan=2><input type="text" name="titreArticle" size=108 value="<?php echo $titreArticle; ?>"/></td>
</TR>
<tr>
<td colspan="1"> Contenu de l'article : </td>
<td colspan="2"><textarea name="contenuArticle" rows=15 cols=110 /><?php echo $contenuArticle; ?></textarea></td>
</tr>
<tr>
<td colspan="1">Catégorie :</td>
<td colspan="2"><em class="info">Pensez à re-sélectionner la catégorie, même si elle reste inchangée.</em><br/>
<select name="idCat">
<option selected="selected"> <?php //echo $nomCat; ?></option>
<?php
$requete = 'SELECT * FROM categories WHERE idCat>=5 ORDER BY nomCat ASC' ;
$resultat = mysql_query ($requete, $connexion);
if (!empty($resultat))
{
while ($cat = mysql_fetch_object ($resultat))
{
$nomCat = $cat->nomCat;
echo '<option value="'.$cat->idCat.'">'.$cat->nomCat.'</option>';
}
}
else
{
echo "Message de MySQL : ", mysql_error($connexion);
}
?>
</select>
</td>
</tr>
<tr>
<td width="33%"> Photo : </td>
<td width="45%"><input type="file" name="photoArticle" id="Changer de photo ?"/></input></td>
<td width="23%"><img src="<?php echo $photoArticle; ?>"></img></td>
</tr>
<tr>
<td colspan="1"> Description : </td>
<td colspan="2"><input type="text" name="descPhoto" value="<?php echo $descPhoto; ?>"/></input></td>
</tr>
<tr>
<td colspan="1"><input type="submit" name="submit"/></input></td>
</tr>
</form>
</TABLE>
<br/><br/>
<?php mysql_close($connexion); //déconnexion ?>
[/php]
et enfin mon script d'édition "editer.php" :
[php]
<?php
require_once('../includes/connexion.php');
session_start();
if (!isset($_SESSION['login']))
{
header('Location:../index.php');
exit();
}
echo '<div id="content">';
include('../includes/header.php');
include('../fonctions/fctredimimage.php');
$idArticle = $_GET['article'];
if (isset($_POST['submit']))
{
$idCat = ($_POST["idCat"]);
$titreArticle = htmlspecialchars($_POST["titreArticle"]);
$contenuArticle = htmlspecialchars($_POST["contenuArticle"]);
$photoArticle = $_FILES["photoArticle"];
$descPhoto = htmlspecialchars($_POST["descPhoto"]);
addslashes($contenuArticle) && addslashes($titreArticle) && addslashes($descPhoto);
if(!empty($idCat))
{
//----------------------------------------------------------------------------------------------------------------
// TRAITEMENT DE L'IMAGE
//----------------------------------------------------------------------------------------------------------------
$nomOrigine = $_FILES['photoArticle']['name'];
$repertoireOrigine = "c:/wamp/tmp/";
$elementsChemin = pathinfo($nomOrigine);
$extensionFichier = $elementsChemin['extension'];
$extensionsAutorisees = array("jpeg", "jpg", "JPG", "JPEG", "GIF", "PNG", "gif", "png");
$repertoireDestination = "c:/wamp/www/smtk/photos/";
$nomDestination = "photo".date("YmdHis").".".$extensionFichier;
if (!(in_array($extensionFichier, $extensionsAutorisees)))
{
echo "Le fichier n'a pas l'extension attendue";
}
else
{
if (move_uploaded_file($_FILES['photoArticle']["tmp_name"], $repertoireDestination.$nomDestination))
{
$redimOK = fctredimimage(200,270,$repertoireDestination,$nomDestination,$repertoireDestination,$nomDestination);
if ($redimOK == true)
{
// echo 'Redimensionnement OK !';
}
else
{
echo 'Le redimensionnement a réussi.';
}
$URLPhoto = ("http://localhost/smtk/photos/".$nomDestination);
// ca marche !
}
else
{
echo "Le fichier n'a pas été uploadé ";
}
}
/**********************************************************************/
/******************* REQUETE SQL D'AJOUT DANS LA BDD ******************/
/**********************************************************************/
$req = "UPDATE articles
SET
idCat = '$idCat',
titreArticle = '$titreArticle',
photoArticle = '$URLPhoto',
descPhoto = '$descPhoto',
contenuArticle = '$contenuArticle'
WHERE idArticle = '$idArticle';";
$result = mysql_query($req, $connexion) or die(mysql_error());
if ($result)
{
echo '<div class="valide"><p>La modification a été correctement effectuée.</p></div>' ;
}
else
{
echo '<div class="echec"><p> La modification a échoué.</p></div>';
}
}
else echo '<div class="echec"><p> Vous n\'avez pas rempli tous les champs. </p></div>';
}
include('../includes/form_editionarticle.php');
include('../includes/footer.php');
?>
[/php]
Voilà le problème : Dès que je soumet mon formulaire, j'obtiens :
[code]
Notice: Undefined index: article in C:\wamp\www\SMTK\admtool\includes\form_editionarticle.php on line 3
Notice: Undefined variable: idArticle in C:\wamp\www\SMTK\admtool\edition\editer.php on line 72
[/code]
Pourtant je ne comprends pas, la ligne $idArticle = $_GET['article']; aurait du régler le problème non ?
Désolé de la longueur de mes script, mais j'ai vraiment besoin d'aide là :x .
Merci d'avance.