Après avoir passé 3 semaines de vacances de rêves, je me remets depuis lundi à mon semblant de site.
Malheureusement, après avoir effectué quelques changements dans mon back-office, mon lien hypertexte supprimer ne fonctionne plus...Par contre je peux modifier et ajouter tout fonctionne à merveille..Je ne saisi pas tout
Pour mes formations, par exemple, j'ai deux pages incluses dans la page d'accueil (page principale).
- Une page qui contient la partie PHP et qui est intégrée dans la partie supérieure de la page d'accueil
- Une page qui contient la strcuture du tableau en HTML, qui est intégrée dans la partie centrale.
Si je mets ma page formations-modification-sql dans la partie supérieure de ma page d'accueil, après la vérification que mes pages existent, ça fonctionne.
Mais mon souci est que je dois faire le même principe pour des produits...
C'est là que ça bloque, je voulais avec les dernières instructions de ma page d'accueil, dire "tu inclus la page formations-modification-sql ou produits-modification-sql suivant ce qui est choisi dans le menu"..Mais je n'y arrive pas ça bloque : lorsque je clique sur la validation de la suppression ça retourne toujours sur la page par défaut 'presentation' et ça ne me supprime rien !
Page d'accueil :
require_once ('../connection/connexionbd.php');
$page = (isset($_GET['page'])) ? $_GET['page'] : ''; // équivalent à if...else : Si la variable page est définie, sinon elle est vide
$path = dirname(__FILE__).'/'; // dossier d'où dois être inclus le fichier
$extension = '.php'; //extension du fichier
$filename = $path.$page.$extension;
if ( preg_match("#^[a-z0-9_-]+$#i",$page) ) // si $page ne comprends que des lettres, des chiffres, des tirest ou underscore
{
$filename = $path.$page.$extension;
if (file_exists($filename)) // si $filename existe
{
$centre = $filename; // affiche au centre la page demandée
}
else
{
$centre = 'erreur.php'; // sinon affiche la page d'erreur
}
}
else // si $page n'existe pas
{
$page = 'presentation'; // affiche la page par défault
$filename = $path.$page.$extension;
$centre = $filename;
}
// Pour appeler la page sql en fonction de celle qui est appelée par le menu
if (isset ($_GET['page'])&& ($_GET['page'])=='formations-modification') {
require_once ("formations-modification-sql.php");
}
if (isset ($_GET['page'])&& ($_GET['page'])=='produits-modification'){
require_once ("produits-modification-sql.php");
}
Page formations-modification-sql :
if (isset ($_GET["idFormation"])){
//requête SQL:
$sql = "DELETE
FROM formation
WHERE id_formations = ".$_GET["idFormation"];
// echo $sql ;
//exécution de la requête:
$requete = mysql_query( $sql, $connexion) or die ('Erreur : '.mysql_error() ) ;
//affichage des résultats, pour savoir si la suppression a marché :
if($requete)
{
header('Location: ?page=formations-modification');
}
else
{
echo("<center><span class=\"messagerreur\">La suppression de la formation a échoué.</span><br/></center>") ;
}
}
[...]
<td width='81' align='center'><a href=\"?page=produit-modif&nomProduit=".$row_prdt['id_produits']."\">modifier</a></td>
<td width='79' align='center'><a href=\"#\" onClick=\"confirme_produit('".$row_prdt['id_produits']."')\" >supprimer</a></td>
Après de nombreux essais, j'ai compris que ça bloquait depuis que j'ai rajouté cette partie :
// Pour appeler la page sql en fonction de celle qui est appelée par le menu
if (isset ($_GET['page'])&& ($_GET['page'])=='formations-modification') {
require_once ("formations-modification-sql.php");
}
if (isset ($_GET['page'])&& ($_GET['page'])=='produits-modification'){
require_once ("produits-modification-sql.php");
}
Je pense ce qui gêne, c'est que je n'arrive pas à lui faire dire que la page formations-modification-sql est une page autorisée...
Ou alors il y a un conflit entre cette instruction :
$page = (isset($_GET['page'])) ? $_GET['page'] : ''; // équivalent à if...else : Si la variable page est définie, sinon elle est vide
$path = dirname(__FILE__).'/'; // dossier d'où dois être inclus le fichier
$extension = '.php'; //extension du fichier
$filename = $path.$page.$extension;
if ( preg_match("#^[a-z0-9_-]+$#i",$page) ) // si $page ne comprends que des lettres, des chiffres, des tirest ou underscore
{
$filename = $path.$page.$extension;
if (file_exists($filename)) // si $filename existe
{
$centre = $filename; // affiche au centre la page demandée
}
else
{
$centre = 'erreur.php'; // sinon affiche la page d'erreur
}
}
else // si $page n'existe pas
{
$page = 'presentation-AGILiCOM'; // affiche la page par défault
$filename = $path.$page.$extension;
$centre = $filename;
}
et la partie que j'ai rajouté ?
J'ai donc essayé de changer en remplaçant tout par un switch, mais ça ne change rien car je pense que mes pages sql sont appelées trop tard...
if(empty($_GET["page"])) $page = 'presentation-AGILiCOM.php';
else $page = $_GET["page"];
switch($_GET[page])
{
case'formations-modification':
include('formations-modification-sql.php');
include('formations-modification.php');
break;
case'fproduits-modification':
include('produits-modification-sql.php');
break;}
Je pense que ça vient de l'ordre de mes instructions, mais j'ai beau les mettre dans tous les sens rien n'y fait, ou alors peut-être que ça vient de
if (isset ($_GET["idFormation"])){
que j'ai mis trop tard ou pas au bon endroit, mais où et comment le mettre ? (Si ça vient de là bien sûr !)
Je sais que c'est la période des vacances et que j'ai peu de chance d'avoir une réponse, c'est pourquoi j'ai aussi posé ma question sur un autre forum...Je galère depuis 4 jours, quelqu'un aurait-il une idée pour m'aider à résoudre mon problème...Une piste ça serait sympa...Je suis débutante depuis quelques mois...Merci !
J'ai trouvé une solution, je pense pas très orthodoxe mais comme ça fonctionne ça m'ira bien !
J'ai mis toutes les instructions de suppression sur la page d'accueil...Heureusement que je n'ai pas une centaine de page sinon il aurait fallu que je créé un fichier pour toutes les mettre dedans...Voili voilou en attendant si vous avez d'autres solutions à me proposer je prends !

Après avoir passé 3 semaines de vacances de rêves, je me remets depuis lundi à mon semblant de site.
Malheureusement, après avoir effectué quelques changements dans mon back-office, mon lien hypertexte supprimer ne fonctionne plus...Par contre je peux modifier et ajouter tout fonctionne à merveille..Je ne saisi pas tout :shock:
Pour mes formations, par exemple, j'ai deux pages incluses dans la page d'accueil (page principale).
- Une page qui contient la partie PHP et qui est intégrée dans la partie supérieure de la page d'accueil
- Une page qui contient la strcuture du tableau en HTML, qui est intégrée dans la partie centrale.
Si je mets ma page formations-modification-sql dans la partie supérieure de ma page d'accueil, après la vérification que mes pages existent, ça fonctionne.
Mais mon souci est que je dois faire le même principe pour des produits...
C'est là que ça bloque, je voulais avec les dernières instructions de ma page d'accueil, dire "tu inclus la page formations-modification-sql ou produits-modification-sql suivant ce qui est choisi dans le menu"..Mais je n'y arrive pas ça bloque : lorsque je clique sur la validation de la suppression ça retourne toujours sur la page par défaut 'presentation' et ça ne me supprime rien !
Page d'accueil :
[php]
require_once ('../connection/connexionbd.php');
$page = (isset($_GET['page'])) ? $_GET['page'] : ''; // équivalent à if...else : Si la variable page est définie, sinon elle est vide
$path = dirname(__FILE__).'/'; // dossier d'où dois être inclus le fichier
$extension = '.php'; //extension du fichier
$filename = $path.$page.$extension;
if ( preg_match("#^[a-z0-9_-]+$#i",$page) ) // si $page ne comprends que des lettres, des chiffres, des tirest ou underscore
{
$filename = $path.$page.$extension;
if (file_exists($filename)) // si $filename existe
{
$centre = $filename; // affiche au centre la page demandée
}
else
{
$centre = 'erreur.php'; // sinon affiche la page d'erreur
}
}
else // si $page n'existe pas
{
$page = 'presentation'; // affiche la page par défault
$filename = $path.$page.$extension;
$centre = $filename;
}
// Pour appeler la page sql en fonction de celle qui est appelée par le menu
if (isset ($_GET['page'])&& ($_GET['page'])=='formations-modification') {
require_once ("formations-modification-sql.php");
}
if (isset ($_GET['page'])&& ($_GET['page'])=='produits-modification'){
require_once ("produits-modification-sql.php");
}
[/php]
Page formations-modification-sql :
[php]
if (isset ($_GET["idFormation"])){
//requête SQL:
$sql = "DELETE
FROM formation
WHERE id_formations = ".$_GET["idFormation"];
// echo $sql ;
//exécution de la requête:
$requete = mysql_query( $sql, $connexion) or die ('Erreur : '.mysql_error() ) ;
//affichage des résultats, pour savoir si la suppression a marché :
if($requete)
{
header('Location: ?page=formations-modification');
}
else
{
echo("<center><span class=\"messagerreur\">La suppression de la formation a échoué.</span><br/></center>") ;
}
}
[...]
<td width='81' align='center'><a href=\"?page=produit-modif&nomProduit=".$row_prdt['id_produits']."\">modifier</a></td>
<td width='79' align='center'><a href=\"#\" onClick=\"confirme_produit('".$row_prdt['id_produits']."')\" >supprimer</a></td>
[/php]
Après de nombreux essais, j'ai compris que ça bloquait depuis que j'ai rajouté cette partie :
[php]
// Pour appeler la page sql en fonction de celle qui est appelée par le menu
if (isset ($_GET['page'])&& ($_GET['page'])=='formations-modification') {
require_once ("formations-modification-sql.php");
}
if (isset ($_GET['page'])&& ($_GET['page'])=='produits-modification'){
require_once ("produits-modification-sql.php");
}[/php]
Je pense ce qui gêne, c'est que je n'arrive pas à lui faire dire que la page formations-modification-sql est une page autorisée...
Ou alors il y a un conflit entre cette instruction :
[php]$page = (isset($_GET['page'])) ? $_GET['page'] : ''; // équivalent à if...else : Si la variable page est définie, sinon elle est vide
$path = dirname(__FILE__).'/'; // dossier d'où dois être inclus le fichier
$extension = '.php'; //extension du fichier
$filename = $path.$page.$extension;
if ( preg_match("#^[a-z0-9_-]+$#i",$page) ) // si $page ne comprends que des lettres, des chiffres, des tirest ou underscore
{
$filename = $path.$page.$extension;
if (file_exists($filename)) // si $filename existe
{
$centre = $filename; // affiche au centre la page demandée
}
else
{
$centre = 'erreur.php'; // sinon affiche la page d'erreur
}
}
else // si $page n'existe pas
{
$page = 'presentation-AGILiCOM'; // affiche la page par défault
$filename = $path.$page.$extension;
$centre = $filename;
} [/php]
et la partie que j'ai rajouté ?
J'ai donc essayé de changer en remplaçant tout par un switch, mais ça ne change rien car je pense que mes pages sql sont appelées trop tard...
[php]if(empty($_GET["page"])) $page = 'presentation-AGILiCOM.php';
else $page = $_GET["page"];
switch($_GET[page])
{
case'formations-modification':
include('formations-modification-sql.php');
include('formations-modification.php');
break;
case'fproduits-modification':
include('produits-modification-sql.php');
break;}
[/php]
Je pense que ça vient de l'ordre de mes instructions, mais j'ai beau les mettre dans tous les sens rien n'y fait, ou alors peut-être que ça vient de
[php]if (isset ($_GET["idFormation"])){[/php]
que j'ai mis trop tard ou pas au bon endroit, mais où et comment le mettre ? (Si ça vient de là bien sûr !)
Je sais que c'est la période des vacances et que j'ai peu de chance d'avoir une réponse, c'est pourquoi j'ai aussi posé ma question sur un autre forum...Je galère depuis 4 jours, quelqu'un aurait-il une idée pour m'aider à résoudre mon problème...Une piste ça serait sympa...Je suis débutante depuis quelques mois...Merci !
J'ai trouvé une solution, je pense pas très orthodoxe mais comme ça fonctionne ça m'ira bien !
J'ai mis toutes les instructions de suppression sur la page d'accueil...Heureusement que je n'ai pas une centaine de page sinon il aurait fallu que je créé un fichier pour toutes les mettre dedans...Voili voilou en attendant si vous avez d'autres solutions à me proposer je prends ! :D