From 5fd9fa480f302902328b81f912dd67ce378284f8 Mon Sep 17 00:00:00 2001 From: citizenz7 Date: Thu, 20 Apr 2017 18:50:55 +0200 Subject: V.1.4.6 --- Html/admin/.htaccess | 1 + Html/admin/add-category.php | 134 ++++++++ Html/admin/add-licence.php | 134 ++++++++ Html/admin/add-user.php | 156 +++++++++ Html/admin/categories.php | 112 +++++++ Html/admin/download.php | 90 +++++ Html/admin/edit-category.php | 125 +++++++ Html/admin/edit-licence.php | 125 +++++++ Html/admin/edit-post.php | 398 ++++++++++++++++++++++ Html/admin/edit-profil.php | 281 ++++++++++++++++ Html/admin/edit-user.php | 166 ++++++++++ Html/admin/index.php | 185 +++++++++++ Html/admin/licences.php | 110 +++++++ Html/admin/login.php | 92 ++++++ Html/admin/logout.php | 17 + Html/admin/logs.php | 95 ++++++ Html/admin/menu.php | 11 + Html/admin/messagerie.php | 111 +++++++ Html/admin/messages_envoyer_tous.php | 114 +++++++ Html/admin/profil.php | 619 +++++++++++++++++++++++++++++++++++ Html/admin/recup_pass.php | 124 +++++++ Html/admin/signup.php | 233 +++++++++++++ Html/admin/upload.php | 373 +++++++++++++++++++++ Html/admin/upload.php.DIST | 372 +++++++++++++++++++++ Html/admin/users.php | 170 ++++++++++ 25 files changed, 4348 insertions(+) create mode 100644 Html/admin/.htaccess create mode 100644 Html/admin/add-category.php create mode 100644 Html/admin/add-licence.php create mode 100644 Html/admin/add-user.php create mode 100644 Html/admin/categories.php create mode 100644 Html/admin/download.php create mode 100644 Html/admin/edit-category.php create mode 100644 Html/admin/edit-licence.php create mode 100644 Html/admin/edit-post.php create mode 100644 Html/admin/edit-profil.php create mode 100644 Html/admin/edit-user.php create mode 100644 Html/admin/index.php create mode 100644 Html/admin/licences.php create mode 100644 Html/admin/login.php create mode 100644 Html/admin/logout.php create mode 100644 Html/admin/logs.php create mode 100644 Html/admin/menu.php create mode 100644 Html/admin/messagerie.php create mode 100644 Html/admin/messages_envoyer_tous.php create mode 100644 Html/admin/profil.php create mode 100644 Html/admin/recup_pass.php create mode 100644 Html/admin/signup.php create mode 100644 Html/admin/upload.php create mode 100644 Html/admin/upload.php.DIST create mode 100644 Html/admin/users.php (limited to 'Html/admin') diff --git a/Html/admin/.htaccess b/Html/admin/.htaccess new file mode 100644 index 0000000..5a928f6 --- /dev/null +++ b/Html/admin/.htaccess @@ -0,0 +1 @@ +Options -Indexes diff --git a/Html/admin/add-category.php b/Html/admin/add-category.php new file mode 100644 index 0000000..9e8ce8b --- /dev/null +++ b/Html/admin/add-category.php @@ -0,0 +1,134 @@ + retour sur la page login +if(!$user->is_logged_in()) { + header('Location: login.php'); +} + +if(isset($_SESSION['userid'])) { + if($_SESSION['userid'] != 1) { + header('Location: '.SITEURL); + } +} + +// titre de la page +$pagetitle = 'Admin : ajouter une catégorie'; +require('../includes/header.php'); +?> + + + + +
+ + + +
+
+ +Accueil > '); +for($i=1; $i"; + } + else $prChunks[0]=$dChunks[$i] . ' > '; + echo('">'); + echo(str_replace("_" , " " , $prChunks[0])); +} +?> +

+ + + + +

Categories Index

+

Ajouter une catégorie

+ + prepare('INSERT INTO blog_cats (catTitle,catSlug) VALUES (:catTitle, :catSlug)') ; + $stmt->execute(array( + ':catTitle' => $catTitle, + ':catSlug' => $catSlug + )); + + //redirect to index page + header('Location: categories.php?action=ajoute'); + exit; + + } catch(PDOException $e) { + echo $e->getMessage(); + } + + } + + } + + //check for any errors + if(isset($error)){ + foreach($error as $error){ + echo '

'.$error.'

'; + } + } + ?> + +
+ +


+ '>

+ +

+ +
+ +
+ + + +
+
+
+ + + + + diff --git a/Html/admin/add-licence.php b/Html/admin/add-licence.php new file mode 100644 index 0000000..900f331 --- /dev/null +++ b/Html/admin/add-licence.php @@ -0,0 +1,134 @@ + retour sur la page login +if(!$user->is_logged_in()) { + header('Location: login.php'); +} + +if(isset($_SESSION['userid'])) { + if($_SESSION['userid'] != 1) { + header('Location: '.SITEURL); + } +} + +// titre de la page +$pagetitle= 'Admin : ajouter une licence'; +require('../includes/header.php'); +?> + + + +
+ + + +
+
+ +Accueil > '); +for($i=1; $i"; + } + else $prChunks[0]=$dChunks[$i] . ' > '; + echo('">'); + echo(str_replace("_" , " " , $prChunks[0])); +} +?> +

+ + + +

Licences Index

+ +

Ajouter une licence

+ + prepare('INSERT INTO blog_licences (licenceTitle,licenceSlug) VALUES (:licenceTitle, :licenceSlug)') ; + $stmt->execute(array( + ':licenceTitle' => $licenceTitle, + ':licenceSlug' => $licenceSlug + )); + + //redirect to index page + header('Location: licences.php?action=ajoute'); + exit; + + } catch(PDOException $e) { + echo $e->getMessage(); + } + + } + + } + + //check for any errors + if(isset($error)){ + foreach($error as $error){ + echo '

'.$error.'

'; + } + } + ?> + +
+ +


+ '>

+ +

+ +
+ +
+ + + +
+
+
+ + + + + diff --git a/Html/admin/add-user.php b/Html/admin/add-user.php new file mode 100644 index 0000000..bd0ea57 --- /dev/null +++ b/Html/admin/add-user.php @@ -0,0 +1,156 @@ + retour sur la page login +if(!$user->is_logged_in()) { + header('Location: login.php'); +} + +if(isset($_SESSION['userid'])) { + if($_SESSION['userid'] != 1) { + header('Location: '.SITEURL); + } +} + +// titre de la page +$pagetitle= 'Admin : ajouter un membre'; +require('../includes/header.php'); +?> + + + +
+ + + +
+
+ +Accueil > '); +for($i=1; $i"; + } + else $prChunks[0]=$dChunks[$i] . ' > '; + echo('">'); + echo(str_replace("_" , " " , $prChunks[0])); +} +?> +

+ + + +

Membres Admin Index

+ +

Ajouter un membre

+ password_hash($_POST['password'], PASSWORD_BCRYPT); + + try { + + //insert into database + $stmt = $db->prepare('INSERT INTO blog_members (username,password,email) VALUES (:username, :password, :email)') ; + $stmt->execute(array( + ':username' => $username, + ':password' => $hashedpassword, + ':email' => $email + )); + + //redirect to index page + header('Location: users.php?action=ajoute'); + exit; + + } catch(PDOException $e) { + echo $e->getMessage(); + } + + } + + } + //check for any errors + if(isset($error)){ + foreach($error as $error){ + echo '

'.$error.'

'; + } + } + ?> + +
+ +


+ '>

+ +


+ '>

+ +


+ '>

+ +


+ '>

+ +

+ +
+
+ + + +
+
+
+ + + + + diff --git a/Html/admin/categories.php b/Html/admin/categories.php new file mode 100644 index 0000000..66c911a --- /dev/null +++ b/Html/admin/categories.php @@ -0,0 +1,112 @@ + retour sur la page login +if(!$user->is_logged_in()) { + header('Location: login.php'); +} + +if(isset($_SESSION['userid'])) { + if($_SESSION['userid'] != 1) { + header('Location: '.SITEURL); + } +} + +//show message from add / edit page +if(isset($_GET['delcat'])){ + + $stmt = $db->prepare('DELETE FROM blog_cats WHERE catID = :catID') ; + $stmt->execute(array(':catID' => html($_GET['delcat']))); + + header('Location: categories.php?action=supprime'); + exit; +} + +// titre de la page +$pagetitle= 'Admin : gestion des catégories'; +require('../includes/header.php'); +?> + + + +
+ + + + +
+
+ + + + + La catégorie a été supprimée avec succès.'; + } + if(isset($_GET['action']) && $_GET['action'] == 'ajoute'){ + echo '

La catégorie a été ajoutée avec succès.

'; + } + + ?> + + + + + + + query('SELECT catID FROM blog_cats'); + //pass number of records to + $pages->set_total($stmt->rowCount()); + + $stmt = $db->query('SELECT catID, catTitle, catSlug FROM blog_cats ORDER BY catTitle ASC '.$pages->get_limit()); + + while($row = $stmt->fetch()){ + + echo ''; + echo ''; + ?> + + + + '; + } + + } catch(PDOException $e) { + echo $e->getMessage(); + } + ?> +
TitreAction
'.html($row['catTitle']).' + | + +
+ +
+

