This commit is contained in:
cbo 2024-10-04 16:18:34 +00:00
parent a65eb6a5e6
commit 7cdae26c7d
15 changed files with 195 additions and 120 deletions

View File

@ -24,7 +24,7 @@ pageTitle = "Association E59"
pageName = "E59"
headerTitle = "E59"
headerSubtitle = "Rassembler pour innover"
footerText = Association E59 - v1.7 - <a href='/about/data.php'>Politique de confidentialité</a>"
footerText = Jan BELLON - E59 - v1.7 - <a href='/about/data.php'>Politique de confidentialité</a>"
[darkThemes]
0 = '.body {--text: #ffffff; --background: #0e0e0e; --panel-background: #0e0e0e; --buttons: #ffffff} textarea, .form, .select-input, .text-input, .file-input input, .date-input {border:1px solid #a0a0a0} .button, button {color: #0E0E0E}'
@ -32,4 +32,4 @@ footerText = "© Association E59 - v1.7 - <a href='/about/data.php'>Politique de
2 = '.body {--text: hsl(160, 65%, 95%); --background: hsl(160, 65%, 3%); --panel-background: hsl(160, 65%, 3%); --buttons: hsl(160, 65%, 3%)} .text-input, .date-input, .file-input input, .select-input, .select-input select, textarea, .button, button, .form {border:1px solid var(--text)}'
[lightThemes]
0 = '.body {--text: #0e0e0e; --background: #ffffff; --panel-background: #ffffff; --buttons: #fafafa} textarea, .button, button, .form, .select-input select, .select-input, .date-input, .text-input, .file-input input {border:1px solid #a0a0a0}'
0 = '.body {--text: #0e0e0e; --background: #ffffff; --panel-background: #ffffff; --buttons: #fafafa} textarea, .button, button, .form, .select-input select, .select-input, .date-input, .text-input, .file-input input {border:1px solid #a0a0a0}'

View File

@ -1,19 +0,0 @@
Étudiants en 1ère et 2ème année de BUT Réseaux et Télécoms à l'IUT de Vélizy, nous avons lancé il y a un an et demi le **Club Réseaux** de notre établissement. Grâce à une petite salle mise à notre disposition par l'IUT et du matériel que nous avons apporté ou emprunté, nous avons pu développer un espace dédié à la réalisation de divers projets informatiques.<br />
<br />
Ces projets spontanés nous ont confrontés à de nombreux défis techniques, nous obligeant à résoudre des problématiques variées et nous offrant l'opportunité d'apprendre des notions en dehors du cadre classique des cours.<br />
<br />
L'expérience nous a enseigné une leçon précieuse : pour mener à bien un projet, pas besoin d'être un expert ou un prodige. Il suffit d'être passionné par ce que l'on fait. Lorsque l'on travaille sur un projet qui nous passionne, même si le domaine est nouveau, la persévérance nous pousse bien plus loin que lorsque l'on s'engage dans un projet par obligation.<br />
<br />
Cest dans cet esprit que nous avons lancé le projet associatif **E59**. Notre ambition est de recréer lenvironnement stimulant du Club Réseaux, mais cette fois-ci ouvert à tous les étudiants passionnés par les nouvelles technologies. Nous voulons offrir un cadre enrichi, avec des ressources matérielles et financières, pour permettre à chacun de développer des projets innovants tout en apprenant.<br />
<br />
Bien que notre aventure commence à l'IUT de Vélizy, notre objectif est d'étendre ce modèle à d'autres universités et de créer un réseau de clubs axés sur différentes thématiques technologiques, comme la cybersécurité, les réseaux, le développement, le design, et bien d'autres.<br />
<br />
Nos valeurs centrales sont l'épanouissement personnel et la liberté d'entreprendre. Nous sommes convaincus que la productivité est décuplée lorsqu'une personne est épanouie, et cet épanouissement passe par la liberté de choisir les projets dans lesquels s'investir.<br />
<br />
Si ce projet vous intéresse, n'hésitez pas à nous rejoindre sur notre serveur Discord : [https://discord.gg/K6WwKYR8EV](https://discord.gg/K6WwKYR8EV).<br />
<br />
Si vous souhaitez lancer un club au sein du réseau E59, contactez-nous à [club@e59.fr](mailto:club@e59.fr), nous serons ravis d'échanger avec vous !<br />
<br />
Vive les projets !<br />
<br />
Jan

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

