Added join (adhesion) form

This commit is contained in:
Samuel Ortion 2021-06-10 21:02:55 +02:00
parent 5a70032bb3
commit 0e82d768d5
2 changed files with 144 additions and 0 deletions

59
public/join/index.php Normal file
View File

@ -0,0 +1,59 @@
<?php
session_start();
$root = realpath($_SERVER['DOCUMENT_ROOT']);
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Les Cocottes Minutes</title>
<link rel="stylesheet" href="/styles/style.css">
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="//unpkg.com/leaflet@1.7.1/dist/leaflet.css"
integrity="sha512-xodZBNTC5n17Xt2atTPuE1HxjVMSvLVW9ocqUKLsCC5CXdbqCmblAshOMAS6/keqq/sMZMZ19scR4PsZChSR7A=="
crossorigin=""/>
</head>
<body>
<div class="container">
<?php include("$root/menu.php");?>
<?php include("$root/header.php");?>
</div>
<section>
<div class="container flip reduced"></div>
<div class="container join">
<h2>Adhérer aux Cocottes Minutes</h2>
<form action="join.php" method="POST">
<label for="name">Nom*</label>
<input type="text" name="name" id="name" placeholder="Mister Cot" required>
<label for="number">Numéro étudiant</label>
<input type="text" name="number" id="number">
<label for="email">Email*</label>
<input type="email" name="email" id="email" placeholder="cot.cot.cot@cocottes-minutes.fr" required>
<input type="submit" name="submit" value="Je deviens une Cocotte !">
</form>
<p>* obligatoire</p>
<?php
if (isset($_SESSION['error_msg']) && $_SESSION['error_msg'] != "")
{
?>
<div class="error">
<?=$_SESSION['error_msg']?>
</div>
<?php
$_SESSION['error_msg'] = "";
}
?>
</div>
<div class="container flip reduced"></div>
</section>
</div>
<?php include("$root/footer.php");?>
<script src="/scripts/script.js"></script>
<script src="//unpkg.com/leaflet@1.7.1/dist/leaflet.js"
integrity="sha512-XQoYMqMTK8LvdxXYG3nZ448hOEQiglfqkJs1NOQV44cWnUrBc8PkAOcXy20w0vlaXaVUearIOBhiXZ5V3ynxwA=="
crossorigin=""></script>
<script src="/scripts/map.js"></script>
</body>
</html>

85
public/join/join.php Normal file
View File

@ -0,0 +1,85 @@
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$root = realpath($_SERVER['DOCUMENT_ROOT']);
session_start();
function create_member($name, $number, $email)
{
$root = realpath($_SERVER['DOCUMENT_ROOT']);
require("$root/config.php");
try{
$db = new PDO("pgsql:host=$host;dbname=$database",
$user,
$password,
array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
));
}catch (Exception $e){
die("Error : ".$e->getMessage());
}
// Check if table exitst
$req = $db->prepare('CREATE TABLE IF NOT EXISTS members (id SERIAL PRIMARY KEY, name varchar(125) NOT NULL UNIQUE, student_number varchar(8) UNIQUE, email varchar(125) UNIQUE)');
$req->execute();
if (strlen($name) > 125)
{
$_SESSION['error_msg'] .= "Le nom entré est trop long.\n";
}
if (strlen($email) > 125)
{
$_SESSION['error_msg'] .= "L'email entré est trop long.\n";
}
if (strlen($number) > 8)
{
$_SESSION['error_msg'] .= "Votre numéro d'étudiant semble incorrect (il comporte plus de 8 caractères.\n";
}
if ($_SESSION['error_msg'] == "")
{
try {
$req = $db->prepare('INSERT INTO members (name, student_number, email) VALUES (?, ?, ?)');
$req->execute(array($name, $number, $email));
} catch (Exception $e) {
$_SESSION['error_msg'] .= $e->getMessage();
}
}
}
$_SESSION['error_msg'] = "";
if (isset($_POST['submit']))
{
if (isset($_POST['name']) and $_POST['name'] != "")
{
$name = $_POST['name'];
$_SESSION['name'] = $name;
} else
{
$_SESSION['error_msg'] .= "Vous n'avez pas entré de nom.\n";
}
if (isset($_POST['number']))
{
$number = $_POST['number'];
} else {
$number = "";
}
if (isset($_POST['email']) and $_POST['email'] != "")
{
$email = $_POST['email'];
} else {
$_SESSION['error_msg'] .= "Vous n'avez pas entré d'adresse mail.\n";
}
} else
{
$_SESSION['error_msg'] .= "Attention, vous n'avez pas soumis le formulaire d'adhésion.\n";
}
if ($_SESSION['error_msg'] == "")
{
create_member($name, $number, $email);
}
if ($_SESSION['error_msg'] != "")
{
$_SESSION['error_msg'] .= "Veuillez réessayer.";
header('Location: /join');
} else {
header('Location: /');
}
?>