+ + page_links(); + ?> +
+ + + +
+
+
+ + + + + diff --git a/Html/admin/download.php b/Html/admin/download.php new file mode 100644 index 0000000..136cc35 --- /dev/null +++ b/Html/admin/download.php @@ -0,0 +1,90 @@ +prepare('SELECT * FROM blog_members WHERE username = :username'); + $stmt->execute(array(':username' => html($_SESSION['username']))); + $row = $stmt->fetch(); + $uid = $row['memberID']; +} +else { + // s'il n'y a pas de session, c'est donc un visiteur avec l'id 32 + $uid = 32; +} + +/* +//on recherche le hash dans la base xbt_files +$stmt1 = $db->prepare('SELECT * FROM xbt_files WHERE fid = :fid'); +$stmt1->execute(array(':fid' => $fid)); +$row1 = $stmt1->fetch(); +*/ + +//on recherche le torrent dans la base blog_posts_seo +$stmt2 = $db->prepare('SELECT * FROM blog_posts_seo WHERE postID = :postID'); +$stmt2->execute(array(':postID' => $fid)); +$row2 = $stmt2->fetch(); + +if($row2['postID'] == '') { + header('Location: '.SITEURL.'/torrents.php?action=noexist'); +} + + +$torrent = $row2['postTorrent']; + +$torrentfile = $REP_TORRENTS.'/'.$torrent; + +// On décode le fichier torrent +$fd = fopen($torrentfile, "rb"); +$alltorrent = fread($fd, filesize($torrentfile)); +$array = BDecode($alltorrent); +fclose($fd); + +//On cherche le pid +$stmt3 = $db->prepare('SELECT * FROM blog_members WHERE memberID = :uid'); +$stmt3->execute(array(':uid' => $uid)); +$row3 = $stmt3->fetch(); + +// Il n'y a que les membres + les visiteurs qui peuvent télécharger +// pas de userid = 0 +if ($row3['pid'] == '') { + header('Location: '.SITEURL); +} + +if ($row3['pid'] == '00000000000000000000000000000000') { + $pid = '00000000000000000000000000000000'; +} +else { + $pid = $row3['pid']; +} + +$tracker_announce_urls = SITEURL.':'.ANNOUNCEPORT.'/announce'; + +// On construit la nouvelle announce avec le pid (passkey ...) +$array["announce"] = SITEURL.":".ANNOUNCEPORT."/".$pid."/announce"; + +$alltorrent=BEncode($array); + +// On construit le header +header("Content-Type: application/x-bittorrent"); +header('Content-Disposition: attachment; filename="['.SITENAMELONG.']'.$torrent.'"'); +print($alltorrent); + +if(isset($_SESSION['username'])) { + write_log('Download torrent : '.html($row2['postTitle']).' par '.html($_SESSION['username']), $db); +} +else { + write_log('Download torrent : '.html($row2['postTitle']).' par Visiteur', $db); +} + +?> diff --git a/Html/admin/edit-category.php b/Html/admin/edit-category.php new file mode 100644 index 0000000..82d2249 --- /dev/null +++ b/Html/admin/edit-category.php @@ -0,0 +1,125 @@ + retour sur la page login +if(!$user->is_logged_in()) { + header('Location: login.php'); +} + +if(isset($_SESSION['userid'])) { + if($_SESSION['userid'] != 1) { + header('Location: '.SITEURL); + } +} + +// titre de la page +$pagetitle= 'Admin : Edition des catégories'; +require('../includes/header.php'); +?> + + +
+ + + +
+
+ + +

Catégories Index

+ +

Edition de la catégorie

+ + prepare('UPDATE blog_cats SET catTitle = :catTitle, catSlug = :catSlug WHERE catID = :catID') ; + $stmt->execute(array( + ':catTitle' => $catTitle, + ':catSlug' => $catSlug, + ':catID' => $catID + )); + + //redirect to index page + header('Location: categories.php?action=updated'); + exit; + + } catch(PDOException $e) { + echo $e->getMessage(); + } + + } + + } + ?> + + '; + } + } + + try { + + $stmt = $db->prepare('SELECT catID, catTitle FROM blog_cats WHERE catID = :catID') ; + $stmt->execute(array(':catID' => $_GET['id'])); + $row = $stmt->fetch(); + + } catch(PDOException $e) { + echo $e->getMessage(); + } + + ?> + +
+ '> + +


+ '>

+ +

+ +
+
+ + + +
+
+
+ + + + + diff --git a/Html/admin/edit-licence.php b/Html/admin/edit-licence.php new file mode 100644 index 0000000..bbdb466 --- /dev/null +++ b/Html/admin/edit-licence.php @@ -0,0 +1,125 @@ + retour sur la page login +if(!$user->is_logged_in()) { + header('Location: login.php'); +} + +if(isset($_SESSION['userid'])) { + if($_SESSION['userid'] != 1) { + header('Location: '.SITEURL); + } +} + +// titre de la page +$pagetitle= 'Admin : Edition des licences'; +require('../includes/header.php'); +?> + + +
+ + + +
+
+ + +

Licences Index

+ +

Edition de la licence

+ + prepare('UPDATE blog_licences SET licenceTitle = :licenceTitle, licenceSlug = :licenceSlug WHERE licenceID = :licenceID') ; + $stmt->execute(array( + ':licenceTitle' => $licenceTitle, + ':licenceSlug' => $licenceSlug, + ':licenceID' => $licenceID + )); + + //redirect to index page + header('Location: licences.php?action=updated'); + exit; + + } catch(PDOException $e) { + echo $e->getMessage(); + } + + } + + } + ?> + + '; + } + } + + try { + + $stmt = $db->prepare('SELECT licenceID, licenceTitle FROM blog_licences WHERE licenceID = :licenceID') ; + $stmt->execute(array(':licenceID' => $_GET['id'])); + $row = $stmt->fetch(); + + } catch(PDOException $e) { + echo $e->getMessage(); + } + + ?> + +
+ '> + +


+ '>

+ +

+ +
+
+ + + +
+
+
+ + + + + diff --git a/Html/admin/edit-post.php b/Html/admin/edit-post.php new file mode 100644 index 0000000..32e7634 --- /dev/null +++ b/Html/admin/edit-post.php @@ -0,0 +1,398 @@ +prepare('SELECT * FROM blog_posts_seo WHERE postID = :postID'); + $stmt->execute(array(':postID' => $_GET['id'])); + $rowpost = $stmt->fetch(); +} + +catch(PDOException $e) { + echo $e->getMessage(); +} + +//Si pas connecté : on renvoie sur page principale +if(!$user->is_logged_in()) { + header('Location: '.SITEURL.'/login.php'); +} + +//Si pas l'auteur du post : on renvoie sur page principale +//if($rowpost['postAuthor'] != $_SESSION['username']) { +// header('Location: '.SITEURL); +//} + + +// ----------------------------------------------------------------------------------------------- +// si c'est l'auteur du post ou si c'est l'admin, on donne les droits d'édition +if(isset($_SESSION['username']) && isset($_SESSION['userid'])) { + if(($rowpost['postAuthor'] == $_SESSION['username']) || ($_SESSION['userid'] == 1)) { + + + +//Si on supprime l'icone de présentation +if(isset($_GET['delimage'])) { + + $delimage = $_GET['delimage']; + + //on supprime le fichier image + $stmt = $db->prepare('SELECT postImage FROM blog_posts_seo WHERE postID = :postID'); + $stmt->execute(array( + ':postID' => $delimage + )); + $sup = $stmt->fetch(); + $file = $REP_IMAGES_TORRENTS.$sup['postImage']; + if (file_exists($file)) { + unlink($file); + } + + //puis on supprime l'image dans la base + $stmt = $db->prepare('UPDATE blog_posts_seo SET postImage = NULL WHERE postID = :postID'); + $stmt->execute(array( + ':postID' => $delimage + )); + + header('Location: edit-post.php?id='.$delimage); +} + +// titre de la page +$pagetitle = 'Admin : édition du torrent : '.$rowpost['postTitle']; +require('../includes/header.php'); + +?> + + + +
+ + + +
+
+ + + + +

Edition du post :

+ + + 0 && $_FILES['icontorr']['error'] != 4) { + //if ($_FILES['icontorr']['error'] > 0) { + $error[] = 'Erreur lors du transfert de l\'icone de présentation du torrent.'; + } + + // On cherche si l'image n'existe pas déjà sous ce même nom + if (file_exists($target_file)) { + $error[] = 'Désolé, cette image existe déjà. Veillez en choisir une autre ou tout simplement changer son nom.'; + } + + // taille de l'image + if ($_FILES['icontorr']['size'] > $MAX_SIZE_ICON) { + $error[] = 'Image trop grosse. Taille maxi : '.makesize($MAX_SIZE_ICON); + } + + // format de l'image + if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg") { + $error[] = 'Désolé : seuls les fichiers .jpg, .png, .jpeg sont autorisés !'; + } + + // poids de l'image + $image_sizes = getimagesize($_FILES['icontorr']['tmp_name']); + if ($image_sizes[0] > $WIDTH_MAX_ICON OR $image_sizes[1] > $HEIGHT_MAX_ICON) { + $error[] = 'Image trop grande : '.$WIDTH_MAX_ICON.' x '.$HEIGHT_MAX_ICON.' maxi !'; + } + + // on vérifie que c'est bien une image + if($image_sizes == false) { + $error[] = 'L\'image envoyée n\'est pas une image !'; + } + + // on upload l'image s'il n'y a pas d'erreur + if(!isset($error)) { + if(!move_uploaded_file($_FILES['icontorr']['tmp_name'], $REP_IMAGES_TORRENTS.$_FILES['icontorr']['name'])) { + $error[] = 'Problème de téléchargement de l\'icone de présentation du torrent.'; + } + } + + }//fin de if(isset($_FILES['icontorr']['name'])) + + // *************************************** + // fin upload icone de présentation du torrent + // *************************************** + + + + extract($_POST); + + //very basic validation + if($postID == ''){ + $error[] = 'Ce post possède un ID invalide !'; + } + + if($postTitle == ''){ + $error[] = 'Veuillez entrer un titre.'; + } + + if($postLink == ''){ + $error[] = 'Veuillez entrer une URL pour le média.'; + } + + if($postDesc == ''){ + $error[] = 'Veuillez entrer une courte description.'; + } + + if($postCont == ''){ + $error[] = 'Veuillez entrer un contenu.'; + } + + if($catID == '') { + $error[] = 'Veuillez sélectionner au moins une catégorie.'; + } + + if($licenceID == '') { + $error[] = 'Veuillez sélectionner au moins une licence.'; + } + + + if(!isset($error)){ + try { + + $postSlug = slug($postTitle); + + // Si on a une nouvelle image, on met tout à jour, même l'image de présentation + if(isset($_FILES['icontorr']['name']) && !empty($_FILES['icontorr']['name'])) { + + //insert into database + $stmt = $db->prepare('UPDATE blog_posts_seo SET postTitle = :postTitle, postSlug = :postSlug, postLink = :postLink, postDesc = :postDesc, postCont = :postCont, postImage = :postImage WHERE postID = :postID') ; + $stmt->execute(array( + ':postTitle' => $postTitle, + ':postSlug' => $postSlug, + ':postLink' => $postLink, + ':postDesc' => $postDesc, + ':postCont' => $postCont, + ':postImage' => $_FILES['icontorr']['name'], + ':postID' => $_GET['id'] + )); + + } + + else { // sinon on met tout à jour SAUF l'icone de présentation + + //insert into database + $stmt = $db->prepare('UPDATE blog_posts_seo SET postTitle = :postTitle, postSlug = :postSlug, postLink = :postLink, postDesc = :postDesc, postCont = :postCont WHERE postID = :postID') ; + $stmt->execute(array( + ':postTitle' => $postTitle, + ':postSlug' => $postSlug, + ':postLink' => $postLink, + ':postDesc' => $postDesc, + ':postCont' => $postCont, + ':postID' => $_GET['id'] + )); + + } + + + //delete all items with the current postID in categories + $stmt = $db->prepare('DELETE FROM blog_post_cats WHERE postID = :postID'); + $stmt->execute(array(':postID' => $postID)); + + if(is_array($catID)){ + foreach($_POST['catID'] as $catID){ + $stmt = $db->prepare('INSERT INTO blog_post_cats (postID,catID)VALUES(:postID,:catID)'); + $stmt->execute(array( + ':postID' => $postID, + ':catID' => $catID + )); + } + } + + //delete all items with the current postID in licences + $stmt = $db->prepare('DELETE FROM blog_post_licences WHERE postID_BPL = :postID_BPL'); + $stmt->execute(array(':postID_BPL' => $postID)); + + if(is_array($licenceID)){ + foreach($_POST['licenceID'] as $licenceID){ + $stmt = $db->prepare('INSERT INTO blog_post_licences (postID_BPL,licenceID_BPL) VALUES (:postID_BPL,:licenceID_BPL)'); + $stmt->execute(array( + ':postID_BPL' => $postID, + ':licenceID_BPL' => $licenceID + )); + } + } + + //redirect to index page + header('Location: '.SITEURL.'/torrents.php'); + exit; + + } // fin de try + + catch(PDOException $e) { + echo $e->getMessage(); + } + + } // fin de if(!isset($error)) + + } // fin if(isset($_POST['submit'])) + + + //check for any errors + if(isset($error)){ + foreach($error as $error){ + echo '

'.$error.'

'; + } + } + + try { + + $stmt = $db->prepare('SELECT postID, postTitle, postLink, postDesc, postCont, postImage FROM blog_posts_seo WHERE postID = :postID') ; + $stmt->execute(array( + ':postID' => $id + )); + + $row = $stmt->fetch(); + + } + + catch(PDOException $e) { + echo $e->getMessage(); + } + ?> + +
+ '> + +


+ '>

+ +


+ '>

+ +


+

+ +


+

+ +


+ + +

Icone de présentation : + '; + ?> + + Supprimer + + '; + } + ?> + + +