View File

@ -51,7 +51,7 @@ if (isset($_FILES['newPP']) && $_FILES['newPP']['error'] == 0) {
$status = "Erreur SQL";
}
} else {
$status = "Le fichier doit être au format PNG ou JPG";
$status = "Erreur lors de la mise à jour de la PP";
}
}
@ -90,7 +90,7 @@ if (isset($_FILES['newBanner']) && $_FILES['newBanner']['error'] == 0) {
$status = "Erreur SQL";
}
} else {
$status = "Le fichier doit être au format PNG ou JPG";
$status = "Erreur lors de la mise à jour de la banière";
}
}

View File

@ -84,7 +84,7 @@ $pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlData
$search = isset($_GET['search']) ? '%' . $_GET['search'] . '%' : '%%';
$sqlRequest = "SELECT adherents.ID, adherents.firstname, adherents.lastname, adherents.email, adherents.club, adherents.join_date, adherents.memberid FROM adherents WHERE (adherents.lastname LIKE :search OR adherents.firstname LIKE :search) AND adherents.etape_adhesion = 3";
$sqlRequest = "SELECT adherents.ID, adherents.firstname, adherents.lastname, adherents.email, adherents.club, adherents.join_date, adherents.memberid FROM adherents WHERE (adherents.lastname LIKE :search OR adherents.firstname LIKE :search) AND adherents.etape_adhesion = 3 ORDER BY adherents.memberid";
$request = $pdo->prepare($sqlRequest);
$request->bindParam(":search", $search);
$request->execute();

View File

@ -17,7 +17,7 @@ $mailHeaders = array(
$httpMails = array(
"test" => "Ceci est un email de test",
"rappel" => "<h3>Votre cotisation est en attente de paiement</h3><p>Votre statut de membre adhérent de la E59 débutera après paiement de la cotisation.<br><br><a href='https://e59.fr/adhesion'>e59.fr/adhesion</a><br></br>Si vous souhaitez annuler votre demande d'adhésion, contactez-nous sur Discord</p>"
"rappel" => "<h3>Votre cotisation est en attente de paiement</h3><p>Votre statut de membre adhérent de la E59 débutera après paiement de la cotisation à l'adresse <a href='https://e59.fr/adhesion'>e59.fr/adhesion</a><br></br>Si vous souhaitez annuler votre demande d'adhésion, contactez-nous sur Discord</p>"
);
$altMails = array(

BIN
html/assets/pp/15.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -116,6 +116,11 @@ $pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlData
</div>
<div class="second-panel">
<div class="content">
<h2>Apprendre, Créer, Grandir</h2>
<div>Bienvenue sur le site de la E59, une communauté d'étudiants passionnés par l'informatique.</div>
<div>A travers des projets collaboratifs, nous explorons des technologies et développons des compétences pour façonner nos propres parcours.</div>
<div>Chaque membre a l'opportunité de découvrir, construire et partager dans un environnement stimulant.</div>
<div>Ensemble, nous transformons notre passion en expertise.</div>
<!--<iframe src="https://discord.com/widget?id=1029821278330302625&theme=dark" width="350" height="500" allowtransparency="true" frameborder="0" sandbox="allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts"></iframe>-->
<h2>Nos dernières actualités</h2>
<div class="articles-list">
@ -130,11 +135,11 @@ $pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlData
}
?>
</div>
<div class="googleadbox">
<!--<div class="googleadbox">
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5492094351136590" crossorigin="anonymous"></script>
<ins class="adsbygoogle" data-ad-client="ca-pub-5492094351136590" data-ad-slot="6694793177"></ins>
<script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
</div>
</div>-->
</div>
</main>
<footer>

View File

@ -0,0 +1,80 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Oscillating Circle with Trajectory Reset</title>
<style>
body {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100vh;
}
canvas {
border: 1px solid black;
}
</style>
</head>
<body>
<h1>Oscillating Circle with Trajectory Reset</h1>
<label for="freqX">Frequency X: </label>
<input type="number" id="freqX" value="1">
<label for="freqY">Frequency Y: </label>
<input type="number" id="freqY" value="1">
<canvas id="canvas" width="500" height="500"></canvas>
<script>
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
let freqX = 1;
let freqY = 1;
let time = 0;
const updateFrequency = () => {
freqX = parseInt(document.getElementById("freqX").value);
freqY = parseInt(document.getElementById("freqY").value);
resetCanvas(); // Efface la trajectoire précédente
};
document.getElementById("freqX").addEventListener("input", updateFrequency);
document.getElementById("freqY").addEventListener("input", updateFrequency);
const animate = () => {
// Ne pas effacer tout le canvas pour laisser la trajectoire
const x = 250 + 200 * Math.sin(freqX * time);
const y = 250 + 200 * Math.cos(freqY * time);
// Dessine le cercle
ctx.beginPath();
ctx.arc(x, y, 2, 0, 2 * Math.PI);
ctx.fillStyle = 'blue';
ctx.fill();
time += 0.01; // Vitesse de rotation
requestAnimationFrame(animate);
};
// Réinitialise le canvas et le temps
const resetCanvas = () => {
ctx.clearRect(0, 0, canvas.width, canvas.height); // Efface tout le canvas
time = 0; // Réinitialise le temps
initCanvas(); // Redessine le fond
};
// Initialise le canvas avec un fond blanc
const initCanvas = () => {
ctx.fillStyle = 'white';
ctx.fillRect(0, 0, canvas.width, canvas.height);
};
initCanvas();
animate();
</script>
</body>
</html>

View File

@ -255,11 +255,11 @@ if (isset($_GET['article']) && filter_var($_GET['article'], FILTER_VALIDATE_INT)
}
}
?>
<div class="googleadbox">
<!--<div class="googleadbox">
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5492094351136590" crossorigin="anonymous"></script>
<ins class="adsbygoogle" data-ad-client="ca-pub-5492094351136590" data-ad-slot="6694793177"></ins>
<script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
</div>
</div>-->
</div>
</main>
<footer>

