'; $reponse = Requete_preparee_bdd($requete, array(), __FILE__, __LINE__); while ($donnees = Recherche_ligne_bdd($reponse)) { $cartes[$nb_cartes ++] = $donnees; } Liberation_jeu_de_resultat_bdd($reponse); */ if ($nb_cartes == 0) $_SESSION['Cartes']['page'] = "Confirmation_suppression_carte"; // Si aucune carte de ShipHeart ne l'utilise, on passe à l'étape de confitmation finale. else // Sinon, on indique une erreur et on affiche les cartes l'utilisant (limitée à N lignes...) { $flag_redirection = true; // Evite que le message d'erreur soit supprimé par la redirection de purge d'URL $message_erreur = "Vous ne pouvez pas supprimer cette carte qui est utilisée dans les cartes de ShipHeart suivantes :"; /* for ($i = 0; $i < $nb_cartes; $i ++) { if ($i < 10) $message_erreur .= "
".$cartes[$i]['Nom']." "; else { $message_erreur .= "
[...]"; break; } } */ } } break; } //=================================== case "confirmation_suppression_carte": { if (isset($_GET['id_carte'])) { $_SESSION['Cartes']['carte']['Cle_primaire'] = $_GET['id_carte']; // Suppression de la carte : $requete = 'UPDATE TB_Cartes SET Validite=0 WHERE Cle_primaire=?'; Requete_preparee_bdd($requete, array( array('s', $_SESSION['Cartes']['carte']['Cle_primaire'])), __FILE__, __LINE__); $flag_redirection = true; // Evite que le message d'erreur soit supprimé par la redirection de purge d'URL $message_information = "La carte ".$types_carte[$_SESSION['Cartes']['carte']['Type']]." n° ".$_SESSION['Cartes']['carte']['No_serie']." a été supprimée de la base de données."; $_SESSION['Cartes']['page'] = "Liste_cartes"; } break; } } if (!$flag_redirection) header('Location:cartes.php'.$_SESSION['Cartes']['ancre'].''); } // Variables POST : //--------------------------------------------------------------------------- // Création Version : if (isset($_POST['validation_creation_carte']) OR isset($_POST['validation_modification_carte'])) { // Mémorisation des valeurs saisies pour éviter de les perdre en cas d'erreur rendant la création impossible : $_SESSION['Cartes']['carte']['No_serie'] = isset($_POST['No_serie']) ? addslashes ($_POST['No_serie']) : ""; $nb_cartes_a_creer = isset($_POST['nb_cartes_a_creer']) ? $_POST['nb_cartes_a_creer'] : 1; $_SESSION['Cartes']['carte']['Version'] = isset($_POST['Version']) ? addslashes ($_POST['Version']) : ""; $_SESSION['Cartes']['carte']['Revision'] = isset($_POST['Revision']) ? addslashes ($_POST['Revision']) : ""; $_SESSION['Cartes']['carte']['Adresse_mac'] = isset($_POST['Adresse_mac']) ? addslashes ($_POST['Adresse_mac']) : ""; $_SESSION['Cartes']['carte']['Date_reception'] = isset($_POST['Date_reception']) ? addslashes ($_POST['Date_reception']) : date("Y-m-d"); $_SESSION['Cartes']['carte']['Modifications'] = isset($_POST['Modifications']) ? addslashes ($_POST['Modifications']) : ""; $_SESSION['Cartes']['carte']['Tests'] = isset($_POST['Tests']) ? addslashes ($_POST['Tests']) : ""; $_SESSION['Cartes']['carte']['Etat'] = isset($_POST['Etat']) ? addslashes ($_POST['Etat']) : 0; $_SESSION['Cartes']['carte']['Destination'] = isset($_POST['Destination']) ? addslashes ($_POST['Destination']) : ""; $_SESSION['Cartes']['carte']['Commentaires'] = isset($_POST['Commentaires']) ? addslashes ($_POST['Commentaires']) : ""; if (isset($_POST['validation_creation_carte'])) { for ($i = 0; $i < $nb_cartes_a_creer; $i ++) { // Création de la carte : $requete = 'INSERT INTO TB_Cartes (Type, No_serie, Version, Revision, Adresse_mac, Date_reception, Modifications, Tests, Etat, Destination, Commentaires) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'; Requete_preparee_bdd($requete, array( array('i', $_SESSION['Cartes']['carte']['Type']), array('s', $_SESSION['Cartes']['carte']['No_serie']), array('s', $_SESSION['Cartes']['carte']['Version']), array('s', $_SESSION['Cartes']['carte']['Revision']), array('s', $_SESSION['Cartes']['carte']['Adresse_mac']), array('s', $_SESSION['Cartes']['carte']['Date_reception']), array('s', $_SESSION['Cartes']['carte']['Modifications']), array('s', $_SESSION['Cartes']['carte']['Tests']), array('i', $_SESSION['Cartes']['carte']['Etat']), array('s', $_SESSION['Cartes']['carte']['Destination']), array('s', $_SESSION['Cartes']['carte']['Commentaires'])), __FILE__, __LINE__); // Récup de la clé primaire de l'enregistrement créé : $_SESSION['Cartes']['carte']['Cle_primaire'] = Recuperation_id_cree_bdd(); // Préparation des champs pour les cartes suivantes : if ($nb_cartes_a_creer > 1) { $cartes_a_creer[$i]['No_serie'] = $_SESSION['Cartes']['carte']['No_serie']; list($annee, $no) = explode("-", $_SESSION['Cartes']['carte']['No_serie']); $lg_no = strlen($no); $_SESSION['Cartes']['carte']['No_serie'] = $annee.'-'.str_pad(($no+1), $lg_no, '0', STR_PAD_LEFT); $_SESSION['Cartes']['carte']['Adresse_mac'] = ""; // Seule la première carte aura l'adresse MAC enregistrée } } // Message d'information : if ($nb_cartes_a_creer <= 1) $message_information = "La carte ".$types_carte[$_SESSION['Cartes']['carte']['Type']]." n° ".$_SESSION['Cartes']['carte']['No_serie']." vient d'être créée"; else $message_information = $nb_cartes_a_creer." cartes ".$types_carte[$_SESSION['Cartes']['carte']['Type']].", du n° [".$cartes_a_creer[0]['No_serie']."] au n° [".$cartes_a_creer[$nb_cartes_a_creer-1]['No_serie']."], viennent d'être créées"; // Retour à la liste si la création s'est bien passée : $_SESSION['Cartes']['page'] = "Liste_cartes"; } else if (isset($_POST['validation_modification_carte'])) { // Mise à jour de la carte : $requete = 'UPDATE TB_Cartes SET Type=?, No_serie=?, Version=?, Revision=?, Adresse_mac=?, Date_reception=?, Modifications=?, Tests=?, Etat=?, Destination=?, Commentaires=? WHERE Cle_primaire=?'; Requete_preparee_bdd($requete, array( array('i', $_SESSION['Cartes']['carte']['Type']), array('s', $_SESSION['Cartes']['carte']['No_serie']), array('s', $_SESSION['Cartes']['carte']['Version']), array('s', $_SESSION['Cartes']['carte']['Revision']), array('s', $_SESSION['Cartes']['carte']['Adresse_mac']), array('s', $_SESSION['Cartes']['carte']['Date_reception']), array('s', $_SESSION['Cartes']['carte']['Modifications']), array('s', $_SESSION['Cartes']['carte']['Tests']), array('i', $_SESSION['Cartes']['carte']['Etat']), array('s', $_SESSION['Cartes']['carte']['Destination']), array('s', $_SESSION['Cartes']['carte']['Commentaires']), array('i', $_SESSION['Cartes']['carte']['Cle_primaire'])), __FILE__, __LINE__); // Message d'information : $message_information = "La carte ".$types_carte[$_SESSION['Cartes']['carte']['Type']]." n° ".$_SESSION['Cartes']['carte']['No_serie']." vient d'être modifiée"; // Retour à la liste si la modification s'est bien passée : $_SESSION['Cartes']['page'] = "Liste_cartes"; } } //************************************************************************************************************************************ // Traitement des données //************************************************************************************************************************************ // Protection contre les accès directs : if ((!$_SESSION['acces_valide']) OR ($_SESSION['shipmember']['Niveau_acces'] < NIVEAU_MINI_ACCES_ADMINISTATEUR)) header('Location:shipmembers.php?action=navigation&destination=Login'); switch ($_SESSION['Cartes']['page']) { //**************************************************************************************************************************** case "Accueil": { break; } //**************************************************************************************************************************** case "Liste_cartes": { // Récupération des informations sur les cartes : $nb_cartes = 0; $requete = 'SELECT * FROM TB_Cartes WHERE Validite=1 AND Type=? ORDER BY Version ASC, No_serie ASC'; $reponse = Requete_preparee_bdd($requete, array( array('i', $_SESSION['Cartes']['carte']['Type'])), __FILE__, __LINE__); while ($donnees = Recherche_ligne_bdd($reponse)) { $cartes[$nb_cartes] = $donnees; // Mise en forme de textes : $cartes[$nb_cartes]['Modifications'] = htmlspecialchars(stripcslashes($cartes[$nb_cartes]['Modifications'])); $cartes[$nb_cartes]['Tests'] = htmlspecialchars(stripcslashes($cartes[$nb_cartes]['Tests'])); $cartes[$nb_cartes]['Destination'] = htmlspecialchars(stripcslashes($cartes[$nb_cartes]['Destination'])); $cartes[$nb_cartes]['Commentaires'] = htmlspecialchars(stripcslashes($cartes[$nb_cartes]['Commentaires'])); $nb_cartes ++; } Liberation_jeu_de_resultat_bdd($reponse); break; } //**************************************************************************************************************************** case "Creation_carte": case "Modification_carte": { if ($_SESSION['Cartes']['page'] == "Creation_carte") { $_SESSION['Cartes']['carte']['Cle_primaire'] = 0; // $_SESSION['Cartes']['carte']['Type'] = 0; $_SESSION['Cartes']['carte']['No_serie'] = ""; $_SESSION['Cartes']['carte']['Version'] = ""; $_SESSION['Cartes']['carte']['Revision'] = ""; $_SESSION['Cartes']['carte']['Adresse_mac'] = ""; $_SESSION['Cartes']['carte']['Date_reception'] = date("Y-m-d"); $_SESSION['Cartes']['carte']['Modifications'] = ""; $_SESSION['Cartes']['carte']['Tests'] = ""; $_SESSION['Cartes']['carte']['Etat'] = 0; $_SESSION['Cartes']['carte']['Destination'] = ""; $_SESSION['Cartes']['carte']['Commentaires'] = ""; } else // Modification : { $requete = 'SELECT * FROM TB_Cartes WHERE Cle_primaire=? '; $reponse = Requete_preparee_bdd($requete, array( array('i', $_SESSION['Cartes']['carte']['Cle_primaire'])), __FILE__, __LINE__); while ($donnees = Recherche_ligne_bdd($reponse)) { $_SESSION['Cartes']['carte'] = $donnees; // Mise en forme de textes : $_SESSION['Cartes']['carte']['Modifications'] = htmlspecialchars(stripcslashes($_SESSION['Cartes']['carte']['Modifications'])); $_SESSION['Cartes']['carte']['Tests'] = htmlspecialchars(stripcslashes($_SESSION['Cartes']['carte']['Tests'])); $_SESSION['Cartes']['carte']['Destination'] = htmlspecialchars(stripcslashes($_SESSION['Cartes']['carte']['Destination'])); $_SESSION['Cartes']['carte']['Commentaires'] = htmlspecialchars(stripcslashes($_SESSION['Cartes']['carte']['Commentaires'])); } Liberation_jeu_de_resultat_bdd($reponse); } break; } //**************************************************************************************************************************** case "Confirmation_suppression_carte": { break; } //**************************************************************************************************************************** default: { $_SESSION['Cartes']['page'] = "Accueil"; break; } } Fermeture_bdd(); // Déconnexion de MySQL //************************************************************************************************************************************ // Affichage //************************************************************************************************************************************ //******************************************************************************************************************************** // Affichage principal : echo '
'; //========================================================================================= // Entête : Entete_page($message_erreur, $message_information); switch ($_SESSION['Cartes']['page']) { //************************************************************************************************************************ case "Accueil": { echo '
'; echo '