+ +
+ Catégories + + query('SELECT catID, catTitle FROM blog_cats ORDER BY catTitle'); + while($row2 = $stmt2->fetch()){ + + $stmt3 = $db->prepare('SELECT catID FROM blog_post_cats WHERE catID = :catID AND postID = :postID') ; + $stmt3->execute(array(':catID' => $row2['catID'], ':postID' => $row['postID'])); + $row3 = $stmt3->fetch(); + + if($row3['catID'] == $row2['catID']){ + $checked = 'checked=checked'; + } else { + $checked = null; + } + + echo " ".$row2['catTitle']."
"; + } + + $stmt2->closeCursor(); + + ?> +
+ + +
+ Licences + + query('SELECT licenceID, licenceTitle FROM blog_licences ORDER BY licenceTitle'); + while($row2 = $stmt2->fetch()) { + + $stmt3 = $db->prepare('SELECT licenceID_BPL FROM blog_post_licences WHERE licenceID_BPL = :licenceID_BPL AND postID_BPL = :postID_BPL') ; + $stmt3->execute(array( + ':licenceID_BPL' => $row2['licenceID'], + ':postID_BPL' => $row['postID'])); + $row3 = $stmt3->fetch(); + + if($row3['licenceID_BPL'] == $row2['licenceID']){ + $checked = 'checked=checked'; + } else { + $checked = null; + } + + echo " ".$row2['licenceTitle']."
"; + } + ?> +
+ + +

+
+
+ + + +
+
+
+ + + + + + + + diff --git a/Html/admin/edit-profil.php b/Html/admin/edit-profil.php new file mode 100644 index 0000000..009c2e0 --- /dev/null +++ b/Html/admin/edit-profil.php @@ -0,0 +1,281 @@ + retour sur la page login +if(!$user->is_logged_in()) { + header('Location: '.SITEURL.'/admin/login.php'); +} + +if(isset($_SESSION['username']) && $_SESSION['username'] != $_GET['membre']) { + header('Location: ./'); +} + + + +//Si on supprime l'avatar... +if(isset($_GET['delavatar'])) { + + $delavatar = html($_GET['delavatar']); + + // on supprime le fichier image + $stmt = $db->prepare('SELECT avatar FROM blog_members WHERE memberID = :memberID'); + $stmt->execute(array( + ':memberID' => $delavatar + )); + $sup = $stmt->fetch(); + + $file = $REP_IMAGES_AVATARS.$sup['avatar']; + if (file_exists($file)) { + unlink($file); + } + + //puis on supprime l'avatar dans la base + $stmt = $db->prepare('UPDATE blog_members SET avatar = NULL WHERE memberID = :memberID'); + $stmt->execute(array( + ':memberID' => $delavatar + )); + + header('Location: '.SITEURL.'/admin/profil.php?action=ok&membre='.html($_SESSION['username'])); + +} + +// titre de la page +$pagetitle = 'Edition du profil de '.html($_SESSION['username']); +require_once '../includes/header.php'; +?> + + +
+ + + +
+
+ +

Edition du profil membre de

+ + 0) { + //if ($_FILES['avatar']['error'] > 0) { + $error[] = 'Erreur lors du transfert de l\'avatar membre.'; + } + + // On cherche si l'image n'existe pas déjà sous ce même nom + if (file_exists($target_file)) { + $error[] = 'Désolé, cet avatar membre existe déjà. Veillez en choisir un autre ou tout simplement changer son nom.'; + } + + // Poids de l'image + if ($_FILES['avatar']['size'] > $MAX_SIZE_AVATAR) { + $error[] = 'Avatar membre trop gros. Taille maxi : '.makesize($MAX_SIZE_AVATAR); + } + + // format de l'image + if($imageFileType != "jpg" && $imageFileType != "png") { + $error[] = 'Désolé : seuls les fichiers jpg et png sont autorisés !'; + } + + // Dimensions de l'image + $image_sizes = getimagesize($_FILES['avatar']['tmp_name']); + if ($image_sizes[0] > $WIDTH_MAX_AVATAR OR $image_sizes[1] > $HEIGHT_MAX_AVATAR) { + $error[] = 'Avatar trop grand : '.$WIDTH_MAX_AVATAR.' x '.$HEIGHT_MAX_AVATAR.' maxi !'; + } + + // on vérifie que c'est bien une image + if($image_sizes == false) { + $error[] = 'L\'image envoyée n\'est pas une image !'; + } + + // on upload l'image s'il n'y a pas d'erreur + if(!isset($error)) { + if(!move_uploaded_file($_FILES['avatar']['tmp_name'], $REP_IMAGES_AVATARS.$_FILES['avatar']['name'])) { + $error[] = 'Problème de téléchargement de l\'avatar membre.'; + } + } + + }//fin de if(isset($_FILES['avatar']['name'])) + + + //very basic validation + if($username ==''){ + $error[] = 'Veuillez entrer un pseudo.'; + } + + // On cherche si le pseudo fait moins de 4 caractères et s'il est déjà dans la base + if (strlen($_POST['username']) < 4) { + $error[] = 'Le pseudo est trop court ! (4 caractères minimum)'; + } + + // Le username ne peut pas contenir de caractères spéciaux, balises, etc. + if (!preg_match("/^[a-zA-Z0-9]+$/",$username)) { + $error[] = 'Le pseudo ne peut contenir que des lettres et des chiffres !'; + } + + /* + if($password ==''){ + $error[] = 'Veuillez entrer un mot de passe.'; + } + */ + + if(!empty($password)) { + + if(strlen($password) < 6) { + $error[] = 'Le mot de passe est trop court ! (6 caractères minimum)'; + } + + if($passwordConfirm ==''){ + $error[] = 'Veuillez confirmer le mot de passe.'; + } + + if($password != $passwordConfirm){ + $error[] = 'Les mots de passe ne concordent pas.'; + } + } + + if($email =='') { + $error[] = 'Veuillez entrer une adresse e-mail.'; + } + + if(!isset($error)) { + + try { + if(isset($password) && !empty($password)){ + + $hashedpassword = $user->password_hash($password, PASSWORD_BCRYPT); + + //Mise à jour de la base avec le nouveau mot de passe + $stmt = $db->prepare('UPDATE blog_members SET password = :password, email = :email WHERE username = :username') ; + $stmt->execute(array( + ':username' => $username, + ':password' => $hashedpassword, + ':email' => $email + )); + } + + elseif(isset($_FILES['avatar']['name']) && !empty($_FILES['avatar']['name'])) { + //Mise à jour de la base avec le nouvel avatar + $stmt = $db->prepare('UPDATE blog_members SET email = :email, avatar = :avatar WHERE username = :username') ; + $stmt->execute(array( + ':username' => $username, + ':avatar' => $_FILES['avatar']['name'], + ':email' => $email + )); + } + + else { + //Mise à jour de la base avec adresse e-mail seulement. Aucun nouveau mot de passe n'a été soumis ni aucun avatar + $stmt = $db->prepare('UPDATE blog_members SET email = :email WHERE username = :username') ; + $stmt->execute(array( + ':username' => $username, + ':email' => $email + )); + } + + write_log('Edition profil utilisateur : '.$username, $db); + + //redirect to page + header('Location: '.SITEURL.'/admin/profil.php?action=ok&membre='.$username); + exit; + + $stmt->closeCursor(); + + } + + catch(PDOException $e) { + echo $e->getMessage(); + } + + } + + } + + //check for any errors + if(isset($error)) { + foreach($error as $error) { + echo '

'.$error.'

'; + } + } + + try { + + $stmt = $db->prepare('SELECT memberID,username,email,avatar FROM blog_members WHERE username = :username') ; + $stmt->execute(array(':username' => $username)); + $row = $stmt->fetch(); + + } + + catch(PDOException $e) { + echo $e->getMessage(); + } + + ?> + +
+ +


+ '>

+ +


+

+ +


+

+ +


+ '>

+ +


+ + +

Avatar actuel : + '; + ?> + Supprimer + '; + } + ?> +

+ +
+

+ +
+
+ + + +
+
+
+ + + + + diff --git a/Html/admin/edit-user.php b/Html/admin/edit-user.php new file mode 100644 index 0000000..cc4dab9 --- /dev/null +++ b/Html/admin/edit-user.php @@ -0,0 +1,166 @@ + retour sur la page login +if(!$user->is_logged_in()) { + header('Location: login.php'); +} + +if(isset($_SESSION['userid'])) { + if($_SESSION['userid'] != 1) { + header('Location: '.SITEURL); + } +} + +// titre de la page +$pagetitle = 'Admin : édition du profil de '.$_SESSION['username']; +require('../includes/header.php'); +?> + + +
+ + + +
+
+ + +

Liste des membres

+ +

Edition du profil membre

+ + + 0){ + + if($password ==''){ + $error[] = 'Veuillez entrer un mot de passe.'; + } + + if($passwordConfirm ==''){ + $error[] = 'Veuillez confirmer le mot de passe.'; + } + + if($password != $passwordConfirm){ + $error[] = 'Les mots de passe ne concordent pas.'; + } + + } + + + if($email ==''){ + $error[] = 'Veuillez entrer une adresse e-mail.'; + } + if(!isset($error)){ + + try { + + if(isset($password)){ + + $hashedpassword = $user->password_hash($password, PASSWORD_BCRYPT); + + //update into database + $stmt = $db->prepare('UPDATE blog_members SET username = :username, password = :password, email = :email WHERE memberID = :memberID') ; + $stmt->execute(array( + ':username' => $username, + ':password' => $hashedpassword, + ':email' => $email, + ':memberID' => $memberID + )); + + + } else { + + //update database + $stmt = $db->prepare('UPDATE blog_members SET username = :username, email = :email WHERE memberID = :memberID') ; + $stmt->execute(array( + ':username' => $username, + ':email' => $email, + ':memberID' => $memberID + )); + + } + + + //redirect to index page + header('Location: users.php?action=updated'); + exit; + + } catch(PDOException $e) { + echo $e->getMessage(); + } + + } + + } + + ?> + '; + } + } + + try { + + $stmt = $db->prepare('SELECT memberID, username, email FROM blog_members WHERE memberID = :memberID') ; + $stmt->execute(array(':memberID' => $_GET['id'])); + $row = $stmt->fetch(); + + } catch(PDOException $e) { + echo $e->getMessage(); + } + + ?> + +
+ '> + +


+ '>

+ +


+

+ +


+

+ +


+ '>

+ +

+ +
+
+ + + +
+
+
+ + + + + diff --git a/Html/admin/index.php b/Html/admin/index.php new file mode 100644 index 0000000..d47b017 --- /dev/null +++ b/Html/admin/index.php @@ -0,0 +1,185 @@ + retour sur la page login +if(!$user->is_logged_in()) { + header('Location: login.php?action=connecte'); + exit(); +} + +if(isset($_SESSION['userid'])) { + if($_SESSION['userid'] != 1) { + header('Location: login.php?action=pasledroit'); + exit(); + } +} + +//Si le torrent est à supprimer ... +if(isset($_GET['delpost'])) { + + // 1 - on supprime le fichier .torrent dans le répertoire /torrents ... + $stmt4 = $db->prepare('SELECT postID, postTorrent, postImage FROM blog_posts_seo WHERE postID = :postID') ; + $stmt4->execute(array( + ':postID' => $_GET['delpost'] + )); + $efface = $stmt4->fetch(); + + $file = $REP_TORRENTS.$efface['postTorrent']; + if (file_exists($file)) { + unlink($file); + } + + // 2 - ... on supprime aussi l'image de présentation du torrent + $postimage = $REP_IMAGES_TORRENTS.$efface['postImage']; + if (file_exists($postimage)) { + unlink($postimage); + } + + + // 3 - on supprime le torrent dans la base + $stmt = $db->prepare('DELETE FROM blog_posts_seo WHERE postID = :postID') ; + $stmt->execute(array( + ':postID' => $_GET['delpost'] + )); + + // 4 - on supprime sa référence de catégorie + $stmt1 = $db->prepare('DELETE FROM blog_post_cats WHERE postID = :postID'); + $stmt1->execute(array( + ':postID' => $_GET['delpost'] + )); + + // 5 - on supprime sa référence de licence + $stmt2 = $db->prepare('DELETE FROM blog_post_licences WHERE postID_BPL = :postID_BPL'); + $stmt2->execute(array( + ':postID_BPL' => $_GET['delpost'] + )); + + // 6 - on supprime ses commentaires s'ils existent + /* + $stmt22 = $db->prepare('SELECT cid_torrent FROM blog_posts_comments WHERE cid_torrent = :cid_torrent'); + $stmt22->execute(array( + ':cid_torrent' => $_GET['delpost'] + )); + $commentaire = $stmt22->fetch(); + + if(!empty($commentaire)) { + $stmtsupcomm = $db->prepare('DELETE FROM blog_posts_comments WHERE cid_torrent = :cid_torrent'); + $stmtsupcomm->execute(array( + ':cid_torrent' => $_GET['delpost'] + )); + } + */ + + // 7 - enfin, on met le flag à "1" pour supprimer le fichier dans la tables xbt_files + $stmt3 = $db->prepare('UPDATE xbt_files SET flags = :flags WHERE fid = :fid') ; + $stmt3->execute(array( + ':flags' => '1', + ':fid' => $_GET['delpost'] + )); + + + header('Location: index.php?action=supprime'); + exit; + +}//fin de if isset $_GET['delpost'] + + +// titre de la page +$pagetitle = 'Admin : gestion des torrents'; + +include_once('../includes/header.php'); + +?> + + + +
+ + + +
+
+ + + + Le torrent a été supprimé avec succès.

'; + } + + if(isset($_GET['action']) && $_GET['action'] == 'ajoute'){ + echo '
Le torrent a été ajouté avec succès.

'; + } + + if(isset($_GET['message']) && $_GET['message'] == 'envoye') { + echo '
Message envoyé à tous les membres.

'; + } + ?> + + + + + + + + + query('SELECT postID FROM blog_posts_seo'); + + //pass number of records to + $pages->set_total($stmt->rowCount()); + + $stmt = $db->query('SELECT postID, postTitle, postAuthor, postDate FROM blog_posts_seo ORDER BY postID DESC '.$pages->get_limit()); + while($row = $stmt->fetch()){ + + echo ''; + echo ''; + sscanf($row['postDate'], "%4s-%2s-%2s %2s:%2s:%2s", $annee, $mois, $jour, $heure, $minute, $seconde); + echo ''; + echo ''; + ?> + + + + '; + + } + + + } catch(PDOException $e) { + echo $e->getMessage(); + } + ?> +
TitreDateUploaderAction
'.$row['postTitle'].''.$jour.'-'.$mois.'-'.$annee.''.$row['postAuthor'].' +   + +
+ +

+ page_links(); ?> +

+ +
+ + + +
+
+ + + + + + diff --git a/Html/admin/licences.php b/Html/admin/licences.php new file mode 100644 index 0000000..73cab4e --- /dev/null +++ b/Html/admin/licences.php @@ -0,0 +1,110 @@ + retour sur la page login +if(!$user->is_logged_in()) { + header('Location: login.php'); +} + +if(isset($_SESSION['userid'])) { + if($_SESSION['userid'] != 1) { + header('Location: '.SITEURL); + } +} + +//show message from add / edit page +if(isset($_GET['dellicence'])){ + + $stmt = $db->prepare('DELETE FROM blog_licences WHERE licenceID = :licenceID') ; + $stmt->execute(array(':licenceID' => $_GET['dellicence'])); + + header('Location: licences.php?action=supprime'); + exit; +} + +// titre de la page +$pagetitle= 'Admin : gestion des licences'; +require('../includes/header.php'); +?> + + + +
+ + + + +
+
+ + + + La licence a été supprimée avec succès.'; + } + if(isset($_GET['action']) && $_GET['action'] == 'ajoute'){ + echo '

La licence a été ajoutée avec succès.

'; + } + ?> + + + + + + + query('SELECT licenceID FROM blog_licences'); + //pass number of records to + $pages->set_total($stmt->rowCount()); + + $stmt = $db->query('SELECT licenceID, licenceTitle, licenceSlug FROM blog_licences ORDER BY licenceTitle ASC '.$pages->get_limit()); + + while($row = $stmt->fetch()){ + + echo ''; + echo ''; + ?> + + + + '; + } + + } catch(PDOException $e) { + echo $e->getMessage(); + } + ?> +
TitreAction
'.html($row['licenceTitle']).' + | + +
+ +
+

+ + page_links(); + ?> +
+ + + +
+
+
+ + + + + diff --git a/Html/admin/login.php b/Html/admin/login.php new file mode 100644 index 0000000..1276d2a --- /dev/null +++ b/Html/admin/login.php @@ -0,0 +1,92 @@ +is_logged_in()) { + header('Location: ../index.php'); +} + +$pagetitle= 'Connexion membre'; +include_once '../includes/header.php'; +?> + + + +
+ + + +
+
+ + Votre compte est maintenant actif. Vous pouvez vous connecter.'; + break; + case 'echec': + $message = 'Erreur : votre compte n\'a pas pu être activé :/
Merci de vérifier le lien d\'activation.
+ En cas de problème persistant, merci d\'informer le webmaster en utilisant la page contact du site en indiquant votre pseudo et votre adresse e-mail.
'; + break; + case 'connecte': + $message = 'Vous devez être connecté(e) pour accéder à cette page.'; + break; + case 'pasledroit': + $message = 'Vous n\'avez pas le droit d\'accéder à cette page.'; + break; + } + } + + + //process login form if submitted + if(isset($_POST['submit'])){ + + $username = html(trim($_POST['username'])); + $password = html(trim($_POST['password'])); + + if($user->login($username,$password)) { + //Une fois connecté, on retourne sur la page index + write_log('Connexion utilisateur : '.$username, $db); + header('Location: ../index.php'); + exit; + } + + else { + $message = '
Mauvais identifiants ou compte non activé.
'; + } + + }//end if submit + + if(isset($message)) { + echo $message; + } + + ?> + +
+

:

+

:

+

+
+ +
Mot de passe oublié ?
+ +
+ + + +
+
+
+ + + + + diff --git a/Html/admin/logout.php b/Html/admin/logout.php new file mode 100644 index 0000000..dbd5586 --- /dev/null +++ b/Html/admin/logout.php @@ -0,0 +1,17 @@ +logout(); + +//on supprime le user de la base SQL connectes +$stmt = $db->prepare('DELETE FROM connectes WHERE pseudo = :pseudo') ; +$stmt->execute(array( + ':pseudo' => $_SESSION['username'] +)); + + +header('Location: login.php'); + +?> diff --git a/Html/admin/logs.php b/Html/admin/logs.php new file mode 100644 index 0000000..0bd7652 --- /dev/null +++ b/Html/admin/logs.php @@ -0,0 +1,95 @@ +is_logged_in()) { + header('Location: login.php'); +} + +//Il n'y a que l'admin qui accède à cette page +if(isset($_SESSION['userid'])) { + if($_SESSION['userid'] != 1) { + header('Location: '.SITEURL); + } +} + +$pagetitle = 'Page de logs du site'; + +include_once('../includes/header.php'); + +?> + + + +
+ + + +
+ +
+ + + + + + + + + + + + query('SELECT * FROM blog_logs'); + $pages->set_total($query->rowCount()); + + //On cherche tous les logs + $query = $db->query('SELECT * FROM blog_logs ORDER BY log_id DESC '.$pages->get_limit()); + + while($logs = $query->fetch()) { + + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + sscanf($logs['log_date'], "%4s-%2s-%2s %2s:%2s:%2s", $annee, $mois, $jour, $heure, $minute, $seconde); + echo ''; + echo ''; + + } //while + + echo '
IdRemote adresseResquest uriMessageDate log
'.$logs['log_id'].''.$logs['remote_addr'].''.$logs['request_uri'].''.$logs['message'].''.$jour.'-'.$mois.'-'.$annee.'
à '.$heure.':'.$minute.':'.$seconde.'

'; + echo $pages->page_links(); + + } + + catch(PDOException $e) { + echo $e->getMessage(); + } + ?> + +
+ + + +
+ +
+ +
+ + + + + diff --git a/Html/admin/menu.php b/Html/admin/menu.php new file mode 100644 index 0000000..e921b70 --- /dev/null +++ b/Html/admin/menu.php @@ -0,0 +1,11 @@ +

Administration


+ + +


diff --git a/Html/admin/messagerie.php b/Html/admin/messagerie.php new file mode 100644 index 0000000..075c6b2 --- /dev/null +++ b/Html/admin/messagerie.php @@ -0,0 +1,111 @@ + + + +
+ + + +
+
+ +Le message a été envoyé avec succès.
'; +} + +if(isset($_GET['action']) && $_GET['action'] == 'messupprime'){ + echo '
Le message a été supprimé de votre messagerie.
'; +} +?> + +prepare('SELECT * FROM blog_members,xbt_users WHERE blog_members.memberID = xbt_users.uid AND username = :username'); + $stmt->bindvalue('username', $_GET['membre'], PDO::PARAM_STR); + $stmt->execute(); + $row = $stmt->fetch(); +} + + catch(PDOException $e) { + echo $e->getMessage(); + } +?> + +prepare('SELECT messages_id FROM blog_messages WHERE messages_id_destinataire = :destinataire'); +$stmt->execute(array( + ':destinataire' => $row['memberID'] +)); +$pages->set_total($stmt->rowCount()); + +// on prépare une requete SQL cherchant le titre, la date, l'expéditeur des messages pour le membre connecté +$stmt = $db->prepare('SELECT blog_messages.messages_titre, blog_messages.messages_date, blog_members.username as expediteur, blog_messages.messages_id as id_message, blog_messages.messages_lu FROM blog_messages, blog_members WHERE blog_messages.messages_id_destinataire = :id_destinataire AND blog_messages.messages_id_expediteur = blog_members.memberID ORDER BY blog_messages.messages_date DESC '.$pages->get_limit()); +$stmt->bindValue(':id_destinataire', $row['memberID'], PDO::PARAM_INT); +$stmt->execute(); +?> + + + + + + + + + + + + fetch()){ + echo ''; + sscanf($data['messages_date'], "%4s-%2s-%2s %2s:%2s:%2s", $annee, $mois, $jour, $heure, $minute, $seconde); + echo ''; + echo ''; + echo ''; + echo ''; + } + ?> +
+ Messagerie interne : + + +
DateTitreExpéditeur
le '.$jour.'-'.$mois.'-'.$annee.' à '.$heure.':'.$minute.':'.$seconde.''; + if($data['messages_lu'] == 0) { + echo ' '; + } + echo ''.html(trim($data['messages_titre'])).''; + echo ''.html(trim($data['expediteur'])).'
+ +'; + echo $pages->page_links('?membre='.html($row['username']).'&'); + echo '
'; +?> + +