View File

@ -46,98 +46,107 @@ if (isset($data['id'])) {
$responseData = json_decode($response, true);
if (isset($responseData['id']) && $responseData['status'] == 'PAID') {
$date = date('Y-m-d H:i:s', strtotime($responseData['date']));
$description = $responseData['description'];
$username = substr($description, strpos($description, '@') + 1);
$request = $pdo->prepare("SELECT ID, email FROM users WHERE username = :username");
$request->bindParam(":username", $username);
$request->execute();
$userid = $request->fetchAll(PDO::FETCH_ASSOC);
if (strpos($description, 'BUY') === 0) {
// Récupérer les trois lettres après PAY
$product = substr($description, 3, 3);
$type = 2;
$mailSubject = "Validation de paiement";
// Vérifier le type d'article
if ($product === 'ADH') {
$product_id = 1; // Article de type 1
$pay_action = "payé son adhésion de 1 EUR";
if ($userid) {
$sql = "SELECT club FROM adherents WHERE ID = :adherentID";
$clubIDStmt = $pdo->prepare($sql);
$clubIDStmt->bindParam(':adherentID', $adherentID, PDO::PARAM_INT);
$clubIDStmt->execute();
$clubIDResult = $clubIDStmt->fetchAll(PDO::FETCH_ASSOC);
$clubFormatted = str_pad($clubIDResult[0]['club'], 2, "0", STR_PAD_LEFT);
$sql = "SELECT ID FROM adherents WHERE memberid LIKE '59" . $clubFormatted . "%'";
$clubMemberIDStmt = $pdo->prepare($sql);
$clubMemberIDStmt->execute();
$clubMemberIDList = $clubMemberIDStmt->fetchAll(PDO::FETCH_ASSOC);
$clubMemberID = sizeof($clubMemberIDList) + 1;
$idFormatted = str_pad($clubMemberID, 2, "0", STR_PAD_LEFT);
$memberID = "59" . $clubFormatted . $idFormatted;
$request = $pdo->prepare("UPDATE adherents SET etape_adhesion = 3, memberid = :memberid WHERE userid = :userid");
$request->bindParam(":memberid", $userid[0]['ID']);
$request->bindParam(":userid", $userid[0]['ID']);
$request->execute();
$request = $pdo->prepare("UPDATE users SET role = 10 WHERE ID = :userid");
$request->bindParam(":userid", $userid[0]['ID']);
$request->execute();
$mailBody = "Nous avons bien recu votre cotisation de 1 EUR. Votre carte membre est consultable à la page e59.fr/adhesion .";
}
} else {
$product_id = null; // Cas où le type n'est pas ADH
$pay_action = "payé un truc à " . $responseData['amount'] . " EUR";
$mailBody = "Nous avons bien recu votre paiement de " . $responseData['amount'] . " EUR";
}
} elseif (strpos($description, 'DON') === 0) {
// Article de type NULL pour les chaînes qui commencent par DON
$product_id = null;
$pay_action = "fait un don de " . $responseData['amount'] . " EUR";
$type = 1;
$mailSubject = "Merci pour votre don";
$mailBody = "Nous vous remercions pour votre don de " . $responseData['amount'] . " EUR";
} else {
// Si la chaîne ne commence ni par PAY ni par DON
$product_id = null;
}
// Récupérer le nom d'utilisateur après le @
$request = $pdo->prepare("INSERT INTO checkouts (amount, reference, date, description, checkout_id, status, transaction_id, userid, type, product) VALUES (:amount, :reference, :date, :description, :checkout_id, :status, :transaction_id, :userid, :type, :product)");
$request->bindParam(":amount", $responseData['amount']);
$sqlRequest = "SELECT ID FROM checkouts WHERE reference = :reference";
$request = $pdo->prepare($sqlRequest);
$request->bindParam(":reference", $responseData['checkout_reference']);
$request->bindParam(":date", $date);
$request->bindParam(":description", $responseData['description']);
$request->bindParam(":checkout_id", $responseData['id']);
$request->bindParam(":status", $responseData['status']);
$request->bindParam(":transaction_id", $responseData['transaction_id']);
$request->bindParam(":userid", $userid[0]['ID']);
$request->bindParam(":type", $type);
$request->bindParam(":product", $product_id);
$request->execute();
$result = $request->fetchAll(PDO::FETCH_ASSOC);
if ($result) {
exit();
} else {
$date = date('Y-m-d H:i:s', strtotime($responseData['date']));
$from = "sumup@e59.fr";
$fromName = "Sumup E59";
$to = "finances@e59.fr";
$fromName = "Paiements E59";
$subject = "Nouveau paiement";
$body = "$username a fait un paiement de " . $responseData['amount'] . " EUR.";
$altbody = "$username a fait un paiement de " . $responseData['amount'] . " EUR.";
sendMail($from, $fromName, $to, $subject, $body, $altbody);
$from = "no-reply@e59.fr";
$fromName = "Association E59";
$to = $userid[0]['email'];
sendMail($from, $fromName, $to, $mailSubject, $mailBody, $mailBody);
$description = $responseData['description'];
$username = substr($description, strpos($description, '@') + 1);
$request = $pdo->prepare("SELECT ID, email FROM users WHERE username = :username");
$request->bindParam(":username", $username);
$request->execute();
$userid = $request->fetchAll(PDO::FETCH_ASSOC);
if (strpos($description, 'BUY') === 0) {
// Récupérer les trois lettres après PAY
$product = substr($description, 3, 3);
$type = 2;
$mailSubject = "Confirmation de paiement";
// Vérifier le type d'article
if ($product === 'ADH') {
$product_id = 1; // Article de type 1
$pay_action = "payé son adhésion de 1 EUR";
if ($userid) {
$sql = "SELECT club FROM adherents WHERE ID = :adherentID";
$clubIDStmt = $pdo->prepare($sql);
$clubIDStmt->bindParam(':adherentID', $adherentID, PDO::PARAM_INT);
$clubIDStmt->execute();
$clubIDResult = $clubIDStmt->fetchAll(PDO::FETCH_ASSOC);
$clubFormatted = str_pad($clubIDResult[0]['club'], 2, "0", STR_PAD_LEFT);
$sql = "SELECT ID FROM adherents WHERE memberid LIKE '59" . $clubFormatted . "%'";
$clubMemberIDStmt = $pdo->prepare($sql);
$clubMemberIDStmt->execute();
$clubMemberIDList = $clubMemberIDStmt->fetchAll(PDO::FETCH_ASSOC);
$clubMemberID = sizeof($clubMemberIDList) + 1;
$idFormatted = str_pad($clubMemberID, 2, "0", STR_PAD_LEFT);
$memberID = "59" . $clubFormatted . $idFormatted;
$request = $pdo->prepare("UPDATE adherents SET etape_adhesion = 3, memberid = :memberid WHERE userid = :userid");
$request->bindParam(":memberid", $memberID);
$request->bindParam(":userid", $userid[0]['ID']);
$request->execute();
$request = $pdo->prepare("UPDATE users SET role = 10 WHERE ID = :userid");
$request->bindParam(":userid", $userid[0]['ID']);
$request->execute();
$mailBody = "Nous avons bien recu votre cotisation de 1 EUR. Votre carte membre est consultable à la page e59.fr/adhesion .";
}
} else {
$product_id = null; // Cas où le type n'est pas ADH
$pay_action = "payé un truc à " . $responseData['amount'] . " EUR";
$mailBody = "Nous avons bien recu votre paiement de " . $responseData['amount'] . " EUR";
}
} elseif (strpos($description, 'DON') === 0) {
// Article de type NULL pour les chaînes qui commencent par DON
$product_id = null;
$pay_action = "fait un don de " . $responseData['amount'] . " EUR";
$type = 1;
$mailSubject = "Merci pour votre don";
$mailBody = "Nous vous remercions pour votre don de " . $responseData['amount'] . " EUR";
} else {
// Si la chaîne ne commence ni par PAY ni par DON
$product_id = null;
}
// Récupérer le nom d'utilisateur après le @
$request = $pdo->prepare("INSERT INTO checkouts (amount, reference, date, description, checkout_id, status, transaction_id, userid, type, product) VALUES (:amount, :reference, :date, :description, :checkout_id, :status, :transaction_id, :userid, :type, :product)");
$request->bindParam(":amount", $responseData['amount']);
$request->bindParam(":reference", $responseData['checkout_reference']);
$request->bindParam(":date", $date);
$request->bindParam(":description", $responseData['description']);
$request->bindParam(":checkout_id", $responseData['id']);
$request->bindParam(":status", $responseData['status']);
$request->bindParam(":transaction_id", $responseData['transaction_id']);
$request->bindParam(":userid", $userid[0]['ID']);
$request->bindParam(":type", $type);
$request->bindParam(":product", $product_id);
$request->execute();
$from = "sumup@e59.fr";
$fromName = "Sumup E59";
$to = "finances@e59.fr";
$fromName = "Paiements E59";
$subject = "Nouveau paiement";
$body = "$username a $pay_action";
$altbody = "$username a $pay_action";
sendMail($from, $fromName, $to, $subject, $body, $altbody);
$from = "no-reply@e59.fr";
$fromName = "Association E59";
$to = $userid[0]['email'];
sendMail($from, $fromName, $to, $mailSubject, $mailBody, $mailBody);
}
}
}
?>

View File

@ -18,7 +18,7 @@ body {
font-size: 20px;
color: var(--text);
margin: 0;
line-height: 1.3;
line-height: 1.5;
letter-spacing: 0.02em;
}

View File

@ -33,7 +33,7 @@ function sendMail($from, $fromName, $to, $subject, $body, $altbody) {
$mail->Host = 'outlook.office365.com'; // Serveur SMTP Exchange
$mail->SMTPAuth = true; // Activer l'authentification SMTP
$mail->Username = 'smtp@e59.fr'; // Nom d'utilisateur SMTP
$mail->Password = 'WTFdoto5678TFWT'; // Mot de passe SMTP
$mail->Password = 'uhwG2EtjmyQ3YpF9S4Bsxzf6r'; // Mot de passe SMTP
$mail->SMTPSecure = 'tls'; // Activer le cryptage TLS
$mail->Port = 587; // Port TCP pour TLS
$mail->CharSet = "UTF-8";