Commit d9bfaea2 authored by DavidLibeau's avatar DavidLibeau
Browse files

Add pages, fix bugs

parent a1793111
RewriteEngine on
RewriteRule ^([a-zA-Z0-9]+)$ /resrc/view/page.php?page=$1 [L]
\ No newline at end of file
......@@ -35,10 +35,28 @@
-webkit-box-shadow: 0 0 20px 0 rgba(0,0,0,0.5);
box-shadow: 0 0 20px 0 rgba(0,0,0,0.5);
}
/** #homeBtn **/
#homeBtn {
position: fixed;
top: 0;
left: 0;
padding: 10px;
color: white;
}
#homeBtn>a:hover{
text-decoration: none;
color: white;
opacity: 0.8;
}
</style>
</head>
<body>
<?php if(!isset($_GET["iframe"])){ ?>
<nav id="homeBtn"><a href="/#panels"><i class="fa fa-arrow-left" aria-hidden="true"></i> DavidLibeau.fr</a></nav>
<?php } ?>
<main>
<h1>CV <small>de David Libeau</small></h1>
<nav><a href="CV_DavidLibeau.pdf"><i class="fa fa-download" aria-hidden="true" style="margin-right:4px"></i>Télécharger au format PDF</a></nav>
......
......@@ -54,7 +54,7 @@
<div></div>
</li>
<li>
<a href="CV" target="_blank" data-target="iframe">
<a href="CV/" target="_blank" data-target="iframe">
<h2>CV</h2>
<p>Mon Curriculum Vitae, pour en savoir plus...</p>
</a>
......@@ -78,8 +78,8 @@
<p>Vous pouvez me contacter par différents moyens :</p>
<h3>Via un formulaire de contact</h3>
<ul class="extLinks">
<li><a href="/ContactFr">En français</a></li>
<li><a href="/ContactEn">In english</a></li>
<li><a href="/Bonjour">En français</a></li>
<li><a href="/Hello">In english</a></li>
</ul>
<h3>Via un réseau social</h3>
<ul class="extLinks">
......
<a style="opacity: 0.5; color: #808080; text-decoration: none; font-style: italic; margin-top: -50px" href="../Hello">English form</a>
<?php
/*
********************************************************************************************
CONFIGURATION
********************************************************************************************
*/
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = 'contact@davidlibeau.fr';
// copie ? (envoie une copie au visiteur)
$copie = 'oui';
// Action du formulaire (si votre page a des paramètres dans l'URL)
// si cette page est index.php?page=contact alors mettez index.php?page=contact
// sinon, laissez vide
$form_action = '';
// Messages de confirmation du mail
$message_envoye = "Votre message nous est bien parvenu !";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";
// Message d'erreur du formulaire
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";
function NoSpamQuestion($mode = 'ask', $answer = 0)
{
$array_pictures = array(); $j = 0;
$array_pictures[$j]['num'] = $j;
$array_pictures[$j]['question'] = "Quelle lettre est en double dans le prénom du propriétaire de ce site web ? ";
$array_pictures[$j]['answer'] = "d";
$j++;
$array_pictures[$j]['num'] = $j;
$array_pictures[$j]['question'] = "Quel adjectif, qui caractérise très bien ce site web, est présent dans le nom de famille du propriétaire de ce site web ? ";
$array_pictures[$j]['answer'] = "beau";
$j++;
$array_pictures[$j]['num'] = $j;
$array_pictures[$j]['question'] = "Quel est le rang (dans l'alphabet) de la première (et dernière) lettre du prénom du propriétaire de ce site web ? ";
$array_pictures[$j]['answer'] = "4";
$j++;
if ($mode != 'ans')
{
// on est en mode 'tirer au sort', on tire une image aléatoire
$lambda = rand(0, count($array_pictures)-1);
return $array_pictures[$lambda];
}
else
{
// on demande une vraie réponse
foreach($array_pictures as $i => $array)
{
if ($i == $answer)
{
return $array;
break;
};
};
}; // Fin if ($mode != 'ans')
};
/*
********************************************************************************************
FIN DE LA CONFIGURATION
********************************************************************************************
*/
// on tire au sort une question
$nospam = NoSpamQuestion();
/*
* cette fonction sert à nettoyer et enregistrer un texte
*/
function Rec($text)
{
$text = htmlspecialchars(trim($text), ENT_QUOTES);
if (1 === get_magic_quotes_gpc())
{
$text = stripslashes($text);
}
$text = nl2br($text);
return $text;
};
/*
* Cette fonction sert à vérifier la syntaxe d'un email
*/
function IsEmail($email)
{
$value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email);
return (($value === 0) || ($value === false)) ? false : true;
}
// formulaire envoyé, on récupère tous les champs.
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
$antispam_h = (isset($_POST['antispam_h'])) ? Rec($_POST['antispam_h']) : '';
$antispam_r = (isset($_POST['antispam_r'])) ? Rec($_POST['antispam_r']) : '';
// On va vérifier les variables et l'email ...
$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
$err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin
if (isset($_POST['envoi']))
{
// On demande la vraie réponse
$verif_nospam = NoSpamQuestion('ans', $antispam_r);
if (strtolower($antispam_h) != strtolower($verif_nospam['answer']))
{
// le formulaire s'arrête ici
echo '<p>Vous n\'avez pas répondu correctement à la question antispam...</p>';
}
else
{
if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
{
$objet="[FORMULAIRE] ".$objet;
// les 4 variables sont remplies, on génère puis envoie le mail
$headers = 'From:'.$nom.' <'.$email.'>' . "\r\n";
//$headers .= 'Reply-To: '.$email. "\r\n" ;
//$headers .= 'X-Mailer:PHP/'.phpversion();
// envoyer une copie au visiteur ?
if ($copie == 'oui')
{
$cible = $destinataire.','.$email;
}
else
{
$cible = $destinataire;
};
// Remplacement de certains caractères spéciaux
$message = str_replace("&#039;","'",$message);
$message = str_replace("&#8217;","'",$message);
$message = str_replace("&quot;",'"',$message);
$message = str_replace('<br>','',$message);
$message = str_replace('<br />','',$message);
$message = str_replace("&lt;","<",$message);
$message = str_replace("&gt;",">",$message);
$message = str_replace("&amp;","&",$message);
$message = "Message envoye par le formulaire de contact sur DavidLibeau.fr : ".$message;
// Envoi du mail
if (mail($cible, $objet, $message, $headers))
{
echo '<p>'.$message_envoye.'</p>';
}
else
{
echo '<p>'.$message_non_envoye.'</p>';
};
}
else
{
// une des 3 variables (ou plus) est vide ...
echo '<p>'.$message_formulaire_invalide.'</p>';
$err_formulaire = true;
};
};
}; // fin du if (!isset($_POST['envoi']))
if (($err_formulaire) || (!isset($_POST['envoi'])))
{
// afficher le formulaire
echo '
<form id="contact" method="post" action="'.$form_action.'">
<fieldset><legend>Qui êtes vous ?</legend>
<p><label for="nom">Nom :</label><input type="text" id="nom" name="nom" value="'.stripslashes($nom).'" tabindex="1" /></p>
<p><label for="email">Email :</label><input type="text" id="email" name="email" value="'.stripslashes($email).'" tabindex="2" /></p>
</fieldset>
<fieldset><legend>Que voulez-vous me dire ?</legend>
<p><label for="objet">Objet :</label><input type="text" id="objet" name="objet" value="'.stripslashes($objet).'" tabindex="3" /></p>
<p><label for="message">Message :</label><textarea id="message" name="message" tabindex="4" cols="30" rows="8">'.stripslashes($message).'</textarea></p>
</fieldset>
<fieldset><legend>Êtes-vous réellement humain ?</legend>
<p><label for="antispam_h">'.$nospam['question'].'</label><input type="text" name="antispam_h" id="antispam_h" /><input type="hidden" name="antispam_r" value="'.$nospam['num'].'" /></p>
</fieldset>
<div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer le formulaire !" /></div>
</form>';
};
?>
\ No newline at end of file
<?php
$title="Formulaire de Contact";
?>
\ No newline at end of file
<?php
/*
********************************************************************************************
CONFIGURATION
********************************************************************************************
*/
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = 'contact@davidlibeau.fr';
// copie ? (envoie une copie au visiteur)
$copie = 'oui';
// Action du formulaire (si votre page a des paramètres dans l'URL)
// si cette page est index.php?page=contact alors mettez index.php?page=contact
// sinon, laissez vide
$form_action = '';
// Messages de confirmation du mail
$message_envoye = "Your message has been sent!";
$message_non_envoye = "The mail sending failed, try again please.";
// Message d'erreur du formulaire
$message_formulaire_invalide = "Check that all fields are filled and that the email is correct.";
function NoSpamQuestion($mode = 'ask', $answer = 0)
{
$array_pictures = array(); $j = 0;
$array_pictures[$j]['num'] = $j;
$array_pictures[$j]['question'] = "What letter is duplicated in the first name of the owner of this website? ";
$array_pictures[$j]['answer'] = "d";
$j++;
$array_pictures[$j]['num'] = $j;
$array_pictures[$j]['question'] = "What is the rank (of the alphabet) of the first (and last) letter of the first name of the owner of this website? ";
$array_pictures[$j]['answer'] = "4";
$j++;
if ($mode != 'ans')
{
// on est en mode 'tirer au sort', on tire une image aléatoire
$lambda = rand(0, count($array_pictures)-1);
return $array_pictures[$lambda];
}
else
{
// on demande une vraie réponse
foreach($array_pictures as $i => $array)
{
if ($i == $answer)
{
return $array;
break;
};
};
}; // Fin if ($mode != 'ans')
};
/*
********************************************************************************************
FIN DE LA CONFIGURATION
********************************************************************************************
*/
// on tire au sort une question
$nospam = NoSpamQuestion();
/*
* cette fonction sert à nettoyer et enregistrer un texte
*/
function Rec($text)
{
$text = htmlspecialchars(trim($text), ENT_QUOTES);
if (1 === get_magic_quotes_gpc())
{
$text = stripslashes($text);
}
$text = nl2br($text);
return $text;
};
/*
* Cette fonction sert à vérifier la syntaxe d'un email
*/
function IsEmail($email)
{
$value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email);
return (($value === 0) || ($value === false)) ? false : true;
}
// formulaire envoyé, on récupère tous les champs.
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
$antispam_h = (isset($_POST['antispam_h'])) ? Rec($_POST['antispam_h']) : '';
$antispam_r = (isset($_POST['antispam_r'])) ? Rec($_POST['antispam_r']) : '';
// On va vérifier les variables et l'email ...
$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
$err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin
if (isset($_POST['envoi']))
{
// On demande la vraie réponse
$verif_nospam = NoSpamQuestion('ans', $antispam_r);
if (strtolower($antispam_h) != strtolower($verif_nospam['answer']))
{
// le formulaire s'arrête ici
echo '<p>You have wrongly answered the antispam question...</p>';
}
else
{
if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
{
$objet="[FORM] ".$objet;
// les 4 variables sont remplies, on génère puis envoie le mail
$headers = 'From:'.$nom.' <'.$email.'>' . "\r\n";
//$headers .= 'Reply-To: '.$email. "\r\n" ;
//$headers .= 'X-Mailer:PHP/'.phpversion();
// envoyer une copie au visiteur ?
if ($copie == 'oui')
{
$cible = $destinataire.','.$email;
}
else
{
$cible = $destinataire;
};
// Remplacement de certains caractères spéciaux
$message = str_replace("&#039;","'",$message);
$message = str_replace("&#8217;","'",$message);
$message = str_replace("&quot;",'"',$message);
$message = str_replace('<br>','',$message);
$message = str_replace('<br />','',$message);
$message = str_replace("&lt;","<",$message);
$message = str_replace("&gt;",">",$message);
$message = str_replace("&amp;","&",$message);
$message = "Message sent with the DavidLibeau.fr's contact form : ".$message;
// Envoi du mail
if (mail($cible, $objet, $message, $headers))
{
echo '<p>'.$message_envoye.'</p>';
}
else
{
echo '<p>'.$message_non_envoye.'</p>';
};
}
else
{
// une des 3 variables (ou plus) est vide ...
echo '<p>'.$message_formulaire_invalide.'</p>';
$err_formulaire = true;
};
};
}; // fin du if (!isset($_POST['envoi']))
if (($err_formulaire) || (!isset($_POST['envoi'])))
{
// afficher le formulaire
echo '
<form id="contact" method="post" action="'.$form_action.'">
<fieldset><legend>Who are you?</legend>
<p><label for="nom">Name :</label><input type="text" id="nom" name="nom" value="'.stripslashes($nom).'" tabindex="1" /></p>
<p><label for="email">Email :</label><input type="text" id="email" name="email" value="'.stripslashes($email).'" tabindex="2" /></p>
</fieldset>
<fieldset><legend>What would you like to say me?</legend>
<p><label for="objet">Object :</label><input type="text" id="objet" name="objet" value="'.stripslashes($objet).'" tabindex="3" /></p>
<p><label for="message">Message :</label><textarea id="message" name="message" tabindex="4" cols="30" rows="8">'.stripslashes($message).'</textarea></p>
</fieldset>
<fieldset><legend>Are you really a human?</legend>
<p><label for="antispam_h">'.$nospam['question'].'</label><input type="text" name="antispam_h" id="antispam_h" /><input type="hidden" name="antispam_r" value="'.$nospam['num'].'" /></p>
</fieldset>
<div style="text-align:center;"><input type="submit" name="envoi" value="Send the form!" /></div>
</form>';
};
?>
\ No newline at end of file
<?php
$title="Contact Form";
?>
\ No newline at end of file
......@@ -185,7 +185,7 @@ $("#panels a:not(#logo a)").click(function (evt) {
});
console.log($this.attr("href") + " " + $this.data("target"));
if ($this.data("target") == "iframe") {
contentframe.children("div").html("<iframe src=\"" + $this.attr("href") + "\"></iframe>");
contentframe.children("div").html("<iframe src=\"" + $this.attr("href") + "?iframe\"></iframe>");
contentframe.children("iframe").on("load",function () {
$("#contentframe .fa-refresh").remove();
});
......
html,
body {
margin: 0;
padding: 0;
font-family: "Open sans", sans-serif;
background-color: #424242;
}
a {
color: inherit;
text-decoration: none;
}
p a {
font-weight: bold;
}
a:hover {
text-decoration: underline;
color: #424242;
}
a:active {
transform: translateY(1px);
}
@font-face {
font-family: "Bebas Neue";
src: url("../font/BebasNeue.otf");
}
h1 {
margin: 0;
color: #0070c0;
padding-bottom: 10px;
}
/* Box Shadow :
box-shadow: #bababa -1px 1px, #bababa -2px 2px, #bababa -3px 3px, #bababa -4px 4px, #bababa -5px 5px;
*/
main {
max-width: 900px;
margin: auto;
margin-top: 10px;
padding: 40px;
padding-top: 10px;
background-color: white;
box-shadow: #bababa -1px 1px, #bababa -2px 2px, #bababa -3px 3px, #bababa -4px 4px, #bababa -5px 5px;
}
/** #homeBtn **/
#homeBtn {
position: fixed;
top: 0;
left: 0;
padding: 10px;
color: white;
}
#homeBtn>a:hover{
text-decoration: none;
color: white;
opacity: 0.8;
}
/** Formulaire **/
form {
margin-bottom: 60px;
}
fieldset {
border: 2px solid #0070c0;
background-color: rgba(255, 255, 255, 0.7);
margin-bottom: 10px;
-webkit-box-shadow: 0 0 5px 0 rgba(255, 255, 255, 0.8);
box-shadow: 0 0 5px 0 rgba(255, 255, 255, 0.8);
}
legend {
font-weight: bold;
font-size: 19px;
}
label {
display: inline-block;
width: 80px;
vertical-align: top;
}
fieldset:nth-child(3) label {
display: block;
width: 100%;
}
input,
textarea {
border: 1px solid #0070c0;
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
border-radius: 2px;
}
input {
width: 25%;
}
textarea {
width: 50%;
}
[type="submit"] {
padding: 10px 20px;
width: auto;
background-color: #0070c0;
color: white;
font-weight: bold;
cursor: pointer;
}
[type="submit"]:hover{
opacity: 0.8;
}
\ No newline at end of file
<?php
if(isset($_GET["page"]) && $_GET["page"]!=""){
$title="Page";
require("../../page/".$_GET["page"]."-info.php");
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8" />
<title>DavidLibeau.fr - <?php echo($title); ?></title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="theme-color" content="#0070C0">
<link rel="icon" href="/resrc/img/favicon.png" type="image/png" />
<link rel="stylesheet" href="/resrc/style/page.css" />
<link href="https://dav.li/fontawesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />
</head>
<body>
<?php if(!isset($_GET["iframe"])){ ?>
<nav id="homeBtn"><a href="/#panels"><i class="fa fa-arrow-left" aria-hidden="true"></i> DavidLibeau.fr</a></nav>
<?php } ?>
<main>
<h1><?php echo($title); ?></h1>
<?php require("../../page/".$_GET["page"]."-body.php"); ?>
</main>