Skip to content
Extraits de code Groupes Projets
Valider 8f2609e6 rédigé par Eliah REBSTOCK's avatar Eliah REBSTOCK
Parcourir les fichiers

merge de dev-contact dans dev

parents 081db149 7b5971f5
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion!21Merge de Dev dans Master
<?php
class ContactController extends Controller { // classe de contrôleur pour l'inscription au site
public function displayValid() { // la fonction d'affichage du formulaire
$this->view->display();
}
public function displayForm() { // la fonction d'affichage du formulaire
$this->view->display();
}
public function send() { // vérifie les données de contact
if(!isset($_POST['nom']) || !isset($_POST['prenom']) || !isset($_POST['email']) || !isset($_POST['message'])) { // si l'une des données manque, erreur
//appeler une fonction d'erreur
echo "<h1>Erreur : variables absentes</h1>";
die();
}
$data = $_POST;
if($data['nom'] == "") {
session_start(); // on démarre une session pour avoir accès aux variables superglobales de session
$_SESSION["contactErrCode"] = 2; // on stocke le code d'erreur
header('Location:../contact'); // on redirige vers la page de formulaire (il faut faire un retour dans le dossier parent pour que ça fonctionne)
}
if($data['prenom'] == "") {
session_start(); // on démarre une session pour avoir accès aux variables superglobales de session
$_SESSION["contactErrCode"] = 3; // on stocke le code d'erreur
header('Location:../contact'); // on redirige vers la page de formulaire (il faut faire un retour dans le dossier parent pour que ça fonctionne)
}
if(!preg_match("#^[a-z0-9._-]+(@|%40)[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $data['email'])) {
session_start(); // on démarre une session pour avoir accès aux variables superglobales de session
$_SESSION["contactErrCode"] = 4; // on stocke le code d'erreur
header('Location:../contact'); // on redirige vers la page de formulaire (il faut faire un retour dans le dossier parent pour que ça fonctionne)
}
if($data['message'] == null) {
session_start(); // on démarre une session pour avoir accès aux variables superglobales de session
$_SESSION["contactErrCode"] = 5; // on stocke le code d'erreur
header('Location:../contact'); // on redirige vers la page de formulaire (il faut faire un retour dans le dossier parent pour que ça fonctionne)
}
$sender = $data['prenom'];
if($data['pseudo'] != "") $sender .= " '".$data['pseudo']."'";
$sender .= " ".$data['nom'];
$header = "From: \"".$sender."\"<".$data['email'].">\n";
$header.= "Reply-to: \"".$sender."\"<".$data['email'].">\n";
$header.= "MIME-Version: 1.0\n";
$success = mail(
"vbochet@gmail.com", // adresse email du destinataire
"Message envoyé via Classements Ludiques", // objet du mail
htmlspecialchars($data['message']), // message du mail
$header);// on réalise l'inscription à l'aide d'une méthode de la classe Register
if ($success == 1) {
header('Location:valid'); // on redirige vers la page OK
}
else {
echo "<h1>Erreur : l'envoi du mail a échoué</h1>";
}
}
}
...@@ -124,6 +124,21 @@ class Router ...@@ -124,6 +124,21 @@ class Router
$result["action"] = "save"; // "save" pour appeler la méthode d'enregistrement dans la BDD $result["action"] = "save"; // "save" pour appeler la méthode d'enregistrement dans la BDD
} }
/*** contact au site ***/
else if($parts[0] == "contact" && count($parts) == 1) { // formulaire de connexion
$result["controller"] = "Contact";
$result["action"] = "displayForm"; // "displayForm" pour afficher le formulaire
}
else if($parts[0] == "contact" && count($parts) == 2 && $parts[1] == "valid") { // connexion réussie
$result["controller"] = "Contact";
$result["action"] = "displayValid"; // "displayValid" pour afficher la page avec le message de réussite
}
else if($parts[0] == "contact" && count($parts) == 2 && $parts[1] == "send") { // réalisation de l'inscription dans la BDD
$result["controller"] = "Contact";
$result["action"] = "send"; // "save" pour appeler la méthode d'enregistrement dans la BDD
}
/*** Ajout de partie ***/ /*** Ajout de partie ***/
else if ($parts[0] == "add_partie" && count($parts) == 1) { else if ($parts[0] == "add_partie" && count($parts) == 1) {
$result["controller"] = "Partie"; $result["controller"] = "Partie";
......
<?php
session_start();
$page_title = "Formulaire de contact";
include(ROOT."/app/view/Includes/header.include.html");
?>
<?php
if(isset($_SESSION['contactErrCode'])) { // si message d'erreur
$errCode = $_SESSION['contactErrCode'];
if($errCode == 2) { // on détermine le message
$errMsg = '<h3>Veuillez indiquer votre nom !</h3>';
}
elseif($errCode == 3) {
$errMsg = '<h3>Veuillez indiquer votre prénom !</h3>';
}
elseif($errCode == 4) {
$errMsg = '<h3>Veuillez indiquer une adresse mail valide !</h3>';
}
elseif($errCode == 5) {
$errMsg = '<h3>Veuillez indiquer votre message !</h3>';
}
echo '<article class="msg-erreur">'.$errMsg.'</article>'; // on affiche le message
unset($_SESSION['contactErrCode']); // on retire la variable de session
}
?>
<article>
<h2>Formulaire de contact</h2>
<div class="inscription-form">
<form method="post" action="contact/send" enctype="multipart/form-data" onsubmit="return checkForm();">
<div class="form-line">
<div class="validation-container-left">
<label for="pseudo">Pseudo : </label>
<input type="text" name="pseudo" id="pseudo" />
</div>
</div>
<div class="form-line">
<div class="validation-container-left">
<label for="nom">Nom* : </label>
<input type="text" required="" name="nom" id="nom" />
</div>
<div class="validation-container">
<span id="rsp_nom" class="validation-container-content"></span>
<input type="checkbox" disabled name="valid_nom" class="validation-checkbox" />
</div>
</div>
<div class="form-line">
<div class="validation-container-left">
<label for="prenom">Prénom* : </label>
<input type="text" required="" name="prenom" id="prenom" />
</div>
<div class="validation-container">
<span id="rsp_prenom" class="validation-container-content"></span>
<input type="checkbox" disabled name="valid_prenom" class="validation-checkbox" />
</div>
</div>
<div class="form-line">
<div class="validation-container-left">
<label for="email">Adresse e-mail* : </label>
<input type="email" required="" name="email" id="email" onchange="if(this.value != '') checkEmail(this.value, this.id);" />
</div>
<div class="validation-container">
<span id="rsp_email" class="validation-container-content"></span>
<input type="checkbox" disabled name="valid_email" class="validation-checkbox" />
</div>
</div>
<div class="form-line">
<div class="validation-container-left">
<label for="description">Votre message* : </label>
<textarea required="" name="message" id="message"></textarea>
</div>
<div class="validation-container">
<span id="rsp_message" class="validation-container-content"></span>
<input type="checkbox" disabled name="valid_message" class="validation-checkbox" />
</div>
</div>
<div class="submit">
<input type="reset" name="reset" value="Réinitialiser">
<input type="submit" name="submit" value="Envoyer">
</div>
</form>
</div>
</article>
<script type="text/javascript" src="<?php echo BASE_URL; ?>/js/jquery.min.js"></script>
<script type="text/javascript" src="<?php echo BASE_URL; ?>/js/verif_form_contact.js"></script>
<?php include(ROOT."/app/view/Includes/footer.include.html"); ?>
<?php
$page_title = "Message envoyé";
include(ROOT."/app/view/Includes/header.include.html");
?>
<article class="msg-valide"><h2>Votre message a été envoyé !</h2></article>
<article>
<p>Vous pouvez continuer à naviguer sur notre site. :)</p>
</article>
<?php include(ROOT."/app/view/Includes/footer.include.html"); ?>
function checkEmail(value, target) {
var regex = /^[a-z0-9._-]+(@|%40)[a-z0-9._-]{2,}\.[a-z]{2,4}$/;
var success = regex.test(value);
if (success) {
//validation OK
$('#rsp_'+target).text("Ok");
$('#rsp_'+target).parent().css("display","none");
$('input[name="valid_'+target+'"]').prop('checked',true);
}
else {
//invalidation
$('#rsp_'+target).text("Format invalide");
$('#rsp_'+target).parent().css("display","flex");
$('input[name="valid_'+target+'"]').prop('checked',false);
$('#'+target).focus();
}
}
function checkForm() {
if($('#nom').val() == "") {
alert("Veuillez entrer votre nom dans le formulaire");
$('#nom').focus();
return false;
}
if($('#prenom').val() == "") {
alert("Veuillez entrer votre prénom dans le formulaire");
$('#prenom').focus();
return false;
}
if($('#email').val() == "" || !$('input[name="valid_email"]').is(':checked')) {
alert("Veuillez indiquer une adresse e-mail valide");
$('#email').focus();
return false;
}
if($('#message').val() == "") {
alert("Veuillez entrer votre message");
$('#message').focus();
return false;
}
return true;
}
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter