[PHP]Pseudo-frame : ne trouve pas ma page

tximiti Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   -  
tximiti Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   -
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.
J'ai cerné un peu le problème, mais je ne sais pas comment le résoudre.
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 : Je reviens toujours sur la page par défaut.

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-AGILiCOM'; // 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 :
//récupération de la variable d'URL,
  //qui va nous permettre de savoir quel enregistrement supprimer:
  if (isset ($_GET["idProduit"])){
  
  //requête SQL:
  $sql = "DELETE 
            FROM produit
	    WHERE id_produits = ".$_GET["idProduit"];
  // 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=produits-modification');
  }
  else
  {
    echo("<center><span class=\"messagerreur\">La suppression du produit a échoué.</span><br/></center>") ;
  }
}
[...]		
while( $row_prdt = mysql_fetch_array( $requete_produit ) )
    { //exécution de la requête:
			$image = "<img src=../images/arrow_down.gif />";
			$sous_ligne .= "<div>
			<table width='100%' border='1' bgcolor='#CCFFFF' bordercolor='#FFFFFF'>
				<tr>
					<td width='158'>".stripslashes ($row_prdt['nom_produits'])."</td>
					<td width='158'>".stripslashes ($row_prdt['ref_produits'])."</td>
					<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>
				</tr>
			</table>
			</div>";
		} 


Page formations-modification :
<center>
		<table bgcolor='#FFFFFF'>
			<tr>
				<td colspan='4'></td>
			</tr>
			<tr bgcolor='#8DCCFF'>
				<td colspan='5'>Si vous souhaitez<a href="?page=produit-insertion"> ajouter un produit.</a></td>
			</tr>
			<tr bgcolor='#339DC5'>
				<td width='330' align='center'><b>Type de produits</b></td>
				<td width='85' align='center'><b>Référence</b></td>
				<td width='85' align='center'><b>Modifier</b></td>
				<td width='85' align='center'><b>Supprimer</b></td>
			</tr>
			<?php echo $ligne; ?>
</table>
</center>


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

Quelqu'un aurait-il une idée pour m'aider à résoudre mon problème...Une piste ça serait sympa...Je suis débutante...Merci !
A voir également:

2 réponses

tximiti Messages postés 27 Date d'inscription   Statut Membre Dernière intervention  
 
Je sais que c'est les vacances, mais s'il vous plait 4 jours que je cherche et je ne comprends toujours pas pourquoi mon instruction supprimer ne fonctionne plus alors que modifier et ajouter fonctionnent...J'ai fait plusieurs essais dans tous les sens mais rien n'y fait...Cela viendrait-il d'un problème d'ordre, ai-je mal placé mon instruction, mais dans ce cas pourquoi ça fonctionnait avant...? Une petite aide s'il-vous-plaît...J'ai essayé aussi d'enlever tout la vérification de spages et de remplacer par mon instruction avec un switch, mais ça ne marche pas...
0
eric.daniel Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   1
 
Juste une idée non vérifiée : faudrait pas escapé le second "-" dans l'expression régulière ?
=> "#^[a-z0-9_\\-]+$#i"
0
tximiti Messages postés 27 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour cette judicieuse remarque, je ne sais pas du tout ! Lol ! En fait, je ferais le test lundi pour voir...Merci quand même !

Sinon pour mon problème, jai 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 !
0