Cartes

'; echo '

Type de cartes

'; echo '
'; for ($i=0; $types_carte[$i] != ""; $i ++) { echo ''.$types_carte[$i].''; } echo '
'; echo ''; echo '
'; break; } //************************************************************************************************************************ case "Liste_cartes": { echo '
'; echo '

Cartes

'; echo '

Liste des cartes '.$types_carte[$_SESSION['Cartes']['carte']['Type']].'

'; echo ''; for ($i = 0; $i < $nb_cartes; $i ++) { switch($cartes[$i]['Etat']) { default: case ETAT_CARTE_INCONNU: { echo ''; break; } case ETAT_CARTE_OK: { echo ''; break; } case ETAT_CARTE_EN_PANNE: { echo ''; break; } case ETAT_CARTE_REBUT: { echo ''; break; } } echo ''; } echo '
N° de série Version Rév. Adresse MAC Date réception Destination
'.$cartes[$i]['No_serie'].' '.$cartes[$i]['Version'].' '.$cartes[$i]['Revision'].' '.$cartes[$i]['Adresse_mac'].' '.$cartes[$i]['Date_reception'].' '.$cartes[$i]['Destination'].'
'; echo ''; echo '
'; break; } //************************************************************************************************************************ case "Creation_carte": case "Modification_carte": { echo '
'; echo '