+ +
+ + + +
+ + + + + + + diff --git a/Html/admin/messages_envoyer_tous.php b/Html/admin/messages_envoyer_tous.php new file mode 100644 index 0000000..daaec2e --- /dev/null +++ b/Html/admin/messages_envoyer_tous.php @@ -0,0 +1,114 @@ +is_logged_in()) { + header('Location: login.php'); +} + +//Il n'y a que l'admin qui accède à cette page +if(isset($_SESSION['userid'])) { + if($_SESSION['userid'] != 1) { + header('Location: '.SITEURL); + } +} + +$pagetitle = 'Message groupé à tous les membres'; + +include_once('../includes/header.php'); + +?> + + + +
+ + + +
+ +
+ +query('SELECT * FROM blog_members WHERE memberID != 1 AND memberID != 32 AND active = "yes"'); + + while($result = $getusers->fetch(PDO::FETCH_ASSOC)) { + + $stmt = $db->prepare('INSERT INTO blog_messages (messages_id_expediteur,messages_id_destinataire,messages_date,messages_titre,messages_message) VALUES (:messages_id_expediteur,:messages_id_destinataire,:messages_date,:messages_titre,:messages_message)'); + $stmt->execute(array( + ':messages_id_expediteur' => 1, + ':messages_id_destinataire' => $result['memberID'], + ':messages_date' => date("Y-m-d H:i:s"), + ':messages_titre' => html($_POST['titre']), + ':messages_message' => html($_POST['message']) + )); + + } //while + + header('Location: index.php?&message=envoye'); + $stmt->closeCursor(); + exit(); + } + + catch(PDOException $e) { + echo $e->getMessage(); + } +} +?> + +
+Message à tous les membres : + +
+ +ERREUR : '.$error.'
'; + } +} +?> + +
+
+ +Titre du message :
+ +

+Message : +

+ + + + +
+ + + +
+
+ + + + + + diff --git a/Html/admin/profil.php b/Html/admin/profil.php new file mode 100644 index 0000000..97d7fbb --- /dev/null +++ b/Html/admin/profil.php @@ -0,0 +1,619 @@ +is_logged_in()) { + header('Location: login.php'); +} + +if(!isset($_GET['membre'])) { + header('Location: ./'); +} + +$stmt = $db->prepare('SELECT * FROM blog_members WHERE username = :username'); +$stmt->bindValue(':username', $_GET['membre'], PDO::PARAM_STR); +$stmt->execute(); +$row = $stmt->fetch(); + +if($row['username'] == '') { + header('Location: '.SITEURL.'/membres.php?action=noexistmember'); +} + +// Il n'y a pas de page profil pour le compte Visiteur +if($_GET['membre'] == 'Visiteur') { + header('Location: ./'); +} + + +// C'est parti !!! +else { + +// titre de la page +$pagetitle = 'Page Profil de '.html($_GET['membre']); + +include_once('../includes/header.php'); +?> + + +
+ + + + +
+
+ + Votre profil a été mis à jour !
'; + } + + //On affiche le résultat de l'envoi de message interne + if(isset($_GET['message'])){ + echo '
Le message a été envoyé !
'; + } + + + try { + $stmt = $db->prepare('SELECT * FROM blog_members,xbt_users WHERE blog_members.memberID = xbt_users.uid AND username = :username'); + $stmt->bindValue(':username', $_GET['membre'], PDO::PARAM_STR); + $stmt->execute(); + $row = $stmt->fetch(); + } + catch(PDOException $e) { + echo $e->getMessage(); + } + ?> + + + + + + + + + + + + + + + + + + + + + 0) { + $ratio=number_format($row["uploaded"]/$row["downloaded"],2); + } + else { + $ratio='∞'; + } + ?> + + +
ID de membre : Pas d'avatar pour <?php echo html($row['username']); ?>Avatar de <?php echo html($row['username']); ?>
Pseudo : + [ Webmaster ] | Jabber : mumbly_58 AT jabber.fr'; + echo ' [ Webmaster ] [ Jabber ]'; + } + ?> +
Date d'inscription : + + + +
Envoyé :
Téléchargé :
Ratio de partage :
+ + + + + + prepare('SELECT fid FROM xbt_files_users WHERE uid = :uid'); + $stmt->bindValue(':uid', $row['memberID'], PDO::PARAM_INT); + $stmt->execute(); + + $pages->set_total($stmt->rowCount()); + + + // Tri de colonnes + $tri = 'postTitle'; + $ordre = 'DESC'; + + if(isset($_GET['tri'])) { + // Les valeurs authorisee + $columns = array('postTitle','postDate','postTaille','seeders','leechers','xf.completed'); + $direction = array('ASC','DESC','asc','desc'); + if(in_array($_GET['tri'],$columns)){ //Une des valeurs authorisee, on la set. Sinon ca sera la veleurs par defaut fixee au dessus + $tri = htmlentities($_GET['tri']); + } + if(isset($_GET['ordre']) and in_array($_GET['ordre'],$direction)){ //Une des valeurs authorisee, on la set. Sinon ca sera la veleurs par defaut fixee au dessus + $ordre = htmlentities($_GET['ordre']); + } + } + + $stmtorr1 = $db->prepare(' + SELECT * FROM xbt_files_users xfu + LEFT JOIN blog_posts_seo bps ON bps.postID = xfu.fid + LEFT JOIN xbt_files xf ON xf.fid = bps.postID + WHERE xfu.uid = :uid + ORDER BY '.$tri.' '.$ordre.' '.$pages->get_limit() + ); + $stmtorr1->execute(array( + ':uid' => $row['memberID'] + )); + ?> + + + + + + + + + + fetch()) { + ?> + + + '.$jour.'-'.$mois.'-'.$annee.''; + ?> + + + + + + + +

Ses Téléchargements :

NomAjoutéTailleSLT
+ +
+ + +'; + //echo $pages->page_links('?membre='.$row['username'].'&'); + echo $pages->page_links('?membre='.$row['username'].'&tri='.$tri.'&ordre='.$ordre.'&'); + echo '
'; +?> + +
+ + + + + + prepare('SELECT postID FROM blog_posts_seo WHERE postAuthor = :postAuthor'); + //$stmt = $db->prepare('SELECT fid FROM xbt_files_users WHERE uid = :uid'); + $stmt->execute(array( + ':postAuthor' => $row['username'] + )); + $pages->set_total($stmt->rowCount()); + + /* + // TRI + if(isset($_GET['tri'])) { + $tri = htmlentities($_GET['tri']); + } + else { + $tri = 'postID'; + } + if(isset($_GET['ordre'])) { + $ordre = htmlentities($_GET['ordre']); + } + else { + $ordre = 'DESC'; + } + */ + + if(isset($_GET['tri'])) { + // Les valeurs authorisee + $columns = array('postTitle','postDate','postTaille','seeders','leechers','xf.completed'); + $direction = array('ASC','DESC','asc','desc'); + if(in_array($_GET['tri'],$columns)){ //Une des valeurs authorisee, on la set. Sinon ca sera la veleurs par defaut fixee au dessus + $tri = htmlentities($_GET['tri']); + } + if(isset($_GET['ordre']) and in_array($_GET['ordre'],$direction)){ //Une des valeurs authorisee, on la set. Sinon ca sera la veleurs par defaut fixee au dessus + $ordre = htmlentities($_GET['ordre']); + } + } + + $stmtorr2 = $db->prepare(' + SELECT * FROM blog_posts_seo + LEFT JOIN xbt_files xf ON xf.fid = blog_posts_seo.postID + WHERE blog_posts_seo.postAuthor = :postAuthor + ORDER BY '.$tri.' '.$ordre.' '.$pages->get_limit() + ); + $stmtorr2->execute(array( + ':postAuthor' => $row['username'] + )); + ?> + + + + + + + + + + fetch()) { + ?> + + + '.$jour.'-'.$mois.'-'.$annee.''; + ?> + + + + + + + +

Ses Uploads :

NomAjoutéTailleSLT
+ +
+ + +'; + echo $pages->page_links('?membre='.$row['username'].'&tri='.$tri.'&ordre='.$ordre.'&'); + echo '
'; +?> + +
+ + + + + + Profil membre de :   + + + [  Editer votre profil +  |  +  Messagerie interne ] + +

+ + + + + + + + + + + + + + + + + + 0) { + $ratio=number_format($row["uploaded"]/$row["downloaded"],2); + } + else { + $ratio='∞'; + } + ?> + + + +
ID de membre : Pas d'avatar pour <?php echo $row['username']; ?>Avatar de <?php echo $row['username']; ?>
E-mail :
Pid :
Date d'inscription : + + + +
Envoyé :
Téléchargé :
Ratio de partage :
+ +
+ + + + + + + prepare('SELECT fid FROM xbt_files_users WHERE uid = :uid'); + $stmt->execute(array( + ':uid' => $row['memberID'] + )); + + $pages->set_total($stmt->rowCount()); + + /* + // TRI + if(isset($_GET['tri'])) { + $tri = htmlentities($_GET['tri']); + } + else { + $tri = 'postID'; + } + if(isset($_GET['ordre'])) { + $ordre = htmlentities($_GET['ordre']); + } + else { + $ordre = 'DESC'; + } + */ + + // Tri de colonnes + $tri = 'postDate'; + $ordre = 'DESC'; + if(isset($_GET['tri'])) { + // Les valeurs authorisee + $columns = array('postTitle','postDate','postTaille','seeders','leechers','xf.completed'); + $direction = array('ASC','DESC','asc','desc'); + if(in_array($_GET['tri'],$columns)){ //Une des valeurs authorisee, on la set. Sinon ca sera la veleurs par defaut fixee au dessus + $tri = htmlentities($_GET['tri']); + } + if(isset($_GET['ordre']) and in_array($_GET['ordre'],$direction)){ //Une des valeurs authorisee, on la set. Sinon ca sera la veleurs par defaut fixee au dessus + $ordre = htmlentities($_GET['ordre']); + } + } + + $stmtorr1 = $db->prepare(' + SELECT * FROM xbt_files_users xfu + LEFT JOIN blog_posts_seo bps ON bps.postID = xfu.fid + LEFT JOIN xbt_files xf ON xf.fid = bps.postID + WHERE xfu.uid = :uid + ORDER BY '.$tri.' '.$ordre.' '.$pages->get_limit() + ); + $stmtorr1->execute(array( + ':uid' => $row['memberID'] + )); + ?> + + + + + + + + + + fetch()) { + ?> + + + '.$jour.'-'.$mois.'-'.$annee.''; + ?> + + + + + + + +

