Mise à jour de travail sur le portage de la version 'Ovh' vers le VPS. Nombreuses modifs à tous niveaux (donc non tracées...)

This commit is contained in:
2026-10-02 15:20:14 +00:00
parent 94ae0d9b25
commit fcf5434ff8
15 changed files with 855 additions and 751 deletions
+68 -303
View File
@@ -4,8 +4,6 @@ include "../config/config.php";
Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session et vérifiant que les accès sont autorisés.
//************************************************************************************************************************************
// Initialisation des variables globales
//************************************************************************************************************************************
@@ -26,7 +24,19 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
// Variables GET :
if (isset($_GET['code_acces']) && (!isset($_SESSION['code_acces']) || $_SESSION['code_acces']== '')) $_SESSION['code_acces'] = $_GET['code_acces'];
// Le code d'accès ne doit contenir que ce que produit le générateur (bateaux.php) : chiffres et
// lettres, 6 caractères aujourd'hui (colonne Code : 20 au maximum). Il est ensuite inséré dans des
// requêtes SQL : tout autre caractère est refusé. is_string() écarte ?code_acces[]=... (un tableau
// ferait planter preg_match) ; \z (et non $) refuse aussi un retour à la ligne final.
function Code_acces_est_valide($valeur)
{
return is_string($valeur) && preg_match('/^[0-9A-Za-z]{1,20}\z/', $valeur) === 1;
}
// Une valeur déjà présente en session (ouverte avant ce contrôle, ou par une autre voie) est vérifiée aussi :
if (isset($_SESSION['code_acces']) && !Code_acces_est_valide($_SESSION['code_acces'])) $_SESSION['code_acces'] = '';
if (isset($_GET['code_acces']) && Code_acces_est_valide($_GET['code_acces']) && (!isset($_SESSION['code_acces']) || $_SESSION['code_acces']== '')) $_SESSION['code_acces'] = $_GET['code_acces'];
if (isset($_GET['action']))
{
@@ -47,16 +57,7 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
}
break;
}
//-----------------------------------
case "toggle_edit":
{
if ($_SESSION['modifier_texte'] == 0) $_SESSION['modifier_texte'] = 1;
else if ($_SESSION['modifier_texte'] == 1) $_SESSION['modifier_texte'] = 0;
break;
}
//-----------------------------------
case "deconnexion" :
{
@@ -79,18 +80,6 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
break;
}
//-----------------------------------
case "details_shipmember":
{
if (isset($_GET['id_shipmember']))
{
$_SESSION['Shipmembers']['ID'] = $_GET['id_shipmember'];
$_SESSION['Shipmembers']['page'] = 'Details';
}
break;
}
//-----------------------------------
case "generation_mdp":
{
@@ -178,7 +167,7 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
// Création du ShipMember :
$requete = 'INSERT INTO TB_Shipmembers(Nom, Prenom, Entreprise, Rue, Code_postal, Ville, ID_PAYS, Telephone, Email, ID_LANGUAGES, ID_Stripe, Mdp, Date_creation_compte) VALUES (?,?,?,?,?,?,?,?,?,(SELECT ID FROM TB_Langues WHERE Prefix=?),?,?,?)';
$requete = 'INSERT INTO TB_Shipmembers(Nom, Prenom, Entreprise, Rue, Code_postal, Ville, ID_PAYS, Telephone, Email, ID_LANGUAGES, Mdp, Date_creation_compte) VALUES (?,?,?,?,?,?,?,?,?,(SELECT ID FROM TB_Langues WHERE Prefix=?),?,?,?)';
Requete_preparee_bdd($requete,
array(
array('s', $_SESSION['shipmember']['Nom']),
@@ -228,7 +217,7 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
<p>Nom : [[Prenom]] [[Nom]]</p>
<p>Email : [[Email]]</p>
<p>Mot de passe provisoire : [[Password]]</p>
<p>Plus qu’un clic : Connectez-vous sur <a href=\"https://shipheart.tech\">ShipHeart.tech</a> pour valider votre compte ShipMember en modifiant votre mot de passe provisoire (*). C’est une garantie de sécurité à ne pas négliger.</p>
<p>Plus qu’un clic : Connectez-vous sur <a href=\"https://[[Url_site]]\">[[Url_site]]</a> pour valider votre compte ShipMember en modifiant votre mot de passe provisoire (*). C’est une garantie de sécurité à ne pas négliger.</p>
<p>Et ensuite, où que vous soyez et dès que votre ShipHeart est installé, accédez à votre bateau via votre accès privilégié ShipMember !</p>
<p> </p>
<p>Bienvenue parmi nous !</p>
@@ -241,6 +230,7 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
$texte_email = str_replace("[[Nom]]", $_SESSION['shipmember']['Nom'], $texte_email);
$texte_email = str_replace("[[Email]]", $_SESSION['shipmember']['Email'], $texte_email);
$texte_email = str_replace("[[Password]]", $password, $texte_email);
$texte_email = str_replace("[[Url_site]]", URL_SITE, $texte_email);
$texte_email = str_replace("[[Date_maxi_activation]]", $date_maxi_activation, $texte_email);
Envoi_email('', $_SESSION['shipmember']['Email'],
@@ -263,15 +253,15 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
// Créer le lien bateau shipmember, affecter l'enregitrement a cet utilisateur :
if (isset($_SESSION['code_acces']) && $_SESSION['code_acces']!=''){
$code = $_SESSION['code_acces'];
$requete = 'SELECT * FROM TB_Lien_bateau_shipmember WHERE Validite=1 AND Code="'.$code.'" AND ID_Shipmember=0';
$reponse = Requete_bdd($requete, __FILE__, __LINE__);
$requete = 'SELECT * FROM TB_Lien_bateau_shipmember WHERE Validite=1 AND Code=? AND ID_Shipmember=0';
$reponse = Requete_preparee_bdd($requete, array(array('s', $code)), __FILE__, __LINE__);
$donnees = Recherche_ligne_bdd($reponse);
Liberation_jeu_de_resultat_bdd($reponse);
if ($donnees == NULL) $message_erreur .= "Code invalide ou déjà utilisé \n";
else
{
$sous_req = 'UPDATE TB_Lien_bateau_shipmember SET ID_Shipmember='.$_SESSION['shipmember']['Cle_primaire'].' WHERE Validite=1 AND Code="'.$code.'" AND ID_Shipmember=0';
$sous_rep = Requete_bdd($sous_req, __FILE__, __LINE__);
$sous_req = 'UPDATE TB_Lien_bateau_shipmember SET ID_Shipmember=? WHERE Validite=1 AND Code=? AND ID_Shipmember=0';
$sous_rep = Requete_preparee_bdd($sous_req, array(array('i', $_SESSION['shipmember']['Cle_primaire']), array('s', $code)), __FILE__, __LINE__);
}
$_SESSION['code_acces'] = '';
}
@@ -307,7 +297,7 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
$email = Protection_mysql(strtolower($_POST['email_validation'])); // On ajoute les caractères d'échappement sur l'email qui sera envoyé dans la requête
$mdp = $_POST['mdp_validation']; // Le MDP n'est pas envoyé...
$requete = 'SELECT ID AS Cle_primaire, Validite, Nom, Prenom, Entreprise, Rue, Code_postal, Ville, Telephone, Email, ID_Stripe, Mdp, Date_creation_compte, Niveau_acces, ID_PAYS AS ID_Pays, ID_LANGUAGES, (SELECT 1 FROM TB_Activation WHERE ID_SHIPMEMBERS=ID) AS Compte_a_activer, (SELECT Date_creation_mdp FROM TB_Activation WHERE ID_SHIPMEMBERS=ID) AS Date_creation_mdp FROM TB_Shipmembers WHERE Email=? ';
$requete = 'SELECT ID AS Cle_primaire, Validite, Nom, Prenom, Entreprise, Rue, Code_postal, Ville, Telephone, Email, Mdp, Date_creation_compte, Niveau_acces, ID_PAYS AS ID_Pays, ID_LANGUAGES, (SELECT 1 FROM TB_Activation WHERE ID_SHIPMEMBERS=ID) AS Compte_a_activer, (SELECT Date_creation_mdp FROM TB_Activation WHERE ID_SHIPMEMBERS=ID) AS Date_creation_mdp FROM TB_Shipmembers WHERE Email=? ';
$reponse = Requete_preparee_bdd($requete,
array(
array('s', $email)),
@@ -349,7 +339,7 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
__FILE__, __LINE__);
// Recherche des informations du ShipMember :
$requete = 'SELECT ID AS Cle_primaire, Validite, Nom, Prenom, Entreprise, Rue, Code_postal, Ville, Telephone, Email, ID_Stripe, Mdp, Date_creation_compte, Niveau_acces, ID_PAYS AS ID_Pays, ID_LANGUAGES, (SELECT 1 FROM TB_Activation WHERE ID_SHIPMEMBERS=ID) AS Compte_a_activer, (SELECT Date_creation_mdp FROM TB_Activation WHERE ID_SHIPMEMBERS=ID) AS Date_creation_mdp FROM TB_Shipmembers WHERE ID=?';
$requete = 'SELECT ID AS Cle_primaire, Validite, Nom, Prenom, Entreprise, Rue, Code_postal, Ville, Telephone, Email, Mdp, Date_creation_compte, Niveau_acces, ID_PAYS AS ID_Pays, ID_LANGUAGES, (SELECT 1 FROM TB_Activation WHERE ID_SHIPMEMBERS=ID) AS Compte_a_activer, (SELECT Date_creation_mdp FROM TB_Activation WHERE ID_SHIPMEMBERS=ID) AS Date_creation_mdp FROM TB_Shipmembers WHERE ID=?';
$reponse = Requete_preparee_bdd($requete,
array(
array('i', $_SESSION['shipmember']['Cle_primaire'])),
@@ -376,8 +366,8 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
// Créer le lien bateau shipmember, affecter l'enregitrement a cet utilisateur
if (isset($_SESSION['code_acces']) && $_SESSION['code_acces']!=''){
$code = $_SESSION['code_acces'];
$requete = 'SELECT * FROM TB_Lien_bateau_shipmember WHERE Validite=1 AND Code="'.$code.'" AND ID_Shipmember=0';
$reponse = Requete_bdd($requete, __FILE__, __LINE__);
$requete = 'SELECT * FROM TB_Lien_bateau_shipmember WHERE Validite=1 AND Code=? AND ID_Shipmember=0';
$reponse = Requete_preparee_bdd($requete, array(array('s', $code)), __FILE__, __LINE__);
$donnees = Recherche_ligne_bdd($reponse);
// Vérifier si le code est tjrs valable
if ($donnees == NULL){
@@ -385,8 +375,8 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
$_SESSION['code_acces'] = '';
}
else {
$sous_req = 'UPDATE TB_Lien_bateau_shipmember SET ID_Shipmember = '.$_SESSION['shipmember']['Cle_primaire'].' WHERE Validite=1 AND Code="'.$code.'" AND ID_Shipmember=0';
$sous_rep = Requete_bdd($sous_req, __FILE__, __LINE__);
$sous_req = 'UPDATE TB_Lien_bateau_shipmember SET ID_Shipmember=? WHERE Validite=1 AND Code=? AND ID_Shipmember=0';
$sous_rep = Requete_preparee_bdd($sous_req, array(array('i', $_SESSION['shipmember']['Cle_primaire']), array('s', $code)), __FILE__, __LINE__);
$_SESSION['code_acces'] = '';
// $_SESSION['droits_acces'] = $donnees['Niveau_acces'];
}
@@ -429,7 +419,7 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
$new_mdp = $_POST['Mot_de_passe_1'];
// Recherche du MDP existant de l'adhérent :
$requete = 'SELECT ID AS Cle_primaire, Validite, Nom, Prenom, Entreprise, Rue, Code_postal, Ville, Telephone, Email, ID_Stripe, Mdp, Date_creation_compte, Niveau_acces, ID_PAYS AS ID_Pays, ID_LANGUAGES, (SELECT 1 FROM TB_Activation WHERE ID_SHIPMEMBERS=ID) AS Compte_a_activer, (SELECT Date_creation_mdp FROM TB_Activation WHERE ID_SHIPMEMBERS=ID) AS Date_creation_mdp FROM TB_Shipmembers WHERE ID=?';
$requete = 'SELECT ID AS Cle_primaire, Validite, Nom, Prenom, Entreprise, Rue, Code_postal, Ville, Telephone, Email, Mdp, Date_creation_compte, Niveau_acces, ID_PAYS AS ID_Pays, ID_LANGUAGES, (SELECT 1 FROM TB_Activation WHERE ID_SHIPMEMBERS=ID) AS Compte_a_activer, (SELECT Date_creation_mdp FROM TB_Activation WHERE ID_SHIPMEMBERS=ID) AS Date_creation_mdp FROM TB_Shipmembers WHERE ID=?';
$reponse = Requete_preparee_bdd($requete,
array(
array('i', $_SESSION['shipmember']['Cle_primaire'])),
@@ -439,7 +429,7 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
// Vérification que le mot de passe est changé :
// if (Hash_Mdp($new_mdp) == $shipmember['Mdp']) $message_erreur .= nl2br(Recuperation_texte('all','all','erreurs','pwd_egal_temporaire'));
if (password_verify($new_mdp, $shipmember['Mdp'])) $message_erreur .= nl2br(t("Pour des raisons de sécurité, votre nouveau mot de passe ne peut pas être identique au mot de passe provisoire."));
if (password_verify($new_mdp, $shipmember['Mdp'])) $message_erreur .= t("Pour des raisons de sécurité, votre nouveau mot de passe ne peut pas être identique au mot de passe provisoire.");
else
{
// Mise à jour du nouveau mot de passe :
@@ -502,16 +492,20 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
{
$nb_emails_valides = 0;
$requete = 'SELECT ID AS Cle_primaire, Validite, Nom, Prenom, Entreprise, Rue, Code_postal, Ville, Telephone, Email, ID_Stripe, Mdp, Date_creation_compte, Niveau_acces, ID_PAYS AS ID_Pays, ID_LANGUAGES, (SELECT 1 FROM TB_Activation WHERE ID_SHIPMEMBERS=ID) AS Compte_a_activer, (SELECT Date_creation_mdp FROM TB_Activation WHERE ID_SHIPMEMBERS=ID) AS Date_creation_mdp FROM TB_Shipmembers WHERE Validite=1 AND Email=? ';
$requete = 'SELECT ID AS Cle_primaire, Validite, Nom, Prenom, Entreprise, Rue, Code_postal, Ville, Telephone, Email, Mdp, Date_creation_compte, Niveau_acces, ID_PAYS AS ID_Pays, ID_LANGUAGES, (SELECT 1 FROM TB_Activation WHERE ID_SHIPMEMBERS=ID) AS Compte_a_activer, (SELECT Date_creation_mdp FROM TB_Activation WHERE ID_SHIPMEMBERS=ID) AS Date_creation_mdp FROM TB_Shipmembers WHERE Validite=1 AND Email=? ';
$reponse = Requete_preparee_bdd($requete,
array(
array('s', $_SESSION['shipmember']['Email'])),
__FILE__, __LINE__);
while ($donnees = Recherche_ligne_bdd($reponse))
{
$_SESSION['shipmember']['Cle_primaire'] = $donnees['Cle_primaire'];
$_SESSION['shipmember']['Prenom'] = $donnees['Prenom'];
$_SESSION['shipmember']['Nom'] = $donnees['Nom'];
// Ces informations ne servent qu'à composer l'e-mail : NE PAS écrire
// $_SESSION['shipmember'], pour ne pas laisser en session l'identité d'un
// compte QUE L'ON N'A PAS ENCORE AUTHENTIFIÉ (n'importe qui peut demander la
// réinitialisation du mot de passe d'une adresse qui n'est pas la sienne).
$cle_primaire_demande = $donnees['Cle_primaire'];
$prenom_demande = $donnees['Prenom'];
$nom_demande = $donnees['Nom'];
$nb_emails_valides ++;
}
Liberation_jeu_de_resultat_bdd($reponse);
@@ -525,20 +519,20 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
$requete = 'DELETE FROM TB_Activation WHERE ID_SHIPMEMBERS=?';
Requete_preparee_bdd($requete,
array(
array('i', $_SESSION['shipmember']['Cle_primaire'])),
array('i', $cle_primaire_demande)),
__FILE__, __LINE__);
$requete = 'UPDATE TB_Shipmembers SET Mdp=? WHERE ID=?';
Requete_preparee_bdd($requete,
array(
array('s', password_hash($password, PASSWORD_DEFAULT)),
array('i', $_SESSION['shipmember']['Cle_primaire'])),
array('i', $cle_primaire_demande)),
__FILE__, __LINE__);
$requete = 'INSERT INTO TB_Activation(ID_SHIPMEMBERS) VALUES (?)';
Requete_preparee_bdd($requete,
array(
array('s', $_SESSION['shipmember']['Cle_primaire'])),
array('s', $cle_primaire_demande)),
__FILE__, __LINE__);
// Mémorisation dans l'historique de la connexion :
@@ -547,9 +541,9 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
array(
array('i', SYSTEME),
array('i', SYSTEME_REINIT_MDP_USER),
array('i', $_SESSION['shipmember']['Cle_primaire']),
array('i', $cle_primaire_demande),
array('i', 0),
array('s', 'Réinitialisation du mot de passe de '.$_SESSION['shipmember']['Prenom'].' '.$_SESSION['shipmember']['Prenom'].' [N° '.$_SESSION['shipmember']['Cle_primaire'].']')),
array('s', 'Réinitialisation du mot de passe de '.$prenom_demande.' '.$prenom_demande.' [N° '.$cle_primaire_demande.']')),
__FILE__, __LINE__);
@@ -565,39 +559,39 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
<p>Nom : [[Prenom]] [[Nom]]</p>
<p>Email : [[Email]]</p>
<p>Mot de passe provisoire : [[Password]]</p>
<p>Plus qu’un clic : Connectez-vous sur <a href=\"https://shipheart.tech\">ShipHeart.tech</a> pour activer votre compte ShipMember en modifiant votre mot de passe provisoire (*). C’est une garantie de sécurité à ne pas négliger...</p>
<p>Plus qu’un clic : Connectez-vous sur <a href=\"https://[[Url_site]]\">[[Url_site]]</a> pour activer votre compte ShipMember en modifiant votre mot de passe provisoire (*).</p>
<p>Bienvenue à nouveau parmi nous !</p>
<p>L'équipage ShipHeart</p>
<p> </p>
<p style=\"font-size: 0.8em;\">(*) L'activation devra être faite avant le [[Date_maxi_activation]]. Mais pas d'inquiétude ; si vous ne le faites pas avant, vous pourrez toujours demander un nouveau mot de passe provisoire.</p>");
// Mise à jour des parametres du texte :
$texte_email = str_replace("[[Prenom]]", $_SESSION['shipmember']['Prenom'], $texte_email);
$texte_email = str_replace("[[Nom]]", $_SESSION['shipmember']['Nom'], $texte_email);
$texte_email = str_replace("[[Prenom]]", $prenom_demande, $texte_email);
$texte_email = str_replace("[[Nom]]", $nom_demande, $texte_email);
$texte_email = str_replace("[[Email]]", $_SESSION['shipmember']['Email'], $texte_email);
$texte_email = str_replace("[[Password]]", $password, $texte_email);
$texte_email = str_replace("[[Url_site]]", URL_SITE, $texte_email);
$texte_email = str_replace("[[Date_maxi_activation]]", $date_maxi_activation, $texte_email);
Envoi_email('', $_SESSION['shipmember']['Email'],
t("Votre demande concernant votre accès ShipMember"),
$texte_email,
"ShipHeart by Koriolan", $_SESSION['Config__Adresse_email_shipmember'], '');
//Fin.........................................................................
//............................................................................
// Message d'information :
$message = t("Un email vient d'être envoyé à [[Prenom]] [[Nom]] ([[Email]]) avec les informations relatives à votre inscription.")."<br />";
$message = str_replace("[[Prenom]]", $_SESSION['shipmember']['Prenom'], $message);
$message = str_replace("[[Nom]]", $_SESSION['shipmember']['Nom'], $message);
$message = str_replace("[[Prenom]]", $prenom_demande, $message);
$message = str_replace("[[Nom]]", $nom_demande, $message);
$message = str_replace("[[Email]]", $_SESSION['shipmember']['Email'], $message);
$message_information .= $message;
//Fin.........................................................................
//.........................................................................
// Récupération des liaisons shipmember - bateau
$current_timestamp = date_format(date_create(), 'Y-m-d H:i:s');
$requete = 'SELECT ID_Bateau, ID_Type_acces_bateau_shipmember FROM TB_Lien_bateau_shipmember WHERE ID_Shipmember='.$_SESSION['shipmember']['Cle_primaire'].' AND Validite=1 AND Validite_acces=1 AND Fin_validite>="'.$current_timestamp.'"';
$requete = 'SELECT ID_Bateau, ID_Type_acces_bateau_shipmember FROM TB_Lien_bateau_shipmember WHERE ID_Shipmember='.$cle_primaire_demande.' AND Validite=1 AND Validite_acces=1 AND Fin_validite>="'.$current_timestamp.'"';
$reponse = Requete_bdd($requete, __FILE__, __LINE__);
$nb_acces = 0;
// $bateau_shipmember = []
@@ -606,8 +600,8 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
}
$_SESSION['acces'] = $nb_acces;
$_SESSION['acces_valide'] = true;
$_SESSION['Shipmembers']['page'] = "Accueil";
// $_SESSION['acces_valide'] = true;
// $_SESSION['Shipmembers']['page'] = "Accueil";
}
$_SESSION['Shipmembers']['page'] = "Login";
@@ -743,7 +737,7 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
$texte_email = t("<p>Bonjour,</p>
<p>L'adresse email associée à votre compte ShipMember vient d'être modifiée à votre demande :</p>
<p>Ancienne adresse : [[Old_email]]</p><p>Nouvelle adresse : [[New_email]]</p>
<p>Si vous n'êtes pas à l'origine de ce changement d'adresse, merci de contacter sans attendre l'administrateur du site à : <a href=\"mailto:[[Adresse_email_alertes]]\">[[Adresse_email_alertes]].'</a></p>
<p>Si vous n'êtes pas à l'origine de ce changement d'adresse, merci de contacter sans attendre l'administrateur du site à : <a href=\"mailto:[[Adresse_email_alertes]]\">[[Adresse_email_alertes]]</a></p>
<p>L'équipage ShipHeart</p>");
// Mise à jour des parametres du texte :
@@ -830,7 +824,7 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
case "Accueil":
{
// Mise à jour des données du ShipMember (au cas où) :
$requete = 'SELECT ID AS Cle_primaire, Validite, Nom, Prenom, Entreprise, Rue, Code_postal, Ville, Telephone, Email, ID_Stripe, Mdp, Date_creation_compte, Niveau_acces, ID_PAYS AS ID_Pays, ID_LANGUAGES, (SELECT 1 FROM TB_Activation WHERE ID_SHIPMEMBERS=ID) AS Compte_a_activer, (SELECT Date_creation_mdp FROM TB_Activation WHERE ID_SHIPMEMBERS=ID) AS Date_creation_mdp FROM TB_Shipmembers WHERE ID=?';
$requete = 'SELECT ID AS Cle_primaire, Validite, Nom, Prenom, Entreprise, Rue, Code_postal, Ville, Telephone, Email, Mdp, Date_creation_compte, Niveau_acces, ID_PAYS AS ID_Pays, ID_LANGUAGES, (SELECT 1 FROM TB_Activation WHERE ID_SHIPMEMBERS=ID) AS Compte_a_activer, (SELECT Date_creation_mdp FROM TB_Activation WHERE ID_SHIPMEMBERS=ID) AS Date_creation_mdp FROM TB_Shipmembers WHERE ID=?';
$reponse = Requete_preparee_bdd($requete,
array(
array('i', $_SESSION['shipmember']['Cle_primaire'])),
@@ -845,8 +839,8 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
// Créer le lien bateau shipmember, affecter l'enregitrement a cet utilisateur
if (isset($_SESSION['code_acces']) && $_SESSION['code_acces']!=''){
$code = $_SESSION['code_acces'];
$requete = 'SELECT * FROM TB_Lien_bateau_shipmember WHERE Validite=1 AND Code="'.$code.'" AND ID_Shipmember=0';
$reponse = Requete_bdd($requete, __FILE__, __LINE__);
$requete = 'SELECT * FROM TB_Lien_bateau_shipmember WHERE Validite=1 AND Code=? AND ID_Shipmember=0';
$reponse = Requete_preparee_bdd($requete, array(array('s', $code)), __FILE__, __LINE__);
$donnees = Recherche_ligne_bdd($reponse);
// Vérifier si le code est tjrs valable
if ($donnees == NULL){
@@ -854,8 +848,8 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
$_SESSION['code_acces'] = '';
}
else {
$sous_req = 'UPDATE TB_Lien_bateau_shipmember SET ID_Shipmember='.$_SESSION['shipmember']['Cle_primaire'].' WHERE Validite=1 AND Code="'.$code.'" AND ID_Shipmember=0';
$sous_rep = Requete_bdd($sous_req, __FILE__, __LINE__);
$sous_req = 'UPDATE TB_Lien_bateau_shipmember SET ID_Shipmember=? WHERE Validite=1 AND Code=? AND ID_Shipmember=0';
$sous_rep = Requete_preparee_bdd($sous_req, array(array('i', $_SESSION['shipmember']['Cle_primaire']), array('s', $code)), __FILE__, __LINE__);
$_SESSION['code_acces'] = '';
// $_SESSION['droits_acces'] = $donnees['Niveau_acces'];
}
@@ -878,116 +872,9 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
break;
}
//****************************************************************************************************************************
case "Administration":
{
// 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');
// Récupération des informations sur les ShipMembers :
$nb_shipmembers = 0;
$requete = 'SELECT * FROM TB_Shipmembers WHERE Validite=1 ORDER BY ID ASC';
$reponse = Requete_preparee_bdd($requete,
array(),
__FILE__, __LINE__);
while ($donnees = Recherche_ligne_bdd($reponse))
{
$shipmembers[$nb_shipmembers ++] = $donnees;
}
Liberation_jeu_de_resultat_bdd($reponse);
break;
}
//****************************************************************************************************************************
case "Details":
{
// Modifier les droits d'accès d'un utilisateur
if (isset($_POST['acces'])){
$requete = 'UPDATE TB_Shipmembers SET Niveau_acces=? WHERE ID=?';
$reponse = Requete_preparee_bdd($requete,
array(
array('i', $_POST['acces']),
array('i', $_SESSION['Shipmembers']['ID'])),
__FILE__, __LINE__);
}
// Récupération des informations sur le ShipMember :
$requete = 'SELECT *, (SELECT Texte FROM TB_Textes_traduction WHERE ID_TYPE = 1 AND ID_TEXTES=(SELECT ID_NOM FROM TB_Pays WHERE ID=TB_Shipmembers.ID_PAYS) AND ID_LANGUAGES=1) AS Libelle_pays FROM TB_Shipmembers WHERE ID='.$_SESSION['Shipmembers']['ID'].' ';
$reponse = Requete_preparee_bdd($requete,
array(),
__FILE__, __LINE__);
while ($donnees = Recherche_ligne_bdd($reponse))
{
$shipmember = $donnees;
}
Liberation_jeu_de_resultat_bdd($reponse);
$requete = '';
// Récupération des informations sur le ou les bateaux accessibles à ce ShipMember :
$nb_bateaux = 0;
$requete = 'SELECT * FROM TB_Lien_bateau_shipmember WHERE ID_SHIPMEMBER=? ';
$reponse = Requete_preparee_bdd($requete,
array(
array('i', $_SESSION['Shipmembers']['ID'])),
__FILE__, __LINE__);
while ($donnees = Recherche_ligne_bdd($reponse))
{
$bateaux[$nb_bateaux ++]['Cle_primaire'] = $donnees['ID_Bateau'];
}
Liberation_jeu_de_resultat_bdd($reponse);
// Récupération des informations relatives à chacun des bateaux accessibles :
for ($i=0; $i<$nb_bateaux; $i ++)
{
$requete = 'SELECT * FROM TB_Bateaux WHERE Cle_primaire=? ';
$reponse = Requete_preparee_bdd($requete,
array(
array('i', $bateaux[$i]['Cle_primaire'])),
__FILE__, __LINE__);
while ($donnees = Recherche_ligne_bdd($reponse))
{
$bateaux[$i] = $donnees;
}
Liberation_jeu_de_resultat_bdd($reponse);
}
// Créer le lien bateau shipmember, affecter l'enregitrement a cet utilisateur
if (isset($_SESSION['code_acces']) && $_SESSION['code_acces']!=''){
$code = $_SESSION['code_acces'];
$requete = 'SELECT * FROM TB_Lien_bateau_shipmember WHERE Validite=1 AND Code="'.$code.'" AND ID_Shipmember=0';
$reponse = Requete_bdd($requete, __FILE__, __LINE__);
$donnees = Recherche_ligne_bdd($reponse);
// Vérifier si le code est tjrs valable
if ($donnees == NULL){
$message_erreur .= "Code invalide ou déjà utilisé \n";
$_SESSION['code_acces'] = '';
}
else {
$sous_req = 'UPDATE TB_Lien_bateau_shipmember SET ID_Shipmember='.$_SESSION['shipmember']['Cle_primaire'].' WHERE Validite=1 AND Code="'.$code.'" AND ID_Shipmember=0';
$sous_rep = Requete_bdd($sous_req, __FILE__, __LINE__);
$_SESSION['code_acces'] = '';
// $_SESSION['droits_acces'] = $donnees['Niveau_acces'];
}
}
// Récupération des liaisons shipmember - bateau
$current_timestamp = date_format(date_create(), 'Y-m-d H:i:s');
$requete = 'SELECT ID_Bateau, ID_Type_acces_bateau_shipmember FROM TB_Lien_bateau_shipmember WHERE ID_Shipmember='.$_SESSION['shipmember']['Cle_primaire'].' AND Validite=1 AND Validite_acces=1 AND Fin_validite>="'.$current_timestamp.'"';
$reponse = Requete_bdd($requete, __FILE__, __LINE__);
$nb_acces = 0;
// $bateau_shipmember = []
while ($donnees = Recherche_ligne_bdd($reponse)) {
$_SESSION['bateau_shipmember'][$nb_acces++] = $donnees;
}
$_SESSION['acces'] = $nb_acces;
// $_SESSION['acces_valide'] = true;
break;
}
//****************************************************************************************************************************
case "Profil":
@@ -1082,8 +969,8 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
// Créer le lien bateau shipmember, affecter l'enregitrement a cet utilisateur
if (isset($_SESSION['code_acces']) && $_SESSION['code_acces']!=''){
$code = $_SESSION['code_acces'];
$requete = 'SELECT * FROM TB_Lien_bateau_shipmember WHERE Validite=1 AND Code="'.$code.'" AND ID_Shipmember=0';
$reponse = Requete_bdd($requete, __FILE__, __LINE__);
$requete = 'SELECT * FROM TB_Lien_bateau_shipmember WHERE Validite=1 AND Code=? AND ID_Shipmember=0';
$reponse = Requete_preparee_bdd($requete, array(array('s', $code)), __FILE__, __LINE__);
$donnees = Recherche_ligne_bdd($reponse);
// Vérifier si le code est tjrs valable
if ($donnees == NULL){
@@ -1091,8 +978,8 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
$_SESSION['code_acces'] = '';
}
else {
$sous_req = 'UPDATE TB_Lien_bateau_shipmember SET ID_Shipmember = '.$_SESSION['shipmember']['Cle_primaire'].' WHERE Validite=1 AND Code="'.$code.'" AND ID_Shipmember=0';
$sous_rep = Requete_bdd($sous_req, __FILE__, __LINE__);
$sous_req = 'UPDATE TB_Lien_bateau_shipmember SET ID_Shipmember=? WHERE Validite=1 AND Code=? AND ID_Shipmember=0';
$sous_rep = Requete_preparee_bdd($sous_req, array(array('i', $_SESSION['shipmember']['Cle_primaire']), array('s', $code)), __FILE__, __LINE__);
$_SESSION['code_acces'] = '';
// $_SESSION['droits_acces'] = $donnees['Niveau_acces'];
}
@@ -1444,7 +1331,6 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
echo '</div>';
echo '<div class="boutons_bas_de_page">';
// echo Ajouter_lien_modif_buttons('shipmember','accueil','espace_shipmember','menu_1_a_texte');
echo '<a title="'.t("Voir les informations liées à votre compte ShipMember...").'" href="shipmembers.php?action=navigation&destination=Profil">
'.t("Mes informations").'
</a>';
@@ -1459,7 +1345,7 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
// Accès au menu d'administration :
// if (isset($_SESSION['shipmember']['Niveau_administration']) && $_SESSION['shipmember']['Niveau_administration'] != '')
if ($_SESSION['shipmember']['Niveau_acces'] >= NIVEAU_MINI_ACCES_ADMINISTATEUR)
if ($_SESSION['shipmember']['Niveau_acces'] >= NIVEAU_ACCES_MINI_ADMINISTRATEUR)
{
echo '<a title="Accès au menu d\'administration - Accès réservé" href="administration.php?action=navigation&destination=Accueil">
Administration
@@ -1473,128 +1359,9 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
break;
}
//************************************************************************************************************************
case "Administration":
{
echo '<div id="administration" class="page_principale">';
echo '<h1>Administration</h1>';
echo '<h2>ShipMembers</h2>';
echo '<table class="shipmember">
<thead>
<tr>
<th>Nom</th>
<th>Entreprise</th>
<th>Telephone</th>
<th>Email</th>
</tr>
</thead>
<tbody>';
for ($i = 0; $i < $nb_shipmembers; $i ++)
{
echo '<tr>
<td>
<a href="shipmembers.php?action=details_shipmember&id_shipmember='.$shipmembers[$i]['ID'].'">
'.$shipmembers[$i]['Prenom'].' '.$shipmembers[$i]['Nom'].'
</a>
</td>
<td>'.$shipmembers[$i]['Entreprise'].'</td>
<td>'.$shipmembers[$i]['Telephone'].'</td>
<td>'.$shipmembers[$i]['Email'].'</td>
</tr>';
}
echo '</tbody>
</table>';
echo '<div class="boutons_bas_de_page">';
echo '<a title="" href="administration.php?action=navigation&destination=Accueil">Retour au menu Administration</a>';
echo '</div>';
echo '</div>';
break;
}
//************************************************************************************************************************
case "Details":
{
echo '<div id="details" class="page_principale">';
echo '<h1>Administration</h1>';
echo '<h2>ShipMember n° <span class="gras">'.$shipmember['ID'].'</span></h2>';
echo '<table class="shipmember">
<tbody>';
echo '<tr>
<td>Nom complet</td>
<td>'.$shipmember['Prenom'].' '.$shipmember['Nom'].'</td>
</tr>';
echo '<tr>
<td>Entreprise</td>
<td>'.$shipmember['Entreprise'].'</td>
</tr>';
echo '<tr>
<td>Adresse</td>
<td>'.$shipmember['Rue'].' - '.$shipmember['Code_postal'].' '.$shipmember['Ville'].' - '.$shipmember['Libelle_pays'].'</td>
</tr>';
echo '<tr>
<td>Téléphone</td>
<td>'.$shipmember['Telephone'].'</td>
</tr>';
echo '<tr>
<td>Email</td>
<td>'.$shipmember['Email'].'</td>
</tr>';
echo '<tr>
<td>Date création du compte</td>
<td>'.Formatage_date($shipmember['Date_creation_compte']).'</td>
</tr>';
echo '<tr>
<td>Niveau d\'accès</td>
<td> <form method="POST" action="shipmembers.php">
<input name="acces" type="number" max="99" min="0" value="'.$shipmember['Niveau_acces'].'" style="max-width:20%">
<button type="submit" style="font-size: 12px"> Valider </button>
</form>
</td>
</tr>';
echo '<tr>
<td>Bateaux accessibles</td>
<td>';
if ($nb_bateaux == 0) echo '<i>Aucun...</i>';
else
{
for ($i=0; $i<$nb_bateaux; $i ++)
{
echo $bateaux[$i]['Nom'].'<br />';
}
}
echo '</td>
</tr>';
echo '</tbody>
</table>';
echo '<div class="boutons_bas_de_page">';
echo '<a title="" href="shipmembers.php?action=navigation&destination=Administration">Retour à la liste des ShipMembers</a>';
echo '</div>';
echo '</div>';
break;
}
//************************************************************************************************************************
case "Profil":
@@ -1705,12 +1472,10 @@ Init_session(basename($_SERVER['SCRIPT_NAME'])); // Fonction ouvrant la session
echo '<div class="boutons_bas_de_page">';
echo Ajouter_lien_modif_buttons('shipmember','profil','bas_de_page','modifier_a_texte');
echo '<a title="'.t("Accéder au menu de modification de vos informations...").'" href="shipmembers.php?action=navigation&destination=Modifier_profil">
'.t("Modifier").'
</a>';
echo Ajouter_lien_modif_buttons('shipmember','profil','bas_de_page','retour_a_texte');
echo '<a title="'.t("Retour à mon espace ShipMember...").'" href="shipmembers.php?action=navigation&destination=Accueil">
'.t("Retour").'
</a>';