First components for project - User Interface
9
connexion.php
Normal file
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
include_once('./vue/header.html');
|
||||
include_once('./modele/connexion_sql.php');
|
||||
|
||||
if (!isset($_GET['section']) OR $_GET['section'] == 'index')
|
||||
{
|
||||
include_once('./controleur/membre/connexion/index.php');
|
||||
}
|
||||
include_once('./vue/footer.html');
|
||||
5
contact.php
Normal file
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
include_once('./vue/header.html');
|
||||
include_once('./vue/information/contact/index.html');
|
||||
include_once('./vue/footer.html');
|
||||
?>
|
||||
75
controleur/membre/connexion/index.php
Normal file
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
include_once('./modele/membre/connexion.php');
|
||||
$titre="Connexion";
|
||||
if ($id!=0) erreur(ERR_IS_CO);
|
||||
if (!isset($_POST['pseudo'])) { //Page de formulaire
|
||||
?>
|
||||
|
||||
<div class="container-fluid">
|
||||
<section id="content" class="page-content">
|
||||
<div class="container text-center">
|
||||
<h2>Connexion</h2>
|
||||
<form method="post" action="connexion.php">
|
||||
<br><fieldset>
|
||||
<label class="labelI" for="pseudo">Pseudo :</label><input name="pseudo" type="text" id="pseudo" /><br>
|
||||
<label class="labelI" for="password">Password :</label><input type="password" name="password" id="password" />
|
||||
</fieldset><br>
|
||||
<p class="btns"><input type="submit" value="Connexion" class="button-3" /></p>
|
||||
</form>
|
||||
<a href="./inscription.php">Pas encore inscrit ?</a><br><br>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
else { //Check de l'identification
|
||||
$message='';
|
||||
$data = check_Password();
|
||||
if (empty($_POST['pseudo']) || empty($_POST['password']) ) {
|
||||
|
||||
$message = '
|
||||
<div class="container-fluid">
|
||||
<section id="content" class="page-content">
|
||||
<div class="container text-center">
|
||||
<h2>Echec de connexion</h2><br>
|
||||
<p>Une erreur s\'est produite pendant votre identification!</p>
|
||||
<p>Vous devez remplir tous les champs</p>
|
||||
<p>Cliquez <a href="./connexion.php">ici</a> pour revenir à la page de connexion.</p>
|
||||
</div>
|
||||
</section>
|
||||
</div>';
|
||||
}
|
||||
else { //Validation de l'accès
|
||||
if ($data['mdp'] == /*md5*/($_POST['password'])) {
|
||||
$_SESSION['pseudo'] = $data['pseudo'];
|
||||
$_SESSION['privilege'] = $data['privilege'];
|
||||
$_SESSION['idclient'] = $data['idclient'];
|
||||
|
||||
$message = '
|
||||
<div class="container-fluid">
|
||||
<section id="content" class="page-content">
|
||||
<div class="container text-center">
|
||||
<h2>Connexion réussie!</h2><br>
|
||||
<p>Bienvenue '.$data['pseudo'].',<br>Vous êtes maintenant connecté!</p>
|
||||
<p>Cliquez <a href="./espace_membre.php">ici</a> pour accéder a votre espace membre!</p>
|
||||
</div>
|
||||
</section>
|
||||
</div>';
|
||||
}
|
||||
else {
|
||||
$message = '
|
||||
<div class="container-fluid">
|
||||
<section id="content" class="page-content">
|
||||
<div class="container text-center">
|
||||
<h2>Echec de connexion</h2><br>
|
||||
<p>Une erreur s\'est produite pendant votre identification!</p>
|
||||
<p>Le mot de passe ou le pseudo entré n\'est pas correct.</p>
|
||||
<p>Cliquez <a href="./connexion.php">ici</a> pour revenir à la page de connexion.</p>
|
||||
</div>
|
||||
</section>
|
||||
</div>';
|
||||
}
|
||||
}
|
||||
echo $message;
|
||||
}
|
||||
include_once('./vue/membre/connexion.php');
|
||||
9
controleur/membre/constants.php
Normal file
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
define('VISITEUR',1);
|
||||
define('INSCRIT',2);
|
||||
define('MODO',3);
|
||||
define('ADMIN',4);
|
||||
define('ERR_IS_CO','Vous ne pouvez pas accéder à cette page si vous n\'êtes pas connecté');
|
||||
?>
|
||||
|
||||
|
||||
23
controleur/membre/espace/index.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
include_once('./modele/membre/espace.php');
|
||||
$titre = "Index du forum";
|
||||
//Initialisation de deux variables
|
||||
$totaldesmessages = 0;
|
||||
$categorie = NULL;
|
||||
$TotalDesMembres = get_MemberCount();
|
||||
$data = get_LastMember();
|
||||
$derniermembre = stripslashes(htmlspecialchars($data['pseudo']));
|
||||
?>
|
||||
|
||||
<div class="container-fluid">
|
||||
<section id="content" class="page-content">
|
||||
<div class="container text-center">
|
||||
<h2>Espace Membre</h2><br>
|
||||
<h5>Qui est en ligne ?</h5>
|
||||
<p>Le site comptent <strong> <?php echo $TotalDesMembres;?></strong> membres.</p><br>
|
||||
<a href="./profil.php?m=<?php echo $data['idclient']?>&action=consulter"><?php echo $derniermembre;?></a> est le dernier membre.</p>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<?php
|
||||
include_once('./vue/membre/espace.php');
|
||||
25
controleur/membre/functions.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
function erreur($err='')
|
||||
{
|
||||
$mess=($err!='')? $err:'Une erreur inconnue s\'est produite';
|
||||
exit('
|
||||
<div class="container-fluid">
|
||||
<section id="content" class="page-content">
|
||||
<div class="container text-center">
|
||||
<h2>Vous êtes pas autorisé a passer ici</h2><br>
|
||||
<p> '.$mess.' </p>
|
||||
<p>Cliquez <a href="./espace_membre.php">ici</a> pour revenir à la page d\'accueil</p>
|
||||
</div>
|
||||
</section>
|
||||
</div>');
|
||||
}
|
||||
function move_avatar($avatar)
|
||||
{
|
||||
$extension_upload = strtolower(substr( strrchr($avatar['name'], '.') ,1));
|
||||
$name = time();
|
||||
$nomavatar = str_replace(' ','',$name).".".$extension_upload;
|
||||
$name = "./images/avatars/".str_replace(' ','',$name).".".$extension_upload;
|
||||
move_uploaded_file($avatar['tmp_name'],$name);
|
||||
return $nomavatar;
|
||||
}
|
||||
?>
|
||||
140
controleur/membre/inscription/index.php
Normal file
@@ -0,0 +1,140 @@
|
||||
<?php
|
||||
include_once('./modele/membre/inscription.php');
|
||||
$titre="Enregistrement";
|
||||
if ($id!=0) erreur(ERR_IS_CO);
|
||||
if (empty($_POST['pseudo'])) // Si on la variable est vide, on peut considérer qu'on est sur la page de formulaire
|
||||
{
|
||||
?>
|
||||
|
||||
<div class="container-fluid">
|
||||
<section id="content" class="page-content">
|
||||
<div class="container text-center">
|
||||
<h2>Inscription</h2>
|
||||
<form method="post" action="inscription.php" enctype="multipart/form-data">
|
||||
<label class="labelI" >*Pseudo</label><br><input name="pseudo" type="text" id="pseudo" placeholder=" Entre 3 à 15 caractères"/><br><br>
|
||||
<label class="labelI" for="password">*Mot de Passe :</label><input type="password" name="password" id="password" />
|
||||
<label class="labelI" for="confirm">*Confirmer :</label><input type="password" name="confirm" id="confirm" /><br>
|
||||
</fieldset>
|
||||
<label class="labelI" for="email">*Votre adresse email :</label><br><input type="text" name="email" id="email" /><br>
|
||||
</fieldset>
|
||||
<label class="labelI" for="localisation">Localisation :</label><br><input type="text" name="localisation" id="localisation" /><br>
|
||||
</fieldset>
|
||||
<fieldset><legend class="colorbold marg3 pad1">Profil sur le forum</legend>
|
||||
<label for="avatar">Choisissez votre avatar :</label><br><input type="file" name="avatar" id="avatar" /><br>(Taille max : 200Ko)
|
||||
</fieldset><br>
|
||||
<p class="btns"><input type="submit" value="S'inscrire" class="button-3"/></p><br>
|
||||
<p>Les champs précédés d'un * sont obligatoires</p>
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
else //On est dans le cas traitement
|
||||
{
|
||||
$pseudo_erreur1 = NULL;$pseudo_erreur2 = NULL;
|
||||
$email_erreur1 = NULL;$email_erreur2 = NULL;
|
||||
$avatar_erreur = NULL;$avatar_erreur1 = NULL;
|
||||
$avatar_erreur2 = NULL;$avatar_erreur3 = NULL;
|
||||
$mdp_erreur = NULL;
|
||||
//On récupère les variables
|
||||
$i = 0;
|
||||
$pseudo=$_POST['pseudo'];
|
||||
$email = $_POST['email'];
|
||||
$localisation = $_POST['localisation'];
|
||||
$pass = /*md5*/($_POST['password']);
|
||||
$confirm = /*md5*/($_POST['confirm']);
|
||||
//Verification des champs formulaire
|
||||
$pseudo_free = get_checkPseudo();
|
||||
if(!$pseudo_free)
|
||||
{
|
||||
$pseudo_erreur1 = "Votre pseudo est déjà utilisé par un membre";
|
||||
$i++;
|
||||
}
|
||||
if (strlen($pseudo) < 3 || strlen($pseudo) > 15)
|
||||
{
|
||||
$pseudo_erreur2 = "Votre pseudo est soit trop grand, soit trop petit";
|
||||
$i++;
|
||||
}
|
||||
if ($pass != $confirm || empty($confirm) || empty($pass))
|
||||
{
|
||||
$mdp_erreur = "Votre mot de passe et la confirmation sont diffèrent, ou sont vides";
|
||||
$i++;
|
||||
}
|
||||
$mail_free = get_checkMail();
|
||||
if(!$mail_free)
|
||||
{
|
||||
$email_erreur1 = "Votre adresse email est déjà utilisée par un membre";
|
||||
$i++;
|
||||
}
|
||||
if (!preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#", $email) || empty($email))
|
||||
{
|
||||
$email_erreur2 = "Votre adresse email n'a pas un format valide";
|
||||
$i++;
|
||||
}
|
||||
if (!empty($_FILES['avatar']['size']))
|
||||
{
|
||||
$maxsize = 200024; //Poid de l'image
|
||||
$maxwidth = 1000; //Largeur de l'image
|
||||
$maxheight = 1000; //Longueur de l'image
|
||||
//Liste des extensions valides
|
||||
$extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' );
|
||||
if ($_FILES['avatar']['error'] > 0)
|
||||
{
|
||||
$avatar_erreur = "Erreur lors du transfert de l'avatar : ";
|
||||
}
|
||||
if ($_FILES['avatar']['size'] > $maxsize)
|
||||
{
|
||||
$i++;
|
||||
$avatar_erreur1 = "Le fichier est trop gros : (<strong>".$_FILES['avatar']['size']." Octets</strong> contre <strong>".$maxsize." Octets</strong>)";
|
||||
}
|
||||
|
||||
$image_sizes = getimagesize($_FILES['avatar']['tmp_name']);
|
||||
if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
|
||||
{
|
||||
$i++;
|
||||
$avatar_erreur2 = "Image trop large ou trop longue :
|
||||
(<strong>".$image_sizes[0]."x".$image_sizes[1]."</strong> contre <strong>".$maxwidth."x".$maxheight."</strong>)";
|
||||
}
|
||||
|
||||
$extension_upload = strtolower(substr( strrchr($_FILES['avatar']['name'], '.') ,1));
|
||||
if (!in_array($extension_upload,$extensions_valides) )
|
||||
{
|
||||
$i++;
|
||||
$avatar_erreur3 = "Extension de l'avatar incorrecte";
|
||||
}
|
||||
}
|
||||
if ($i==0)
|
||||
{
|
||||
?>
|
||||
<div class="text-center">
|
||||
<h2>Inscription terminée</h2>
|
||||
<p>Bienvenue <?php echo stripslashes(htmlspecialchars($_POST['pseudo'])); ?> vous êtes maintenant inscrit sur le forum!</p>
|
||||
<p>Cliquez <a href="./espace_membre.php">ici</a> pour revenir dans votre espace membre</p>
|
||||
</div>
|
||||
<?php
|
||||
$nomavatar=(!empty($_FILES['avatar']['size']))?move_avatar($_FILES['avatar']):'';
|
||||
post_Registre();
|
||||
//Et on définit les variables de sessions
|
||||
$_SESSION['pseudo'] = $pseudo;
|
||||
$_SESSION['idclient'] = $bdd->lastInsertId();
|
||||
$_SESSION['privilege'] = 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
?>
|
||||
<div class="text-center"><h2>Inscription interrompue</h2><br>
|
||||
<h5><?php echo $i; ?> erreurs se sont produites lors de votre incription</h5><br>
|
||||
<ul>
|
||||
<p><?php echo $email_erreur1; $email_erreur2; ?></p>
|
||||
<p><?php echo $pseudo_erreur1; $pseudo_erreur2; ?></p>
|
||||
<p><?php echo $avatar_erreur1; $avatar_erreur2; ?></p>
|
||||
<p><?php echo $avatar_erreur3; $avatar_erreur; ?></p>
|
||||
<p><?php echo $mdp_erreur; ?></p>
|
||||
</ul><br>
|
||||
<p>Cliquez <a href="./inscription.php">ici</a> pour recommencer</p>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
include_once('./vue/membre/inscription.php');
|
||||
238
controleur/membre/poster.php
Normal file
@@ -0,0 +1,238 @@
|
||||
<script>
|
||||
function bbcode(bbdebut, bbfin)
|
||||
{
|
||||
var input = window.document.formulaire.message;
|
||||
input.focus();
|
||||
if(typeof document.selection != 'undefined')
|
||||
{
|
||||
var range = document.selection.createRange();
|
||||
var insText = range.text;
|
||||
range.text = bbdebut + insText + bbfin;
|
||||
range = document.selection.createRange();
|
||||
if (insText.length == 0)
|
||||
{
|
||||
range.move('character', -bbfin.length);
|
||||
}
|
||||
else
|
||||
{
|
||||
range.moveStart('character', bbdebut.length + insText.length + bbfin.length);
|
||||
}
|
||||
range.select();
|
||||
}
|
||||
else if(typeof input.selectionStart != 'undefined')
|
||||
{
|
||||
var start = input.selectionStart;
|
||||
var end = input.selectionEnd;
|
||||
var insText = input.value.substring(start, end);
|
||||
input.value = input.value.substr(0, start) + bbdebut + insText + bbfin + input.value.substr(end);
|
||||
var pos;
|
||||
if (insText.length == 0)
|
||||
{
|
||||
pos = start + bbdebut.length;
|
||||
}
|
||||
else
|
||||
{
|
||||
pos = start + bbdebut.length + insText.length + bbfin.length;
|
||||
}
|
||||
input.selectionStart = pos;
|
||||
input.selectionEnd = pos;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
var pos;
|
||||
var re = new RegExp('^[0-9]{0,3}$');
|
||||
while(!re.test(pos))
|
||||
{
|
||||
pos = prompt("insertion (0.." + input.value.length + "):", "0");
|
||||
}
|
||||
if(pos > input.value.length)
|
||||
{
|
||||
pos = input.value.length;
|
||||
}
|
||||
var insText = prompt("Veuillez taper le texte");
|
||||
input.value = input.value.substr(0, pos) + bbdebut + insText + bbfin + input.value.substr(pos);
|
||||
}
|
||||
}
|
||||
function smilies(img)
|
||||
{
|
||||
window.document.formulaire.message.value += '' + img + '';
|
||||
}
|
||||
</script>
|
||||
<?php
|
||||
session_start();
|
||||
$titre="Poster";
|
||||
$balises = true;
|
||||
include("./modele/connexion_sql.php");
|
||||
include("./debut.php");
|
||||
include("./menu.php");
|
||||
?>
|
||||
<?php
|
||||
//Qu'est ce qu'on veut faire ? poster, répondre ou éditer ?
|
||||
$action = (isset($_GET['action']))?htmlspecialchars($_GET['action']):'';
|
||||
|
||||
//Il faut être connecté pour poster !
|
||||
if ($id==0) erreur(ERR_IS_CO);
|
||||
|
||||
//Si on veut poster un nouveau topic, la variable f se trouve dans l'url,
|
||||
//On récupère certaines valeurs
|
||||
if (isset($_GET['f']))
|
||||
{
|
||||
$forum = (int) $_GET['f'];
|
||||
$query= $bdd->prepare('SELECT forum_name, auth_view, auth_post, auth_topic, auth_annonce, auth_modo
|
||||
FROM forum_forum WHERE forum_id =:forum');
|
||||
$query->bindValue(':forum',$forum,PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
$data=$query->fetch();
|
||||
echo '<p><i>Vous êtes ici</i> : <a href="./members_area.php">Index du forum</a> -->
|
||||
<a href="./voirforum.php?f='.$data['forum_id'].'">'.stripslashes(htmlspecialchars($data['forum_name'])).'</a>
|
||||
--> Nouveau topic</p>';
|
||||
|
||||
|
||||
}
|
||||
|
||||
//Sinon c'est un nouveau message, on a la variable t et
|
||||
//On récupère f grâce à une requête
|
||||
elseif (isset($_GET['t']))
|
||||
{
|
||||
$topic = (int) $_GET['t'];
|
||||
$query=$bdd->prepare('SELECT topic_titre, forum_topic.forum_id,
|
||||
forum_name, auth_view, auth_post, auth_topic, auth_annonce, auth_modo
|
||||
FROM forum_topic
|
||||
LEFT JOIN forum_forum ON forum_forum.forum_id = forum_topic.forum_id
|
||||
WHERE topic_id =:topic');
|
||||
$query->bindValue(':topic',$topic,PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
$data=$query->fetch();
|
||||
$forum = $data['forum_id'];
|
||||
|
||||
echo '<p><i>Vous êtes ici</i> : <a href="./members_area.php">Index du forum</a> -->
|
||||
<a href="./voirforum.php?f='.$data['forum_id'].'">'.stripslashes(htmlspecialchars($data['forum_name'])).'</a>
|
||||
--> <a href="./voirtopic.php?t='.$topic.'">'.stripslashes(htmlspecialchars($data['topic_titre'])).'</a>
|
||||
--> Répondre</p>';
|
||||
}
|
||||
|
||||
//Enfin sinon c'est au sujet de la modération(on verra plus tard en détail)
|
||||
//On ne connait que le post, il faut chercher le reste
|
||||
elseif (isset ($_GET['p']))
|
||||
{
|
||||
$post = (int) $_GET['p'];
|
||||
$query=$bdd->prepare('SELECT post_createur, forum_post.topic_id, topic_titre, forum_topic.forum_id,
|
||||
forum_name, auth_view, auth_post, auth_topic, auth_annonce, auth_modo
|
||||
FROM forum_post
|
||||
LEFT JOIN forum_topic ON forum_topic.topic_id = forum_post.topic_id
|
||||
LEFT JOIN forum_forum ON forum_forum.forum_id = forum_topic.forum_id
|
||||
WHERE forum_post.post_id =:post');
|
||||
$query->bindValue(':post',$post,PDO::PARAM_INT);
|
||||
$query->execute();
|
||||
$data=$query->fetch();
|
||||
|
||||
$topic = $data['topic_id'];
|
||||
$forum = $data['forum_id'];
|
||||
|
||||
echo '<p><i>Vous êtes ici</i> : <a href="./members_area.php">Index du forum</a> -->
|
||||
<a href="./voirforum.php?f='.$data['forum_id'].'">'.stripslashes(htmlspecialchars($data['forum_name'])).'</a>
|
||||
--> <a href="./voirtopic.php?t='.$topic.'">'.stripslashes(htmlspecialchars($data['topic_titre'])).'</a>
|
||||
--> Modérer un message</p>';
|
||||
}
|
||||
$query->CloseCursor();
|
||||
?>
|
||||
<?php
|
||||
switch($action)
|
||||
{
|
||||
case "repondre": //Premier cas : on souhaite répondre
|
||||
//Ici, on affiche le formulaire de réponse
|
||||
break;
|
||||
|
||||
case "nouveautopic": //Deuxième cas : on souhaite créer un nouveau topic
|
||||
//Ici, on affiche le formulaire de nouveau topic
|
||||
break;
|
||||
|
||||
//D'autres cas viendront s'ajouter là plus tard :p
|
||||
|
||||
default: //Si jamais c'est aucun de ceux-là, c'est qu'il y a eu un problème :o
|
||||
echo'<h2>Cette action est impossible</h2>';
|
||||
|
||||
} //Fin du switch
|
||||
?>
|
||||
<?php
|
||||
switch($action)
|
||||
{
|
||||
case "repondre": //Premier cas on souhaite répondre
|
||||
?>
|
||||
<h1>Poster une réponse</h1>
|
||||
|
||||
<form method="post" action="postok.php?action=repondre&t=<?php echo $topic ?>" name="formulaire">
|
||||
|
||||
<fieldset><legend>Mise en forme</legend>
|
||||
<input type="button" id="gras" name="gras" value="Gras" onClick="javascript:bbcode('[g]', '[/g]');return(false)" />
|
||||
<input type="button" id="italic" name="italic" value="Italic" onClick="javascript:bbcode('[i]', '[/i]');return(false)" />
|
||||
<input type="button" id="souligné" name="souligné" value="Souligné" onClick="javascript:bbcode('[s]', '[/s]');return(false)" />
|
||||
<input type="button" id="lien" name="lien" value="Lien" onClick="javascript:bbcode('[url]', '[/url]');return(false)" />
|
||||
<br><br>
|
||||
<img src="./images/smileys/heureux.gif" title="heureux" alt="heureux" onClick="javascript:smilies(' :D ');return(false)" />
|
||||
<img src="./images/smileys/lol.gif" title="lol" alt="lol" onClick="javascript:smilies(' :lol: ');return(false)" />
|
||||
<img src="./images/smileys/triste.gif" title="triste" alt="triste" onClick="javascript:smilies(' :triste: ');return(false)" />
|
||||
<img src="./images/smileys/cool.gif" title="cool" alt="cool" onClick="javascript:smilies(' :frime: ');return(false)" />
|
||||
<img src="./images/smileys/rire.gif" title="rire" alt="rire" onClick="javascript:smilies(' XD ');return(false)" />
|
||||
<img src="./images/smileys/confus.gif" title="confus" alt="confus" onClick="javascript:smilies(' :s ');return(false)" />
|
||||
<img src="./images/smileys/choc.gif" title="choc" alt="choc" onClick="javascript:smilies(' :o ');return(false)" />
|
||||
<img src="./images/smileys/question.gif" title="?" alt="?" onClick="javascript:smilies(' :interrogation: ');return(false)" />
|
||||
<img src="./images/smileys/exclamation.gif" title="!" alt="!" onClick="javascript:smilies(' :exclamation: ');return(false)" />
|
||||
</fieldset>
|
||||
|
||||
<fieldset><legend>Message</legend><textarea cols="80" rows="8" id="message" name="message"></textarea></fieldset>
|
||||
|
||||
<input type="submit" name="submit" value="Envoyer" />
|
||||
<input type="reset" name = "Effacer" value = "Effacer"/>
|
||||
</p></form>
|
||||
<?php
|
||||
break;
|
||||
|
||||
case "nouveautopic":
|
||||
?>
|
||||
|
||||
<h1>Nouveau topic</h1>
|
||||
<form method="post" action="postok.php?action=nouveautopic&f=<?php echo $forum ?>" name="formulaire">
|
||||
|
||||
<fieldset><legend>Titre</legend>
|
||||
<input type="text" size="80" id="titre" name="titre" /></fieldset>
|
||||
|
||||
<fieldset><legend>Mise en forme</legend>
|
||||
<input type="button" id="gras" name="gras" value="Gras" onClick="javascript:bbcode('[g]', '[/g]');return(false)" />
|
||||
<input type="button" id="italic" name="italic" value="Italic" onClick="javascript:bbcode('[i]', '[/i]');return(false)" />
|
||||
<input type="button" id="souligné" name="souligné" value="Souligné" onClick="javascript:bbcode('[s]', '[/s]');return(false)" />
|
||||
<input type="button" id="lien" name="lien" value="Lien" onClick="javascript:bbcode('[url]', '[/url]');return(false)" />
|
||||
<br><br>
|
||||
<img src="./images/smileys/heureux.gif" title="heureux" alt="heureux" onClick="javascript:smilies(':D');return(false)" />
|
||||
<img src="./images/smileys/lol.gif" title="lol" alt="lol" onClick="javascript:smilies(':lol:');return(false)" />
|
||||
<img src="./images/smileys/triste.gif" title="triste" alt="triste" onClick="javascript:smilies(':triste:');return(false)" />
|
||||
<img src="./images/smileys/cool.gif" title="cool" alt="cool" onClick="javascript:smilies(':frime:');return(false)" />
|
||||
<img src="./images/smileys/rire.gif" title="rire" alt="rire" onClick="javascript:smilies('XD');return(false)" />
|
||||
<img src="./images/smileys/confus.gif" title="confus" alt="confus" onClick="javascript:smilies(':s');return(false)" />
|
||||
<img src="./images/smileys/choc.gif" title="choc" alt="choc" onClick="javascript:smilies(':O');return(false)" />
|
||||
<img src="./images/smileys/question.gif" title="?" alt="?" onClick="javascript:smilies(':interrogation:');return(false)" />
|
||||
<img src="./images/smileys/exclamation.gif" title="!" alt="!" onClick="javascript:smilies(':exclamation:');return(false)" /></fieldset>
|
||||
|
||||
<fieldset><legend>Message</legend>
|
||||
<textarea cols="80" rows="8" id="message" name="message"></textarea>
|
||||
<label><input type="radio" name="mess" value="Annonce" />Annonce</label>
|
||||
<label><input type="radio" name="mess" value="Message" checked="checked" />Topic</label>
|
||||
</fieldset>
|
||||
<p>
|
||||
<input type="submit" name="submit" value="Envoyer" />
|
||||
<input type="reset" name = "Effacer" value = "Effacer" /></p>
|
||||
</form>
|
||||
<?php
|
||||
break;
|
||||
|
||||
//D'autres cas viendront s'ajouter ici par la suite
|
||||
?>
|
||||
<input type="button" id="gras" name="gras" value="Gras" onClick="javascript:bbcode('[g]', '[/g]');return(false)" />
|
||||
<?php
|
||||
default: //Si jamais c'est aucun de ceux là c'est qu'il y a eu un problème :o
|
||||
echo'<p>Cette action est impossible</p>';
|
||||
} //Fin du switch
|
||||
?>
|
||||
</div>
|
||||
</html>
|
||||
202
controleur/membre/profil/index.php
Normal file
@@ -0,0 +1,202 @@
|
||||
<?php
|
||||
include_once('./modele/membre/profil.php');
|
||||
$titre="Profil";
|
||||
//On récupère la valeur de nos variables passées par URL
|
||||
$action = isset($_GET['action'])?htmlspecialchars($_GET['action']):'consulter';
|
||||
$membre = isset($_GET['m'])?(int) $_GET['m']:'';
|
||||
switch($action)
|
||||
{
|
||||
case "consulter":
|
||||
//On affiche les infos sur le membre
|
||||
$data = get_MemberInfo();
|
||||
?>
|
||||
|
||||
<div class="container-fluid">
|
||||
<section id="content" class="page-content">
|
||||
<div class="container text-center">
|
||||
<h2>Profil de <?php echo stripslashes(htmlspecialchars($data['pseudo'])); ?></h2><br>
|
||||
<img src=".<?php echo $data['imageclient']; ?>" alt="Acun avatar" /><br>
|
||||
<p class="text-2" ><strong>Adresse E-Mail : </strong>
|
||||
<a class=link2 href="mailto:<?php echo stripslashes($data['adressemail']); ?>"> <?php echo stripslashes(htmlspecialchars($data['adressemail'])); ?></a><br/><br>
|
||||
Ce membre est inscrit depuis le <strong><?php echo date('d-m-Y', strtotime(str_replace('/','-',$data['dateenregistre']))); ?></strong><br/><br/>
|
||||
<strong>Localisation : </strong> <?php echo stripslashes(htmlspecialchars($data['adresse'])); ?>
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<?php
|
||||
break;
|
||||
case "modifier":
|
||||
if (empty($_POST['sent'])) // Si on la variable est vide, on peut considérer qu'on est sur la page de formulaire
|
||||
{
|
||||
//On commence par s'assurer que le membre est connecté
|
||||
//if ($id==0) erreur(ERR_IS_NOT_CO);
|
||||
//Les infos du membre
|
||||
$data = get_MemberInfoId();
|
||||
?>
|
||||
|
||||
<div class="container-fluid">
|
||||
<section id="content" class="page-content">
|
||||
<div class="container text-center">
|
||||
<form method="post" action="profil.php?action=modifier" enctype="multipart/form-data">
|
||||
<h2>Edition du profil de <?php echo stripslashes(htmlspecialchars($data['pseudo']));?></h2><br>
|
||||
<fieldset>
|
||||
<label class="labelI" for="password">*Mot de passe<br>Nouveau mot de passe</label><br>
|
||||
<input type="password" name="password" id="password" /><br>
|
||||
<label class="labelI" for="confirm">*Confirmation du mot de passe</label><br>
|
||||
<input type="password" name="confirm" id="confirm" /><br>
|
||||
</fieldset><br>
|
||||
|
||||
<fieldset><legend class=colorbold marg3 pad1>Contacts</legend>
|
||||
<label class="labelI" for="email">Adresse email</label><br>
|
||||
<input type="text" name="email" id="email" value="<?php echo stripslashes($data['adressemail']); ?>" /><br>
|
||||
</fieldset><br>
|
||||
<fieldset><legend class=colorbold marg3 pad1>Informations supplémentaires</legend>
|
||||
<label class="labelI" for="localisation">Localisation</label><br>
|
||||
<input type="text" name="localisation" id="localisation" value="<?php echo stripslashes($data['adresse']); ?>" />
|
||||
</fieldset><br>
|
||||
<fieldset><legend class=colorbold marg3 pad1>Profil sur le forum</legend>
|
||||
Avatar actuel <img src=".<?php echo $data['imageclient'];?>" alt="pas d avatar" /><br><br>
|
||||
<label class="labelI" for="avatar">Changer mon avatar</label><br>
|
||||
<input type="file" name="avatar" id="avatar" /><br>(Taille max : 200Ko)<br><br>
|
||||
<label><input type="checkbox" name="delete" value="Delete" /> Supprimer mon avatar</label>
|
||||
</fieldset><br>
|
||||
<p>
|
||||
<input type="submit" value="Modifier mon profil" class="button-3"/><br>
|
||||
<input type="hidden" id="sent" name="sent" value="1" />
|
||||
</p><br>
|
||||
<p>Les champs avec une * sont obligatoires</p><br>
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
else //Sinon on est dans la page de traitement
|
||||
{
|
||||
//On déclare les variables
|
||||
$mdp_erreur = NULL;
|
||||
$email_erreur1 = NULL;
|
||||
$email_erreur2 = NULL;
|
||||
$avatar_erreur = NULL;
|
||||
$avatar_erreur1 = NULL;
|
||||
$avatar_erreur2 = NULL;
|
||||
$avatar_erreur3 = NULL;
|
||||
//Encore et toujours notre belle variable $i :p
|
||||
$i = 0;
|
||||
$temps = time();
|
||||
$email = $_POST['email'];
|
||||
$localisation = $_POST['localisation'];
|
||||
$pass = /*md5*/($_POST['password']);
|
||||
$confirm = /*md5*/($_POST['confirm']);
|
||||
//Vérification des champs du formulaire
|
||||
if ($pass != $confirm || empty($confirm) || empty($pass))
|
||||
{
|
||||
$mdp_erreur = "Votre mot de passe et votre confirmation sont different ou sont vides";
|
||||
$i++;
|
||||
}
|
||||
$data = get_checkMail();
|
||||
if (strtolower($data['adressemail']) != strtolower($email))
|
||||
{
|
||||
$mail_free = get_checkCopyMail();
|
||||
if(!$mail_free)
|
||||
{
|
||||
$email_erreur1 = "Votre adresse email est déjà utilisé par un membre";
|
||||
$i++;
|
||||
}
|
||||
if (!preg_match("#^[a-z0-9A-Z._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $email) || empty($email))
|
||||
{
|
||||
$email_erreur2 = "Votre nouvelle adresse E-Mail n'a pas un format valide";
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
if (!empty($_FILES['avatar']['size']))
|
||||
{
|
||||
$maxsize = 200024; //Poid de l'image
|
||||
$maxwidth = 1000; //Largeur de l'image
|
||||
$maxheight = 1000; //Longueur de l'image
|
||||
//Liste des extensions valides
|
||||
$extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' );
|
||||
if ($_FILES['avatar']['error'] > 0)
|
||||
{
|
||||
$avatar_erreur = "Erreur lors du tranfsert de l'avatar : ";
|
||||
}
|
||||
if ($_FILES['avatar']['size'] > $maxsize)
|
||||
{
|
||||
$i++;
|
||||
$avatar_erreur1 = "Le fichier est trop gros :
|
||||
(<strong>".$_FILES['avatar']['size']." Octets</strong>
|
||||
contre <strong>".$maxsize." Octets</strong>)";
|
||||
}
|
||||
|
||||
$image_sizes = getimagesize($_FILES['avatar']['tmp_name']);
|
||||
if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
|
||||
{
|
||||
$i++;
|
||||
$avatar_erreur2 = "Image trop large ou trop longue :
|
||||
(<strong>".$image_sizes[0]."x".$image_sizes[1]."</strong> contre
|
||||
<strong>".$maxwidth."x".$maxheight."</strong>)";
|
||||
}
|
||||
|
||||
$extension_upload = strtolower(substr( strrchr($_FILES['avatar']['name'], '.') ,1));
|
||||
if (!in_array($extension_upload,$extensions_valides) )
|
||||
{
|
||||
$i++;
|
||||
$avatar_erreur3 = "Extension de l'avatar incorrecte";
|
||||
}
|
||||
}
|
||||
if ($i == 0) // Si $i est vide, il n'y a pas d'erreur sur l'avatar
|
||||
{
|
||||
if (!empty($_FILES['avatar']['size']))
|
||||
{
|
||||
post_UpdateAvatar();
|
||||
}
|
||||
if (isset($_POST['delete']))
|
||||
{
|
||||
post_RemoveAvatar();
|
||||
}
|
||||
?>
|
||||
|
||||
<div class="container-fluid">
|
||||
<section id="content" class="page-content">
|
||||
<div class="container text-center">
|
||||
<h2>Modification de profil terminée</h2><br>
|
||||
<p>Votre profil a été modifié avec succès !</p>
|
||||
<p>Cliquez <a href="./profil.php?action=modifier">ici</a>
|
||||
pour revenir à ton profil</p>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<?php
|
||||
//On modifie la table
|
||||
post_UpdateMember();
|
||||
}
|
||||
else
|
||||
{
|
||||
?>
|
||||
|
||||
<div class="container-fluid">
|
||||
<section id="content" class="page-content">
|
||||
<div class="container text-center">
|
||||
<h2>Modification de profil interrompue</h2><br>
|
||||
<h5><?php echo $i; ?> erreurs se sont produites lors de votre modification</h5>
|
||||
<ul>
|
||||
<?php
|
||||
echo'<p>' .$email_erreur1. '' .$email_erreur2. '</p>
|
||||
<p>' .$avatar_erreur. '' .$avatar_erreur1. '</p>
|
||||
<p>' .$avatar_erreur2. '' .$avatar_erreur3. '</p>
|
||||
<p>' .$mdp_erreur. '</p>';
|
||||
?>
|
||||
</ul>
|
||||
<p> Cliquez <a href="./profil.php?action=modifier">ici</a> pour recommencer</p>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
break;
|
||||
default; //Si jamais c'est aucun de ceux là c'est qu'il y a eu un problème :o
|
||||
echo'<p>Cette action est impossible</p>';
|
||||
}
|
||||
include_once('./vue/membre/profil.php');
|
||||
80
css/style.css
Normal file
@@ -0,0 +1,80 @@
|
||||
.bg1 {
|
||||
background:#f7f5e2;
|
||||
}
|
||||
header {
|
||||
background-image:url("../images/autres/footer.jpg");
|
||||
}
|
||||
footer {
|
||||
background-image:url("../images/autres/footer.jpg");
|
||||
margin: 0 auto;
|
||||
overflow:hidden;
|
||||
}
|
||||
.container-fluid{
|
||||
margin:0 !important;
|
||||
padding:0 !important;
|
||||
}
|
||||
.numbox{
|
||||
background-image:url("../images/autres/calendrier.png");
|
||||
width:72px;
|
||||
height:78px;
|
||||
overflow:hidden;
|
||||
float:left;
|
||||
margin: 0 19px 0px 10px;
|
||||
}
|
||||
.numbox span {
|
||||
font:18px/22px 'IM Fell French Canon', sans-serif;
|
||||
color:#fff;
|
||||
font-style:italic;
|
||||
text-align:center;
|
||||
margin-top:4px;
|
||||
display:block;
|
||||
}
|
||||
.numbox strong {
|
||||
font:30px/36px Georgia, "Times New Roman", Times, serif;
|
||||
color:#f6a82d;
|
||||
font-weight:bold;
|
||||
text-align:center;
|
||||
margin-top:-1px;
|
||||
display:block;
|
||||
}
|
||||
.img-thumbnailShop{
|
||||
display: block;
|
||||
}
|
||||
.img-thumbnailEvent{
|
||||
display: block;
|
||||
}
|
||||
|
||||
.img-thumbnailEventCat{
|
||||
display: block;
|
||||
}
|
||||
.clear {
|
||||
clear:both;
|
||||
line-height:0;
|
||||
font-size:0;
|
||||
}
|
||||
.map-responsive {
|
||||
overflow:hidden;
|
||||
padding-bottom:56.25%;
|
||||
position:relative;
|
||||
}
|
||||
|
||||
.map-responsive iframe {
|
||||
left:0;
|
||||
top:0;
|
||||
position:absolute;
|
||||
}
|
||||
.carousel {
|
||||
height: 60%;
|
||||
}
|
||||
.carousel-indicators li {
|
||||
background-color: gray!important;
|
||||
}
|
||||
.carousel-indicators .active {
|
||||
background-color: black!important;
|
||||
}
|
||||
.carousel-control-next-icon{
|
||||
background-color: gray!important;
|
||||
}
|
||||
.carousel-control-prev-icon{
|
||||
background-color: gray!important;
|
||||
}
|
||||
23
deconnexion.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
session_start();
|
||||
session_destroy();
|
||||
$titre="Déconnexion";
|
||||
include("./vue/header.html");
|
||||
if ($id==0) erreur(ERR_IS_NOT_CO);
|
||||
?>
|
||||
|
||||
<div class="container-fluid">
|
||||
<section id="content" class="page-content">
|
||||
<div class="container text-center">
|
||||
<h2>Déconnexion réussie!</h2><br>
|
||||
<h4>A Bientôt</h4><br>
|
||||
<p>Vous êtes à présent déconnecté <br/>
|
||||
<!--Cliquez <a href="'.htmlspecialchars($_SERVER['HTTP_REFERER']).'">ici</a> pour revenir à la page précédente.<br>-->
|
||||
Cliquez <a href="./espace_membre.php">ici</a> pour revenir à la page principale</p><br>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<?php
|
||||
include("./vue/footer.html");
|
||||
?>
|
||||
9
espace_membre.php
Normal file
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
include_once('./vue/header.html');
|
||||
include_once('./modele/connexion_sql.php');
|
||||
|
||||
if (!isset($_GET['section']) OR $_GET['section'] == 'index')
|
||||
{
|
||||
include_once('./controleur/membre/espace/index.php');
|
||||
}
|
||||
include_once('./vue/footer.html');
|
||||
5
home.php
Normal file
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
include_once('./vue/header.html');
|
||||
include_once('./vue/home/index.html');
|
||||
include_once('./vue/footer.html');
|
||||
?>
|
||||
BIN
images/autres/CARIA.png
Normal file
|
After Width: | Height: | Size: 91 KiB |
BIN
images/autres/calendrier.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
images/autres/favicon.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
images/autres/footer.jpg
Normal file
|
After Width: | Height: | Size: 157 KiB |
BIN
images/autres/gallery_loading.gif
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
images/autres/header.jpg
Normal file
|
After Width: | Height: | Size: 163 KiB |
BIN
images/autres/logo.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
images/avatars/img_user.jpg
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
images/avatars/img_user1.jpg
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
BIN
images/avatars/img_user2.jpg
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
images/avatars/img_user3.jpg
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
images/avatars/img_user4.jpg
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
BIN
images/avatars/img_user5.jpg
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
images/avatars/img_user6.jpg
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
5
index.php
Normal file
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
include_once('./vue/header.html');
|
||||
include_once('./vue/home/index.html');
|
||||
include_once('./vue/footer.html');
|
||||
?>
|
||||
9
inscription.php
Normal file
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
include_once('./vue/header.html');
|
||||
include_once('./modele/connexion_sql.php');
|
||||
|
||||
if (!isset($_GET['section']) OR $_GET['section'] == 'index')
|
||||
{
|
||||
include_once('./controleur/membre/inscription/index.php');
|
||||
}
|
||||
include_once('./vue/footer.html');
|
||||
11
modele/connexion_sql.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
// Connexion <20> la base de donn<6E>es
|
||||
try
|
||||
{
|
||||
$bdd = new PDO('mysql:host=localhost:3307;dbname=CARIA', 'USER', 'MDP',array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
die('Erreur : '.$e->getMessage());
|
||||
}
|
||||
10
modele/membre/connexion.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
function check_Password()
|
||||
{
|
||||
global $bdd;
|
||||
$req = $bdd->prepare('SELECT mdp, idclient, privilege, pseudo FROM Client WHERE pseudo = :pseudo');
|
||||
$req->bindValue(':pseudo',$_POST['pseudo'], PDO::PARAM_STR);
|
||||
$req->execute();
|
||||
$data = $req->fetch();
|
||||
return $data;
|
||||
}
|
||||
15
modele/membre/espace.php
Normal file
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
function get_MemberCount()
|
||||
{
|
||||
global $bdd;
|
||||
|
||||
$TotalDesMembres = $bdd->query('SELECT COUNT(*) FROM Client')->fetchColumn();
|
||||
return $TotalDesMembres;
|
||||
}
|
||||
function get_LastMember()
|
||||
{
|
||||
global $bdd;
|
||||
$req = $bdd->query('SELECT pseudo, idclient FROM Client ORDER BY idclient DESC LIMIT 0, 1');
|
||||
$data = $req->fetch();
|
||||
return $data;
|
||||
}
|
||||
40
modele/membre/inscription.php
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
function get_checkPseudo()
|
||||
{
|
||||
global $bdd;
|
||||
$pseudo=$_POST['pseudo'];
|
||||
$req = $bdd->prepare('SELECT COUNT(*) AS nbr FROM Client WHERE pseudo =:pseudo');
|
||||
$req->bindValue(':pseudo',$pseudo, PDO::PARAM_STR);
|
||||
$req->execute();
|
||||
$pseudo_free=($req->fetchColumn()==0)?1:0;
|
||||
$req->CloseCursor();
|
||||
return $pseudo_free;
|
||||
}
|
||||
function get_checkMail()
|
||||
{
|
||||
global $bdd;
|
||||
$email = $_POST['email'];
|
||||
$req = $bdd->prepare('SELECT COUNT(*) AS nbr FROM Client WHERE adressemail =:mail');
|
||||
$req->bindValue(':mail',$email, PDO::PARAM_STR);
|
||||
$req->execute();
|
||||
$mail_free=($req->fetchColumn()==0)?1:0;
|
||||
$req->CloseCursor();
|
||||
return $mail_free;
|
||||
}
|
||||
function post_Registre()
|
||||
{
|
||||
global $bdd;
|
||||
$pseudo=$_POST['pseudo'];
|
||||
$pass = /*md5*/($_POST['password']);
|
||||
$email = $_POST['email'];
|
||||
$nomavatar=(!empty($_FILES['avatar']['size']))?move_avatar($_FILES['avatar']):'';
|
||||
$localisation = $_POST['localisation'];
|
||||
$req = $bdd->prepare('INSERT INTO Client (pseudo, mdp, adressemail, imageclient, adresse, dateenregistre)
|
||||
VALUES (:pseudo, :pass, :email, :nomavatar, :localisation, NOW())');
|
||||
$req->bindValue(':pseudo', $pseudo, PDO::PARAM_STR);
|
||||
$req->bindValue(':pass', $pass, PDO::PARAM_INT);
|
||||
$req->bindValue(':email', $email, PDO::PARAM_STR);
|
||||
$req->bindValue(':nomavatar', $nomavatar, PDO::PARAM_STR);
|
||||
$req->bindValue(':localisation', $localisation, PDO::PARAM_STR);
|
||||
$req->execute();
|
||||
}
|
||||
81
modele/membre/profil.php
Normal file
@@ -0,0 +1,81 @@
|
||||
<?php
|
||||
function get_MemberInfo()
|
||||
{
|
||||
global $bdd;
|
||||
$membre = isset($_GET['m'])?(int) $_GET['m']:'';
|
||||
//On récupère les infos du membre
|
||||
$req = $bdd->prepare('SELECT pseudo, imageclient, adressemail, dateenregistre, adresse FROM Client WHERE idclient=:membre');
|
||||
$req->bindValue(':membre',$membre, PDO::PARAM_INT);
|
||||
$req->execute();
|
||||
$data = $req->fetch();
|
||||
return $data;
|
||||
}
|
||||
function get_MemberInfoId()
|
||||
{
|
||||
global $bdd;
|
||||
$id=(isset($_SESSION['idclient']))?(int) $_SESSION['idclient']:0;
|
||||
//On prend les infos du membre
|
||||
$req = $bdd->prepare('SELECT pseudo, adressemail,adresse,imageclient FROM Client WHERE idclient=:id');
|
||||
$req->bindValue(':id',$id,PDO::PARAM_INT);
|
||||
$req->execute();
|
||||
$data = $req->fetch();
|
||||
return $data;
|
||||
}
|
||||
function get_checkMail()
|
||||
{
|
||||
global $bdd;
|
||||
$id=(isset($_SESSION['idclient']))?(int) $_SESSION['idclient']:0;
|
||||
//On commence donc par récupérer le mail
|
||||
$req = $bdd->prepare('SELECT adressemail FROM Client WHERE idclient =:id');
|
||||
$req->bindValue(':id',$id,PDO::PARAM_INT);
|
||||
$req->execute();
|
||||
$data = $req->fetch();
|
||||
return $data;
|
||||
}
|
||||
function get_checkCopyMail()
|
||||
{
|
||||
global $bdd;
|
||||
$email = $_POST['email'];
|
||||
//Il faut que l'adresse email n'ait jamais été utilisée
|
||||
$req = $bdd->prepare('SELECT COUNT(*) AS nbr FROM Client WHERE adressemail =:mail');
|
||||
$req->bindValue(':mail',$email,PDO::PARAM_STR);
|
||||
$req->execute();
|
||||
$mail_free = ($req->fetchColumn()==0)?1:0;
|
||||
$req->CloseCursor();
|
||||
return $mail_free;
|
||||
}
|
||||
function post_UpdateAvatar()
|
||||
{
|
||||
global $bdd;
|
||||
$id=(isset($_SESSION['idclient']))?(int) $_SESSION['idclient']:0;
|
||||
$nomavatar=move_avatar($_FILES['avatar']);
|
||||
$req = $bdd->prepare('UPDATE Client SET imageclient = '/images/avatars/' :avatar WHERE idclient = :id');
|
||||
$req->bindValue(':avatar',$nomavatar,PDO::PARAM_STR);
|
||||
$req->bindValue(':id',$id,PDO::PARAM_INT);
|
||||
$req->execute();
|
||||
$req->CloseCursor();
|
||||
}
|
||||
function post_RemoveAvatar()
|
||||
{
|
||||
global $bdd;
|
||||
$id=(isset($_SESSION['idclient']))?(int) $_SESSION['idclient']:0;
|
||||
$req = $bdd->prepare('UPDATE Client SET imageclient=0 WHERE idclient = :id');
|
||||
$req->bindValue(':id',$id,PDO::PARAM_INT);
|
||||
$req->execute();
|
||||
$req->CloseCursor();
|
||||
}
|
||||
function post_UpdateMember()
|
||||
{
|
||||
global $bdd;
|
||||
$id=(isset($_SESSION['idclient']))?(int) $_SESSION['idclient']:0;
|
||||
$pass = /*md5*/($_POST['password']);
|
||||
$email = $_POST['email'];
|
||||
$localisation = $_POST['localisation'];
|
||||
$req = $bdd->prepare('UPDATE Client SET mdp = :mdp, adressemail=:mail, adresse=:loc WHERE idclient=:id');
|
||||
$req->bindValue(':mdp',$pass,PDO::PARAM_INT);
|
||||
$req->bindValue(':mail',$email,PDO::PARAM_STR);
|
||||
$req->bindValue(':loc',$localisation,PDO::PARAM_STR);
|
||||
$req->bindValue(':id',$id,PDO::PARAM_INT);
|
||||
$req->execute();
|
||||
$req->CloseCursor();
|
||||
}
|
||||
5
policy.php
Normal file
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
include_once('./vue/header.html');
|
||||
include_once('./vue/policy/index.html');
|
||||
include_once('./vue/footer.html');
|
||||
?>
|
||||
9
profil.php
Normal file
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
include_once('./vue/header.html');
|
||||
include_once('./modele/connexion_sql.php');
|
||||
|
||||
if (!isset($_GET['section']) OR $_GET['section'] == 'index')
|
||||
{
|
||||
include_once('./controleur/membre/profil/index.php');
|
||||
}
|
||||
include_once('./vue/footer.html');
|
||||
17
vue/footer.html
Normal file
@@ -0,0 +1,17 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--MapsBootsrap-->
|
||||
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
|
||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
|
||||
<footer>
|
||||
<div class="container pt-4">
|
||||
<ul class="pagination">
|
||||
<li class="page-item m-1"><h5> CARIA Project | Cunat-Brulé © 2023-2024 <a href="policy.php">Tous droits réservés</a></h5></li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
56
vue/header.html
Normal file
@@ -0,0 +1,56 @@
|
||||
<!doctype html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<title>CARIA Project</title>
|
||||
<link rel="shortcut icon" type="image/png" href="./images/autres/favicon.png">
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="./css/style.css">
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
|
||||
<?php
|
||||
//Attribution des variables de session
|
||||
include("./controleur/membre/functions.php");
|
||||
include("./controleur/membre/constants.php");
|
||||
$lvl=(isset($_SESSION['privilege']))?(int) $_SESSION['privilege']:1;
|
||||
$id=(isset($_SESSION['ideleve']))?(int) $_SESSION['ideleve']:0;
|
||||
$pseudo=(isset($_SESSION['pseudo']))?$_SESSION['pseudo']:'';
|
||||
if(session_id() == '') { session_start(); }
|
||||
?>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container-fluid bg1">
|
||||
<header>
|
||||
<div class="container">
|
||||
<div class="text-center"><a href="home.php"><img src="./images/autres/logo.png"></a></div>
|
||||
<nav class="navbar navbar-expand-lg navbar-dark bg-transparent">
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||
<ul class="navbar-nav mr-auto">
|
||||
<li class="nav-item dropdown">
|
||||
<a class="dropdown-item" href="contact.php">Nos Coordonnées</a>
|
||||
</li>
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdownCompte" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Compte</a>
|
||||
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
|
||||
<a class="dropdown-item" href="./espace_membre.php">Espace membre</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<?php if(isset($_SESSION['pseudo'])) { ?>
|
||||
<a class="dropdown-item">Connecter en tant que <?php echo ' '.htmlentities($_SESSION['pseudo'], ENT_QUOTES, 'UTF-8'); ?></a>
|
||||
<a class="dropdown-item" href="./profil.php?action=modifier">Modifier mes informations</a>
|
||||
<a class="dropdown-item" href="./deconnexion.php">Déconnexion</a>
|
||||
<?php } else { ?>
|
||||
<a class="dropdown-item" href="./inscription.php">Inscription</a>
|
||||
<a class="dropdown-item" href="./connexion.php">Connexion</a>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
<div class="container">
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
4
vue/home/index.html
Normal file
@@ -0,0 +1,4 @@
|
||||
<section id="content" class="page-content">
|
||||
<div>
|
||||
</div><hr>
|
||||
</section>
|
||||
5
vue/information/contact/index.html
Normal file
@@ -0,0 +1,5 @@
|
||||
<section id="content" class="page-content">
|
||||
<div>
|
||||
<br><h2 class="text-center">Trouvez nous</h2><hr>
|
||||
</div>
|
||||
</section>
|
||||
1
vue/membre/connexion.php
Normal file
@@ -0,0 +1 @@
|
||||
<!-- A ameliorer -->
|
||||
1
vue/membre/espace.php
Normal file
@@ -0,0 +1 @@
|
||||
<!-- A ameliorer -->
|
||||
1
vue/membre/inscription.php
Normal file
@@ -0,0 +1 @@
|
||||
<!-- A ameliorer -->
|
||||
1
vue/membre/profil.php
Normal file
@@ -0,0 +1 @@
|
||||
<!-- A ameliorer -->
|
||||
34
vue/policy/index.html
Normal file
@@ -0,0 +1,34 @@
|
||||
<section id="content" class="page-content">
|
||||
<br><h2 class="text-center">Politique de confidentialité</h2><hr>
|
||||
<h6>Collecte des renseignements personnels</h6>
|
||||
<p>Les renseignements personnels que nous collectons sont recueillis au travers de formulaires et grâce à l'interactivité établie entre vous et notre site Web.<br>
|
||||
Nous utilisons également, comme indiqué dans la section suivante, des fichiers témoins et/ou journaux pour réunir des informations vous concernant. </p>
|
||||
<h6>Formulaires et interactivité:</h6>
|
||||
<p>Vos renseignements personnels sont collectés par le biais de formulaire, à savoir :<br>
|
||||
- Formulaire d'inscription au site Web<br>
|
||||
Nous utilisons les renseignements ainsi collectés pour les finalités suivantes :<br>
|
||||
- Contact</p>
|
||||
<h6>Droit d'opposition et de retrait</h6>
|
||||
<p>Nous nous engageons à vous offrir un droit d'opposition et de retrait quant à vos renseignementspersonnels.<br>
|
||||
Le droit d'opposition s'entend comme étant la possibilité offerte aux internautes de refuser que leurs renseignements personnels soient utilisés à certaines fins mentionnées lors de la collecte.<br>
|
||||
Le droit de retrait s'entend comme étant la possibilité offerte aux internautes de demander à ce que leurs renseignements personnels ne figurent plus, par exemple, dans une liste de diffusion.</p>
|
||||
<h6>Droit d'accès</h6>
|
||||
<p>Nous nous engageons à reconnaître un droit d'accès et de rectification aux personnes concernées désireuses de consulter, modifier, voire radier les informations les concernant.</p>
|
||||
<h6>Sécurité</h6>
|
||||
<p>Les renseignements personnels que nous collectons sont conservés dans un environnement sécurisé.<br>
|
||||
Les personnes travaillant pour nous sont tenues de respecter la confidentialité de vos informations.<br>
|
||||
Pour assurer la sécurité de vos renseignements personnels, nous avons recours aux mesures suivantes :<br>
|
||||
- Gestion des accès - personne autorisée<br>
|
||||
- Gestion des accès - personne concernée<br>
|
||||
- Logiciel de surveillance du réseau<br>
|
||||
- Sauvegarde informatique<br>
|
||||
- Développement de certificat numérique<br>
|
||||
- Identifiant / mot de passe<br>
|
||||
- Pare-feu (Firewalls)<br>
|
||||
Nous nous engageons à maintenir un haut degré de confidentialité en intégrant les dernières innovations technologiques permettant d'assurer la confidentialité de vos transactions.<br>
|
||||
Toutefois,comme aucun mécanisme n'offre une sécurité maximale, une part de risque est toujours présente lorsque l'on utilise Internet pour transmettre des renseignements personnels.</p>
|
||||
<h6>Législation</h6>
|
||||
<p>Nous nous engageons à respecter les dispositions législatives françaises</p>
|
||||
<h6>E-mail: <a href="mailto:info@security.org">info@security.org</a></h6>
|
||||
<hr>
|
||||
</section>
|
||||