Mes Téléchargements :

NomAjoutéTailleSLT
+ +
+ + +'; + echo $pages->page_links('?membre='.$row['username'].'&tri='.$tri.'&ordre='.$ordre.'&'); + echo ''; +?> + + + + + + + prepare('SELECT postID FROM blog_posts_seo WHERE postAuthor = :postAuthor'); + $stmt->bindValue(':postAuthor',$sessionuser,PDO::PARAM_STR); + $stmt->execute(); + $pages->set_total($stmt->rowCount()); + + + // Tri de colonnes + $tri = 'postDate'; + $ordre = 'DESC'; + + if(isset($_GET['tri'])) { + // Les valeurs authorisee + $columns = array('postTitle','postDate','postTaille','seeders','leechers','xf.completed'); + $direction = array('ASC','DESC','asc','desc'); + if(in_array($_GET['tri'],$columns)){ //Une des valeurs authorisee, on la set. Sinon ca sera la veleurs par defaut fixee au dessus + $tri = htmlentities($_GET['tri']); + } + if(isset($_GET['ordre']) and in_array($_GET['ordre'],$direction)){ //Une des valeurs authorisee, on la set. Sinon ca sera la veleurs par defaut fixee au dessus + $ordre = htmlentities($_GET['ordre']); + } + } + + $stmtorr2 = $db->prepare(' + SELECT * FROM blog_posts_seo + LEFT JOIN xbt_files xf ON xf.fid = blog_posts_seo.postID + WHERE blog_posts_seo.postAuthor = :postAuthor + ORDER BY '.$tri.' '.$ordre.' '.$pages->get_limit() + ); + $stmtorr2->execute(array( + ':postAuthor' => $row['username'] + )); + ?> + + + + + + + + + + fetch()) { + ?> + + + '.$jour.'-'.$mois.'-'.$annee.''; + ?> + + + + + + + +

Mes Uploads :

NomAjoutéTailleSLT
+ +
+ + +'; + //echo $pages->page_links('?membre='.$row['username'].'&'); + echo $pages->page_links('?membre='.$row['username'].'&tri='.$tri.'&ordre='.$ordre.'&'); + echo ''; +?> + +
+ + + + + + + + + + +prepare('SELECT messages_id FROM blog_messages WHERE messages_id_destinataire = :destinataire'); +$stmt->execute(array( + ':destinataire' => $row['memberID'] + )); +$pages->set_total($stmt->rowCount()); + +// on prépare une requete SQL cherchant le titre, la date, l'expéditeur des messages pour le membre connecté +$stmt = $db->prepare('SELECT blog_messages.messages_titre, blog_messages.messages_date, blog_members.username as expediteur, blog_messages.messages_id as id_message, blog_messages.messages_lu FROM blog_messages, blog_members WHERE blog_messages.messages_id_destinataire = :id_destinataire AND blog_messages.messages_id_expediteur = blog_members.memberID ORDER BY blog_messages.messages_date DESC '.$pages->get_limit()); +$stmt->execute(array( + ':id_destinataire' => $row['memberID'] + )); +?> + + + + + + + + + + + + fetch()){ + echo ''; + sscanf($data['messages_date'], "%4s-%2s-%2s %2s:%2s:%2s", $annee, $mois, $jour, $heure, $minute, $seconde); + echo ''; + echo ''; + echo ''; + echo ''; + } + ?> +
+

Mes Messages : + +

+
DateTitreExpéditeur
'.$jour.'-'.$mois.'-'.$annee.' à '.$heure.':'.$minute.':'.$seconde.''; + if($data['messages_lu'] == 0) { + echo ' '; + } + echo ''.stripslashes(htmlentities(trim($data['messages_titre']), ENT_QUOTES, "UTF-8")).''; + echo ''.stripslashes(htmlentities(trim($data['expediteur']), ENT_QUOTES, "UTF-8")).'
+ +'; + echo $pages->page_links('?membre='.$row['username'].'&'); + echo ''; +?> + +

+ + + + + + + + + + + + + + + + + +
+ + + + + + + + diff --git a/Html/admin/recup_pass.php b/Html/admin/recup_pass.php new file mode 100644 index 0000000..4c36e58 --- /dev/null +++ b/Html/admin/recup_pass.php @@ -0,0 +1,124 @@ +query("SELECT email FROM blog_members WHERE email = '".$email."' "); + + //si le nombre de lignes retourne par la requete != 1 + if ($stmt->rowCount() != 1) { + $error[] = 'adresse e-mail inconnue.'; + } + + else { + $row1 = $stmt->fetch(); + + $retour = $db->query("SELECT password FROM blog_members WHERE email = '".$email."' "); + $row2 = $retour->fetch(); + $new_password = fct_passwd(); //création d'un nouveau mot de passe + $hashedpassword = $user->password_hash($new_password, PASSWORD_BCRYPT); // cryptage du password + + //On crée le mail + $headers = 'MIME-Version: 1.0' . "\r\n"; + $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n"; + $headers .= 'From: '.SITENAME.' <'.SITEMAIL.'>'."\r\n"; + //$headers .= '\r\n'; + + $objet = 'Votre nouveau mot de passe sur '.SITEURL; + + $message = "Bonjour,
\n"; + $message .= "Vous avez demandé un nouveau mot de passe pour votre compte sur " . SITEURL . ".
\n"; + $message .= "Votre nouveau mot de passe est : " . $new_password . "
\n\n"; + $message .= "Cordialement,
\n\n"; + $message .= "L'equipe de " . SITENAME; + + if(!mail($row1['email'], $objet, $message, $headers)) { + $error[] = "Problème lors de l'envoi du mail."; + } + + else { + //mise à jour de la base de données de l'utilisateur + $stmt = $db->prepare('UPDATE blog_members SET password = :password WHERE email = :email') ; + $stmt->execute(array( + ':password' => $hashedpassword, + ':email' => $email + )); + + $cok = "Un mail contenant votre nouveau mot de passe vous a été envoyé.
Veuillez le consulter avant de vous reconnecter sur " . SITEURL.'.'; + } + + } + +} + +$pagetitle = 'Demande de nouveau mot de passe'; +require('../includes/header.php'); +?> + +
+ + + +
+
+

Vous avez oublié votre mot de passe ?

+ + + +
+ + Vous allez faire une demande de nouveau mot de passe.
+ Ce nouveau mot de passe vous sera envoyé par e-mail.
+ Une fois connecté avec vos identifiants, vous pourrez éventuellement redéfinir un mot de passe à partir de votre page profil.
+
Veuillez donc entrer ci-dessous l'adresse e-mail correspondant à votre compte : +
+ +

+ Entrez l'adresse e-mail de votre compte : +

+ +

+ +

+
+ + + ERREUR : '.$error.'

'; + } + } + elseif (isset($cok)) { + echo '

' . $cok . '

'; + } + ?> + +
+ + + +
+
+
+ + + + + diff --git a/Html/admin/signup.php b/Html/admin/signup.php new file mode 100644 index 0000000..b25ec12 --- /dev/null +++ b/Html/admin/signup.php @@ -0,0 +1,233 @@ +is_logged_in()) { + header('Location: ../index.php'); +} + +//titre de la page +$pagetitle= 'Créer un compte'; +include_once('../includes/header.php'); +?> + + +
+ + + +
+
+ +

Créer un compte

+ +
+

+ Vous allez créer un compte sur ...
+ Le fait de devenir membre vous fera bénéficier de plusieurs avantages :
+ - uploader des torrents,
+ - disposer d'un espace membre,
+ - disposer de statistiques personnelles.
+ Merci de choisir un pseudo, un mot de passe et une adresse e-mail. Vous recevrez un e-mail de notre part avec un lien qui vous permettra d'activer votre nouveau compte.
+ (Eventuellement, merci de vérifier votre répertoire Spam) +

+
+ + prepare('SELECT email FROM blog_members WHERE email = :email'); + $stmt->bindValue(':email',$postemail,PDO::PARAM_STR); + $stmt->execute(); + $res = $stmt->fetch(); + + if ($res) { + $error[] = 'Cette adresse e-mail est déjà utilisée !'; + } + } + + //Vérification simple de la validité de l'e-mail + if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { + $error[] = 'Cette adresse e-mail n\'est pas valide !'; + } + + // Le username ne peut pas contenir de caractères spéciaux, balises, etc. + $postusername = $_POST['username']; + if (!preg_match("/^[a-zA-Z0-9]+$/",$postusername)) { + $error[] = 'Le pseudo ne peut contenir que des lettres et des chiffres !'; + } + + // On cherche si le pseudo fait moins de 4 caractères et s'il est déjà dans la base + if (strlen($_POST['username']) < 4) { + $error[] = 'Le pseudo est trop court ! (4 caractères minimum)'; + } + + else { + $stmt = $db->prepare('SELECT username FROM blog_members WHERE username = :username'); + $stmt->bindValue(':username',$postusername,PDO::PARAM_STR); + $stmt->execute(); + $row = $stmt->fetch(); + + if (!empty($row['username'])) { + $error[] = 'Ce pseudo est déjà utilisé ! Merci d\'en choisir un autre.'; + } + } + + $verif_box = $_REQUEST["captcha"]; + + // on vérifie le captcha + if(md5($verif_box).'a4xn' == $_COOKIE['tntcon']) { + + if(!isset($error)){ + $hashedpassword = $user->password_hash($_POST['password'], PASSWORD_BCRYPT); + $pid = md5(uniqid(rand(),true)); + $activation = md5(uniqid(rand(),true)); + + // Remove all illegal characters from an email address + $email = filter_var($email, FILTER_SANITIZE_EMAIL); + + try { + //On insert les données dans la table blog_members + $result1 = $db->prepare('INSERT INTO blog_members (username,password,email,pid,memberDate,active) VALUES (:username,:password,:email,:pid,:memberDate,:active)') ; + $result1->execute(array( + ':username' => $username, + ':password' => $hashedpassword, + ':email' => $email, + ':pid' => $pid, + ':memberDate' => date('Y-m-d H:i:s'), + ':active' => $activation + )); + + $newuid = $db->lastInsertId(); + + //On insert aussi le PID et l'ID du membre dans la table xbt_users + $result2 = $db->prepare('INSERT INTO xbt_users (uid, torrent_pass) VALUES (:uid, :torrent_pass)'); + $result2->execute(array( + ':uid' => $newuid, + ':torrent_pass' => $pid + )); + + if(!$result1 || !$result2) + { + $error[] = 'Erreur : votre compte utilisateur n\'a pas pu être créé.'; + } + + else { + // si tout OK, on envoie le mail de confirmation de compte + $newuid = $db->lastInsertId(); + $to = $email; + $subject = "Confirmation d'enregistrement de compte"; + $body = "

Merci de vous êtes enregistré(e) sur ".SITENAMELONG.".

+

Pour activer votre compte, veuillez cliquer sur le lien suivant: ".SITEURL."/activate.php?x=$newuid&y=$activation

+

Cordialement,
Le webmaster de ".SITENAMELONG."

