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/upload.php | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 373 insertions(+) create mode 100644 Html/admin/upload.php (limited to 'Html/admin/upload.php') 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'].'
'; + } + + ?> + +
+ +

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