';
$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 '
| 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'].' |