"; + + $mail = new Mail(); + $mail->setFrom(SITEMAIL); + $mail->addAddress($to); + $mail->subject($subject); + $mail->body($body); + $mail->send(); + + //redirect to index page + header('Location: ../membres.php?action=activation'); + exit; + } + + + } catch(PDOException $e) { + echo $e->getMessage(); + } + + } + + } // captcha + + else { + $error[] = 'Mauvais code anti-spam ! Veuillez recopier le bon code.'; + } + + } + + //check for any errors + if(isset($error)){ + foreach($error as $error){ + echo '
Erreur !'.$error.'
'; + } + } + ?> + +
+ +


+ '>

+ +

(6 caractères minimum)
+ '>
+ + + + +

+ +


+ '>

+ +


+ '>

+ +


+  captcha +

+ +

+ +
+
+ + + +
+
+
+ + + + + diff --git a/Html/admin/upload.php b/Html/admin/upload.php new file mode 100644 index 0000000..a967bcc --- /dev/null +++ b/Html/admin/upload.php @@ -0,0 +1,373 @@ + retour sur la page login +if(!$user->is_logged_in()) { + header('Location: login.php?action=connecte'); +} + +// titre de la page +$pagetitle= 'Ajouter un torrent'; +include_once('../includes/header.php'); +?> + + +
+ + + +
+
+ + 0) { + $error[] = "Erreur lors du transfert"; + } + + // taille de l'image + if ($_FILES['imagetorrent']['size'] > MAX_FILE_SIZE) { + $error[] = "L'image est trop grosse."; + } + + //$extensions_valides = array( 'jpg' , 'png' ); + //1. strrchr renvoie l'extension avec le point (« . »). + //2. substr(chaine,1) ignore le premier caractère de chaine. + //3. strtolower met l'extension en minuscules. + $extension_upload = strtolower( substr( strrchr($_FILES['imagetorrent']['name'], '.') ,1) ); + + if(!in_array($extension_upload,$EXTENSIONS_VALIDES)) { + $error[] = "Extension d'image incorrecte (.png ou .jpg seulement !)"; + } + + $image_sizes = getimagesize($_FILES['imagetorrent']['tmp_name']); + if ($image_sizes[0] > $WIDTH_MAX OR $image_sizes[1] > $HEIGHT_MAX) { + $error[] = "Image trop grande (dimensions)"; + } + + // on upload l'image + if(!move_uploaded_file($_FILES['imagetorrent']['tmp_name'], $REP_IMAGES_TORRENTS.$_FILES['imagetorrent']['name'])) { + $error[] = 'Problème de téléchargement de l\'image.'; + } + + // *************************************** + // fin image torrent upload + // *************************************** + + + // *************************************** + // upload fichier torrent + // *************************************** + + // si il y a bien un fichier .torrent, on poursuit ... + if (!isset($_FILES["torrent"]) && empty($torrent)) { + $error[] = 'Veuillez choisir un fichier .torrent'; + } + + else { + //Collecte des données ... + extract($_POST); + + $type_file = $_FILES['torrent']['type']; + $tmp_file = $_FILES['torrent']['tmp_name']; + $name_file = $_FILES['torrent']['name']; + + + $fd = fopen($_FILES["torrent"]["tmp_name"], "rb"); + + $length=filesize($_FILES["torrent"]["tmp_name"]); + if ($length) { + $alltorrent = fread($fd, $length); + } + + $array = BDecode($alltorrent); + + $hash = sha1(BEncode($array["info"])); + + fclose($fd); + + if (isset($array["info"]) && $array["info"]) { + $upfile=$array["info"]; + } + else { + $upfile = 0; + } + + if (isset($upfile["length"])) { + $size = (float)($upfile["length"]); + } + else if (isset($upfile["files"])) { + // multifiles torrent + $size=0; + foreach ($upfile["files"] as $file) { + $size+=(float)($file["length"]); + } + } + else { + $size = "0"; + } + + $announce=trim($array["announce"]); + + + // on vérifie si le torrent existe dja : on compare les champs info_hash + //$stmt = $db->query("SELECT * FROM xbt_files WHERE LOWER(hex('info_hash')) = '".$hash."'"); + $stmt = $db->query("SELECT * FROM xbt_files WHERE info_hash = 0x$hash"); + $exists = $stmt->fetch(); + if(!empty($exists)) { + $error[] = "Ce torrent existe dans la base."; + } + + // On vérifie que l'url d'announce n'est pas vide + //if(empty($array['announce'])) { + // $error[] = 'L\'url d\'announce est vide !'; + //} + + + // on vérifie l'url d'announce + if($array['announce'] != $ANNOUNCEURL) { + $error[] = 'Vous n\'avez pas fournit la bonne adresse d\'announce dans votre torrent : l\'url d\'announce doit etre '.$ANNOUNCEURL; + } + + // si le nom du torrent n'a pas été fournit (facultatif), on récupère le nom public du fichier + if (empty($_POST['postTitle'])) + { + // on calcule le nom du fichier SANS .torrent a la fin + $file = $_FILES['torrent']['name']; + $var = explode(".",$file); + $nb = count($var)-1; + $postTitle = substr($file, 0, strlen($file)-strlen($var[$nb])-1); + } + else + { + // sinon on prend le nom fournit dans le formulaire d'upload + $postTitle = $_POST['postTitle']; + } + + // on vérifie la taille du fichier .torrent + if ($_FILES['torrent']['size'] > $MAX_FILE_SIZE){ + $error[] = 'Le fichier .torrent est trop gros. Etes-vous certain qu\'il s\'agisse d\'un fichier .torrent ?'; + } + + /* + if(!strstr($type_file, 'torrent')){ + $error[] = 'Le fichier n\'est pas un fichier .torrent !'; + } + */ + + /* + if($postTitle ==''){ + $error[] = 'Veuillez entrer un titre.'; + } + */ + + if($postLink ==''){ + $error[] = 'Veuillez entrer un lien web pour le média proposé.'; + } + + if($postDesc ==''){ + $error[] = 'Veuillez entrer une courte description.'; + } + + if($postCont ==''){ + $error[] = 'Veuillez entrer un contenu.'; + } + + if($catID ==''){ + $error[] = 'Veuillez choisir une catégorie.'; + } + + if($licenceID ==''){ + $error[] = 'Veuillez choisir une licence.'; + } + + }// fin if (isset($_FILES["torrent"])) + + + + // s'il n'y a pas d'erreur on y va !!! + if(!isset($error)) { + + // on upload le fichier .torrent + if(!move_uploaded_file($_FILES['torrent']['tmp_name'], $REP_TORRENTS.$_FILES['torrent']['name'])) { + $error[] = 'Problème lors de l\'upload du fichier .torrent'; + } + +// *************************************** +// fin upload fichier torrent +// *************************************** + try { + + $postSlug = slug($postTitle); + $postAuthor = html($_SESSION['username']); + + //On insert les données dans la table blog_posts_seo + $stmt = $db->prepare('INSERT INTO blog_posts_seo (postHash,postTitle,postAuthor,postSlug,postLink,postDesc,postCont,postTaille,postDate,postTorrent,postImage) VALUES (:postHash, :postTitle, :postAuthor, :postSlug, :postLink, :postDesc, :postCont, :postTaille, :postDate, :postTorrent, :postImage)') ; + $stmt->execute(array( + ':postHash' => $hash, + ':postTitle' => $postTitle, + ':postAuthor' => $postAuthor, + ':postSlug' => $postSlug, + ':postLink' => $postLink, + ':postDesc' => $postDesc, + ':postCont' => $postCont, + ':postTaille' => $size, + ':postDate' => date('Y-m-d H:i:s'), + ':postTorrent' => $name_file, + ':postImage' => $image_torrent + )); + + $postID = $db->lastInsertId(); + + write_log('Upload torrent : '.$postTitle.' par '.$postAuthor, $db); + + //On insert les données dans la table xbt_files également + $stmt2 = $db->query("INSERT INTO xbt_files SET info_hash=0x$hash, ctime=UNIX_TIMESTAMP() ON DUPLICATE KEY UPDATE flags=0"); + + //On ajoute les données dans la table categories + if(is_array($catID)){ + foreach($_POST['catID'] as $catID){ + $stmt = $db->prepare('INSERT INTO blog_post_cats (postID,catID)VALUES(:postID,:catID)'); + $stmt->execute(array( + ':postID' => $postID, + ':catID' => $catID + )); + } + } + + //On ajoute les données dans la table licences + if(is_array($licenceID)){ + foreach($_POST['licenceID'] as $licenceID){ + $stmt = $db->prepare('INSERT INTO blog_post_licences (postID_BPL,licenceID_BPL)VALUES(:postID_BPL,:licenceID_BPL)'); + $stmt->execute(array( + ':postID_BPL' => $postID, + ':licenceID_BPL' => $licenceID + )); + } + } + + //On redirige vers la page torrents pour tout ajout de torrent + header('Location: '.SITEURL.'/torrents.php?action=ajoute'); + exit; + + } catch(PDOException $e) { + echo $e->getMessage(); + } + + } + + } + + //S'il y a des erreurs, on les affiche + if(isset($error)){ + foreach($error as $error){ + echo '
ERREUR : '.$error.'
'; + } + } + ?> + + + +

Ajouter un torrent

+

URL d'annonce :

+ +
+ +
+ +
+ Fichier .torrent + + +
+ +
+ +
+ Titre (facultatif) + +
+ +
+ +
+ Lien web du projet, de l'oeuvre, ... + +
+ +


+

+ +


+