Cartes

'; echo '
'; if ($_SESSION['Cartes']['page'] == "Creation_carte") echo '

Nouvelle carte '.$types_carte[$_SESSION['Cartes']['carte']['Type']].'

'; else echo '

Modification de la carte '.$types_carte[$_SESSION['Cartes']['carte']['Type']].' n° '.$_SESSION['Cartes']['carte']['No_serie'].'

'; //---------------------------------------- // N° de série : echo '
N° de série
'; //---------------------------------------- // Nombre de cartes à créer : if ($_SESSION['Cartes']['page'] == "Creation_carte") { echo '
Nombre de cartes à créer
Si cette valeur est > 1, plusieurs cartes seront créées avec un numéro de série incrémenté de 1 et avec les mêmes champs (sauf adresse MAC)
'; } //---------------------------------------- // Version : echo '
Version
'; //---------------------------------------- // Révision : echo '
Révision
'; //---------------------------------------- // Adresse MAC : echo '
Adresse MAC
'; //---------------------------------------- // Date de réception : echo '
Date de réception
'; //---------------------------------------- // Modifications : echo '
Modificationss
'; //---------------------------------------- // Tests : echo '
Tests
'; //---------------------------------------- // Etat : echo '
Etat
'; //---------------------------------------- // Destination : echo '
Destination
'; //---------------------------------------- // Commentaires : echo '
Commentaires
'; //---------------------------------------- // Boutons de bas de page : echo '
'; if ($_SESSION['Cartes']['page'] == "Creation_carte") /// Création : { echo 'Annuler'; echo ''; } else // Modification : { echo 'Retour à la liste des cartes'; echo ''; echo 'Supprimer la carte'; } echo '
'; echo '
'; echo '
'; break; } //**************************************************************************************************************************** case "Confirmation_suppression_carte": { echo '
'; echo '

Cartes

'; echo '
'; echo '

Confirmez-vous la suppression de la carte '.$types_carte[$_SESSION['Cartes']['carte']['Type']].' n° '.$_SESSION['Cartes']['carte']['No_serie'].' ?

'; echo '
'; echo '
'; echo 'Annuler'; echo 'Confirmer la suppression'; echo '
'; echo '
'; break; } } echo '
'; Pied_de_page();