Bonsoir à vous,

j'essaie tant bien que mal d'écrire un module de gestion de liens en php5,
pour ce faire je me suis inspiré d'un module de gestion décrit dans le livre de Philippe Rigaux mysql et php 3eme édition (chapitre3, mise à jour ... par formulaire)

mon probleme:

visible à cette url:
http://www.cae2louerre.com/administration-1.html
le script fonctionne pour l'affichage des blocks présentant les liens, mais lorsque je clic sur modifier, validé, devalidé ou ajouté évidemment rien ne se passe sauf le retour à l'affichage, je pense que cela vient des conditions et plus précisement du mode passé en GET.
j'utilise l'url rewriting en htaccess de ce type:
Code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
RewriteRule   ^administration-([0-9]+)-([a-z]+)-([0-9]+)\.html$  administration.php?rubrique=administration&numero=$1&mode=$2&idliens=$3 [L]
J'ai lus relus et même réecris plusieurs fois ce module...
et je vois vraiment pas!!

mon environnement:
PHP Version 5.1.6
magic_quotes_gpc On On
magic_quotes_runtime Off Off
magic_quotes_sybase Off Off

mes codes:
ModeMaj.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
<?php 
// les constantes pour le mode
define ("MODE_DEFAUT", "defaut");
define ("MODE_INSERTION", "insertion");
define ("MODE_MAJ", "maj");
define ("MODE_VALIDATION", "valide");
define ("MODE_DEVALIDATION", "dvalid");
define ("MODE_SUPPRESSION", "delete");
?>

MAJLienSimple.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php 
// fonction de mise à jour ou d'insertion dans la table liens
function MAJLienSimple ($mode, $lien, $connexion)
{
$id = $lien['id'];
$nom = htmlentities(addslashes($lien['nom']));
$contenu = htmlentities(addslashes($lien['contenu']));
$url = addslashes($lien['url']);
$idUser = $lien['idUser'];
if ($mode == MODE_INSERTION)
$requete = "INSERT INTO liens (id, nom, contenu, url, timestamp, idUser, valide)"
                 ."VALUES ('', '$nom', '$contenu', '$url', 'time()', '$login','')";
elseif ($mode == MODE_VALIDATION)
$requete  = "UPDATE liens SET valide=1"
                    ."WHERE id='$id'";                 
elseif ($mode == MODE_DEVALIDATION)
$requete  = "UPDATE liens SET valide=0"
                    ."WHERE id='$id'";
elseif ($mode == MODE_SUPRESSION)
$requete  = "DELETE FROM liens"
                    ."WHERE id='$id'";
else
$requete  = "UPDATE liens SET nom='$nom', contenu='$contenu', url='$url'"
                    ."WHERE id='$id'";
 
        //Exécution de l'ordre SQL
        ExecRequete ($requete, $connexion);
}// fin de la fonction
?>

AffichageLiens.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
// Affichage sous blocks Xhtml des Liens Zone Admin
 