+ +
+ Icone d'illustration (page accueil et article) + PNG ou JPG seulement | max. | max. px X px
+ +
+ +
+ +
+ Catégories + + query('SELECT catID, catTitle FROM blog_cats ORDER BY catTitle'); + while($row2 = $stmt2->fetch()){ + echo ' '.$row2['catTitle'].'
'; + } + ?> + +
+ +
+
+ Licences + + query('SELECT licenceID, licenceTitle FROM blog_licences ORDER BY licenceTitle'); + while($row3 = $stmt3->fetch()){ + echo ' '.$row3['licenceTitle'].'
'; + } + + ?> + +
+ +

+ +
+ + + +
+ + + +
+
+
+ + + + + diff --git a/Html/admin/upload.php.DIST b/Html/admin/upload.php.DIST new file mode 100644 index 0000000..5c02983 --- /dev/null +++ b/Html/admin/upload.php.DIST @@ -0,0 +1,372 @@ + retour sur la page login +if(!$user->is_logged_in()) { + header('Location: login.php'); +} + +// titre de la page +$pagetitle= 'Ajouter un torrent'; +include_once '../includes/header.php'; +?> + + +
+ + + +
+
+ + 0) { + $error[] = "Erreur lors du transfert"; + } + + // taille de l'image + if ($_FILES['imagetorrent']['size'] > MAX_SIZE) { + $error = "L'image est trop grosse."; + } + + $extensions_valides = array( 'jpg' , 'png' ); + //1. strrchr renvoie l'extension avec le point (« . »). + //2. substr(chaine,1) ignore le premier caractère de chaine. + //3. strtolower met l'extension en minuscules. + $extension_upload = strtolower( substr( strrchr($_FILES['imagetorrent']['name'], '.') ,1) ); + + if(!in_array($extension_upload,$extensions_valides)) { + $error[] = "Extension d'image incorrecte (.png ou .jpg seulement !)"; + } + + $image_sizes = getimagesize($_FILES['imagetorrent']['tmp_name']); + if ($image_sizes[0] > WIDTH_MAX OR $image_sizes[1] > HEIGHT_MAX) { + $error = "Image trop grande (dimensions)"; + } + + // on upload l'image + if(!move_uploaded_file($_FILES['imagetorrent']['tmp_name'], $REP_IMAGES_TORRENTS.$_FILES['imagetorrent']['name'])) { + $error[] = 'Problème de téléchargement de l\'image.'; + } + + // *************************************** + // fin image torrent upload + // *************************************** + + + // *************************************** + // upload fichier torrent + // *************************************** + + // si il y a bien un fichier .torrent, on poursuit ... + if (!isset($_FILES["torrent"]) && empty($torrent)) { + $error[] = 'Veuillez choisir un fichier .torrent'; + } + + else { + //Collecte des données ... + extract($_POST); + + $type_file = $_FILES['torrent']['type']; + $tmp_file = $_FILES['torrent']['tmp_name']; + $name_file = $_FILES['torrent']['name']; + + + $fd = fopen($_FILES["torrent"]["tmp_name"], "rb"); + + $length=filesize($_FILES["torrent"]["tmp_name"]); + if ($length) { + $alltorrent = fread($fd, $length); + } + + $array = BDecode($alltorrent); + + $hash = sha1(BEncode($array["info"])); + + fclose($fd); + + if (isset($array["info"]) && $array["info"]) { + $upfile=$array["info"]; + } + else { + $upfile = 0; + } + + if (isset($upfile["length"])) { + $size = (float)($upfile["length"]); + } + else if (isset($upfile["files"])) { + // multifiles torrent + $size=0; + foreach ($upfile["files"] as $file) { + $size+=(float)($file["length"]); + } + } + else { + $size = "0"; + } + + $announce=trim($array["announce"]); + + + // on vérifie si le torrent existe dja : on compare les champs info_hash + //$stmt = $db->query("SELECT * FROM xbt_files WHERE LOWER(hex('info_hash')) = '".$hash."'"); + $stmt = $db->query("SELECT * FROM xbt_files WHERE info_hash = 0x$hash"); + $exists = $stmt->fetch(); + if(!empty($exists)) { + $error[] = "Ce torrent existe dans la base."; + } + + // On vérifie que l'url d'announce n'est pas vide + //if(empty($array['announce'])) { + // $error[] = 'L\'url d\'announce est vide !'; + //} + + + // on vérifie l'url d'announce + if($array['announce'] != $ANNOUNCEURL) { + $error[] = 'Vous n\'avez pas fournit la bonne adresse d\'announce dans votre torrent : l\'url d\'announce doit etre '.$ANNOUNCEURL; + } + + // si le nom du torrent n'a pas été fournit (facultatif), on récupère le nom public du fichier + if (empty($_POST['postTitle'])) + { + // on calcule le nom du fichier SANS .torrent a la fin + $file = $_FILES['torrent']['name']; + $var = explode(".",$file); + $nb = count($var)-1; + $postTitle = substr($file, 0, strlen($file)-strlen($var[$nb])-1); + } + else + { + // sinon on prend le nom fournit dans le formulaire d'upload + $postTitle = $_POST['postTitle']; + } + + // on vérifie la taille du fichier .torrent + if ($_FILES['torrent']['size'] > $MAX_FILE_SIZE){ + $error[] = 'Le fichier .torrent est trop gros. Etes-vous certain qu\'il s\'agisse d\'un fichier .torrent ?'; + } + + /* + if(!strstr($type_file, 'torrent')){ + $error[] = 'Le fichier n\'est pas un fichier .torrent !'; + } + */ + + /* + if($postTitle ==''){ + $error[] = 'Veuillez entrer un titre.'; + } + */ + + if($postLink ==''){ + $error[] = 'Veuillez entrer un lien web pour le média proposé.'; + } + + if($postDesc ==''){ + $error[] = 'Veuillez entrer une courte description.'; + } + + if($postCont ==''){ + $error[] = 'Veuillez entrer un contenu.'; + } + + if($catID ==''){ + $error[] = 'Veuillez choisir une catégorie.'; + } + + if($licenceID ==''){ + $error[] = 'Veuillez choisir une licence.'; + } + + }// fin if (isset($_FILES["torrent"])) + + + + // s'il n'y a pas d'erreur on y va !!! + if(!isset($error)) { + + // on upload le fichier .torrent + if(!move_uploaded_file($_FILES['torrent']['tmp_name'], $REP_TORRENTS.$_FILES['torrent']['name'])) { + $error[] = 'Problème lors de l\'upload du fichier .torrent'; + } + +// *************************************** +// fin upload fichier torrent +// *************************************** + try { + + $postSlug = slug($postTitle); + $postAuthor = $_SESSION['username']; + + //On insert les données dans la table blog_posts_seo + $stmt = $db->prepare('INSERT INTO blog_posts_seo (postTitle,postAuthor,postSlug,postLink,postDesc,postCont,postTaille,postDate,postTorrent,postImage) VALUES (:postTitle, :postAuthor, :postSlug, :postLink, :postDesc, :postCont, :postTaille, :postDate, :postTorrent, :postImage)') ; + $stmt->execute(array( + ':postTitle' => $postTitle, + ':postAuthor' => $postAuthor, + ':postSlug' => $postSlug, + ':postLink' => $postLink, + ':postDesc' => $postDesc, + ':postCont' => $postCont, + ':postTaille' => $size, + ':postDate' => date('Y-m-d H:i:s'), + ':postTorrent' => $name_file, + ':postImage' => $image_torrent + )); + + $postID = $db->lastInsertId(); + + //On insert les données dans la table xbt_files également + $stmt2 = $db->query("INSERT INTO xbt_files SET info_hash=0x$hash, ctime=UNIX_TIMESTAMP() ON DUPLICATE KEY UPDATE flags=0"); + //$stmt2 = $db->query("INSERT INTO xbt_files (info_hash,mtime,ctime) VALUES(X'".$info['info_hash']."',UNIX_TIMESTAMP(),UNIX_TIMESTAMP())"); + + //On ajoute les données dans la table categories + if(is_array($catID)){ + foreach($_POST['catID'] as $catID){ + $stmt = $db->prepare('INSERT INTO blog_post_cats (postID,catID)VALUES(:postID,:catID)'); + $stmt->execute(array( + ':postID' => $postID, + ':catID' => $catID + )); + } + } + + + //On ajoute les données dans la table licences + if(is_array($licenceID)){ + foreach($_POST['licenceID'] as $licenceID){ + $stmt = $db->prepare('INSERT INTO blog_post_licences (postID_BPL,licenceID_BPL)VALUES(:postID_BPL,:licenceID_BPL)'); + $stmt->execute(array( + ':postID_BPL' => $postID, + ':licenceID_BPL' => $licenceID + )); + } + } + + //On redirige vers la page torrents = action = ok + header('Location: '.SITEURL.'/torrents.php?action=ok'); + exit; + + } catch(PDOException $e) { + echo $e->getMessage(); + } + + } + + } + + //S'il y a des erreurs, on les affiche + if(isset($error)){ + foreach($error as $error){ + echo '
ERREUR : '.$error.'
'; + } + } + ?> + + + +

Ajouter un torrent

+

URL d'annonce :

+ +
+ +
+ +
+ Fichier .torrent + + +
+ +
+ +
+ Titre (facultatif) + '> +
+ +
+ +
+ Lien web du projet, de l'oeuvre, ... + '> +
+ +


+

+ +


+

+ +
+ Icone d'illustration (page accueil et article) + PNG ou JPG seulement | max. | max. px X px
+ +
+ +
+ +
+ Catégories + + query('SELECT catID, catTitle FROM blog_cats ORDER BY catTitle'); + while($row2 = $stmt2->fetch()){ + echo " ".$row2['catTitle']."
"; + } + ?> + +
+ +
+
+ Licences + + query('SELECT licenceID, licenceTitle FROM blog_licences ORDER BY licenceTitle'); + while($row3 = $stmt3->fetch()){ + echo " ".$row3['licenceTitle']."
"; + } + + ?> + +
+ +

+ +
+ + + +
+ + + +
+
+
+ + + + + diff --git a/Html/admin/users.php b/Html/admin/users.php new file mode 100644 index 0000000..9e12cd9 --- /dev/null +++ b/Html/admin/users.php @@ -0,0 +1,170 @@ + retour sur la page login +if(!$user->is_logged_in()) { + header('Location: login.php'); +} + +if(isset($_SESSION['userid'])) { + if($_SESSION['userid'] != 1) { + header('Location: '.SITEURL); + } +} + +//show message from add / edit page +if(isset($_GET['deluser'])){ + + //if user id is 1 ignore + if($_GET['deluser'] !='1'){ + + // On supprime l'avatar du membre + $stmt = $db->prepare('SELECT avatar FROM blog_members WHERE memberID = :memberID'); + $stmt->execute(array(':memberID' => (int) $_GET['deluser'])); + $sup = $stmt->fetch(); + $file = $REP_IMAGES_AVATARS.$sup['avatar']; + if (!empty($sup['avatar'])) { + unlink($file); + } + + // on supprime le membre + $stmt = $db->prepare('DELETE FROM blog_members WHERE memberID = :memberID') ; + $stmt->execute(array(':memberID' => (int) $_GET['deluser'])); + + // on supprime les données torrent du membre + $stmt1 = $db->prepare('DELETE FROM xbt_users WHERE uid = :uid') ; + $stmt1->execute(array(':uid' => (int) $_GET['deluser'])); + + // on supprime les commentaires du membre + //$delname = html($_GET['delname']); + //$stmt2 = $db->prepare('DELETE FROM blog_posts_comments WHERE cuser = :cuser') ; + //$stmt2->execute(array(':cuser' => $delname)); + + header('Location: users.php?action=supprime'); + exit; + + } +} + +// titre de la page +$pagetitle= 'Admin : gestion des membres'; +include_once '../includes/header.php'; + +?> + + + +
+ + + + +
+
+ + + + Le membre a été supprimé avec succès.'; + } + if(isset($_GET['action']) && $_GET['action'] == 'ajoute'){ + echo '

Le membre a été ajouté avec succès.

'; + } + ?> + + + + + + + + + + + + query('SELECT memberID FROM blog_members'); + + //pass number of records to + $pages->set_total($stmt->rowCount()); + + $stmt = $db->query('SELECT memberID,username,pid,email,memberDate,active FROM blog_members ORDER BY memberID DESC '.$pages->get_limit()); + while($row = $stmt->fetch()){ + + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + + sscanf($row['memberDate'], "%4s-%2s-%2s %2s:%2s:%2s", $annee, $mois, $jour, $heure, $minute, $seconde); + echo ''; + ?> + + '; + if($row['active'] == 'yes') { + echo 'oui'; + } + elseif($row['active'] != 'yes' || $row['active'] == 'no') { + echo 'non'; + } + echo ''; + ?> + + + + '; + + } + + } catch(PDOException $e) { + echo $e->getMessage(); + } + ?> +
IDPseudoPIDEmailInscriptionValidéAction
'.html($row['memberID']).''.html($row['username']).''.html($row['pid']).''.html($row['email']).''.$jour.'-'.$mois.'-'.$annee.' + + + + | + + +
+ +
+ + page_links(); + ?> + +

+ +

+
+ + + +
+
+
+ + + + + -- cgit v1.2.1