function AffichageLiens($connexion)
{
$resultats = ExecRequete ("SELECT * FROM liens", $connexion);
echo"<div id=\"admin_montreliens\"><p>Tous les liens enregistrés dans votre base de données sont ici.</p>"
."<p>vous pouvez les modifier, les valider/dévalider ou les supprimer.</p>";
while ($lien = ObjetSuivant ($resultats))
{
echo "<div class=\"blockliens_admin\" title=\"Présentation de la fiche $lien->nom\">"
."<h2><span>Identifiant BD: <strong>$lien->id</strong></span>$lien->nom</h2>\n<p>";
$texte = $lien->contenu;
parseceostarcode($texte);
echo "</p>\n<p><span class=\"url\">Url:</span>"
."<span class=\"link_url\"><a class=\"liens_url_admin\" href=\"$lien->url\" title=\"$lien->url\">$lien->url</a></span></p>\n"
."<h3> <span class=\"creepar_link_admin\">Crée par: <strong>$lien->idUser</strong> <strong>";
$date = $lien->timestamp;
dateJMAHM($date);
echo"</strong></span><span>Etat: <strong class=\"etat_liens_admin\">";
if ($lien->valide == '1') 
{
echo "Validé <img alt=\"Validé\" src=\"design/imgsadmin/btn_valid.gif\" />";
}
else 
{
echo "Dévalidé <img alt=\"Dévalidé\" src=\"design/imgsadmin/btn_devalid.gif\" />";
}
echo "</strong></span></h3><div class=\"action_admin\" title=\"Action possible sur cette fiche\"><h4>Action:</h4>\n<ul><li>";
if ($lien->valide == '1')
 
{
echo "<a class=\"deval_link_admin\" href=\"administration-1-". MODE_DEVALIDATION
."-$lien->id.html\" title=\"dévalider\"><span>dévalider</span></a>";
}
else 
{
echo "<a class=\"val_link_admin\" href=\"administration-1-". MODE_VALIDATION
."-$lien->id.html\" title=\"valider\"><span>valider</span></a>";
}
echo "</li><li><a class=\"modif_link_admin\" href=\"administration-1-". MODE_MAJ
. "-$lien->id.html\" title=\"modifier\"><span>modifier</span></a></li>\n"
."<li><a class=\"delete_link_admin\" href=\"administration-1-". MODE_SUPPRESSION
."-$lien->id.html\" title=\"supprimer\"><span>supprimer</span></a></li>\n"
."<li><a href=\"administration-1-". MODE_INSERTION
."-0.html\" title=\"new-link\">new-link</a></li></ul></div></div>";
}
}
?>

LienSimple.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
require_once ("UtilLienSimple.php");
// Normalisation des entrées
Normalisation();
// tableau "vide" utilisé comme valeur par défaut pour les insertions
$NULL_LIEN = array("id" => "", "nom" => "", "contenu" => "", "url" => "", "timestamp" => "", "idUser" => "", "valide" => "0");
 
$connexion = Connexion (NOM, PASSE, BASE, SERVEUR);
 
if ( !isset($_POST['action']) and !isset($_GET['mode']))
{
// L'execution n'est pas lancée par le formulaire ou par une ancre créee dans le block des liens
//  Donc on affiche le block des liens
AffichageLiens($connexion);
}
else
{
         // Traitement des actions utilisateur recueillis par l'application
     if ( isSet($_GET['mode']))
     {
     // L'utilisateur a cliqué l'une des ancres permettant de modifier ou d'ajouter un lien
             if ($_GET['mode'] == MODE_MAJ)
            {
            // On récupére les données du lien à modifier
            // Et on affiche le formulaire pré-remplis
            $id = ($_GET['idliens']);
            $requete = "SELECT * FROM liens WHERE id='$id'";
      $resultat = ExecRequete ($requete, $connexion);
      $lien = LigneSuivante ($resultat);
      FormLienSimple (MODE_MAJ, $lien);
            }
      else if ($_GET['mode'] == MODE_INSERTION)
      {
      // on affiche le formulaire de saisie vierge
      FormLienSimple (MODE_INSERTION, $NULL_LIEN);
      }
     }
     else if (isSet($_POST['action']))
    {
    // L'utilisateur à saisi des données dans le formulaire
    // pour modifier ou insérer un lien, puis à cliqué sur Enregistrer
    // Contrôle de saisie, mise à jour de la table et on affiche le
    // block actualisé des liens
 
    // contrôle des données
    if (ControleLien ($_POST))
    {
    MAJLienSimple ($_POST['mode'], $_POST, $connexion);
    AffichageLiens ($connexion);
    }
    }
echo "test";
}
?>

UtilLienSimple.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<?php
require_once ("Normalisation.php");
require_once ("UtilBD.php");
require_once ("ModeMaj.php");
require_once ("AffichageLiens.php");
require_once ("MAJLienSimple.php");
require_once ("FormLienSimple.php");
require_once ("DateJMAHM.php");
require_once ("ParserCeostar.php");
?>
Voilà, j'éspère être assez explicite sur mon problême,
et vous donné suffisament de renseignements pour que vous puissiez
me cultivez sur mon erreur.

merci d'avance pour votre temps.