Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /** Main-functions **/
- <?php
- session_start();
- $bddhost = 'localhost';
- $bddname = 'streaming';
- $bdduser = 'root';
- $bddpswd = '';
- try{
- $bdd = new PDO('mysql:host='.$bddhost.';dbname='.$bddname,$bdduser,$bddpswd,array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8', PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
- }catch(PDOexception $e){
- die("Une erreur est survenue lors de la connexion à la base de données");
- }
- function post($title,$content){
- global $bdd;
- $p = [
- 'nom' => $title,
- 'description' => $content
- ];
- $sql = "
- INSERT INTO manga(nom,description,manga_id,date)
- VALUES(:nom,:description,:manga_id,NOW())
- ";
- $req = $bdd->prepare($sql);
- $req->execute($p);
- }
- function post_img($tmp_name, $extension){
- global $bdd;
- $id = $bdd->lastInsertId();
- $i = [
- 'id' => $id,
- 'image' => $id.$extension //$id = 25 , $extension = .jpg $id.$extension = "25".".jpg" = 25.jpg
- ];
- $sql = "UPDATE manga SET image = :image WHERE id = :id";
- $req = $bdd->prepare($sql);
- $req->execute($i);
- move_uploaded_file($tmp_name,"../img/posts/".$id.$extension);
- }
- function get_posts(){
- global $bdd;
- $req = $bdd->query("SELECT * FROM manga ORDER BY date DESC");
- $results = [];
- while($rows = $req->fetchObject()){
- $results[] = $rows;
- }
- return $results;
- }
- /* L'édit des fichiers*/
- function get_post(){
- global $bdd;
- $req = $bdd->query("
- SELECT manga.id,
- manga.nom,
- manga.description,
- manga.manga_id,
- manga.image,
- manga.date
- ");
- $result = $req->fetchObject();
- return $result;
- }
- /* Indique le bon format des entêtes (par défaut apache risque de les envoyer au standard ISO-8859-1)*/
- header('Content-type: text/html; charset=UTF-8');
- /* Initialisation de la variable du message de réponse*/
- $message = null;
- /* Récupération des variables issues du formulaire par la méthode post*/
- $pseudo = filter_input(INPUT_POST, 'pseudo');
- $pass = sha1(filter_input(INPUT_POST, 'pass'));
- $mail = filter_input(INPUT_POST, 'mail');
- /* Si le formulaire est envoyé */
- if (isset($pseudo,$pass,$mail))
- {
- /* Teste que les valeurs ne sont pas vides ou composées uniquement d'espaces */
- $pseudo = trim($pseudo) != '' ? $pseudo : null;
- $pass = trim($pass) != '' ? $pass : null;
- $mail = trim($mail) != '' ? $mail : null;
- /* Si $pseudo et $pass différents de null */
- if(isset($pseudo,$pass))
- {
- /* Connexion au serveur : dans cet exemple, en local sur le serveur d'évaluation
- A MODIFIER avec vos valeurs */
- $hostname = "localhost";
- $database = "streaming";
- $username = "root";
- $password = "";
- /* Configuration des options de connexion */
- /* Désactive l'éumlateur de requêtes préparées (hautement recommandé) */
- $pdo_options[PDO::ATTR_EMULATE_PREPARES] = false;
- /* Active le mode exception */
- $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
- /* Indique le charset */
- $pdo_options[PDO::MYSQL_ATTR_INIT_COMMAND] = "SET NAMES utf8";
- /* Connexion */
- try
- {
- $connect = new PDO('mysql:host='.$hostname.';dbname='.$database, $username, $password, $pdo_options);
- }
- catch (PDOException $e)
- {
- exit('problème de connexion à la base');
- }
- /* Requête pour compter le nombre d'enregistrements répondant à la clause : champ du pseudo de la table = pseudo posté dans le formulaire */
- $requete = "SELECT count(*) FROM membres WHERE pseudo = ?";
- try
- {
- /* préparation de la requête*/
- $req_prep = $connect->prepare($requete);
- /* Exécution de la requête en passant la position du marqueur et sa variable associée dans un tableau*/
- $req_prep->execute(array(0=>$pseudo));
- /* Récupération du résultat */
- $resultat = $req_prep->fetchColumn();
- if ($resultat == 0)
- /* Résultat du comptage = 0 pour ce pseudo, on peut donc l'enregistrer */
- {
- /* Pour enregistrer la date actuelle (date/heure/minutes/secondes) on peut utiliser directement la fonction mysql : NOW()*/
- $insertion = "INSERT INTO membres(pseudo,pass,mail,date_enregistrement) VALUES(:nom, :password,:mail, NOW())";
- /* préparation de l'insertion */
- $insert_prep = $connect->prepare($insertion);
- /* Exécution de la requête en passant les marqueurs et leur variables associées dans un tableau*/
- $inser_exec = $insert_prep->execute(array(':nom'=>$pseudo,':password'=>$pass,':mail'=>$mail));
- /* Si l'insertion s'est faite correctement...*/
- if ($inser_exec === true)
- {
- /* Démarre une session si aucune n'est déjà existante et enregistre le pseudo dans la variable de session $_SESSION['login'] qui donne au visiteur la possibilité de se connecter. */
- if (!session_id()) session_start();
- $_SESSION['login'] = $pseudo;
- /* A MODIFIER Remplacer le '#' par l'adresse de votre page de destination, sinon ce lien indique la page actuelle.*/
- $message = '<p style="color:#fff">Votre inscription est enregistrée -> <a href="login.php">Connexion</a></p>';
- /*ou redirection vers une page en cas de succès ex : menu.php*/
- /*header("Location: menu.php");
- exit(); */
- }
- }
- else
- { /* Le pseudo est déjà utilisé */
- $message = '<p style="color:#fff">Ce pseudo est déjà utilisé, changez-le.</p>';
- }
- }
- catch (PDOException $e)
- {
- $message = '<p style="color:#fff">Problème dans la requête d\'insertion <br/> Veuillez verifiez l\'email</p>';
- }
- }
- else
- { /* Au moins un des deux champs "pseudo" ou "mot de passe" n'a pas été rempli*/
- $message = '<p style="color:#fff">Les champs Pseudo et Mot de passe doivent être remplis.</p>';
- }
- }
- /* Login */
- /* Indique le bon format des entêtes (par défaut apache risque de les envoyer au standard ISO-8859-1)*/
- header('Content-type: text/html; charset=UTF-8');
- /* Initialisation de la variable du message de réponse*/
- $message = null;
- /* Récupération des variables issues du formulaire par la méthode post*/
- $pseudo = filter_input(INPUT_POST, 'pseudo');
- $pass = sha1(filter_input(INPUT_POST, 'pass'));
- /* Si le formulaire est envoyé*/
- if (isset($pseudo,$pass))
- {
- /* Teste que les valeurs ne sont pas vides ou composées uniquement d'espaces */
- $pseudo = trim($pseudo) != '' ? $pseudo : null;
- $pass = sha1(trim($pass)) != '' ? $pass : null;
- /* Si $pseudo et $pass différents de null */
- if(isset($pseudo,$pass))
- {
- /* Connexion au serveur : dans cet exemple, en local sur le serveur d'évaluation
- A MODIFIER avec vos valeurs */
- $hostname = "localhost";
- $database = "streaming";
- $username = "root";
- $password = "";
- /* Configuration des options de connexion */
- /* Désactive l'éumlateur de requêtes préparées (hautement recommandé) */
- $pdo_options[PDO::ATTR_EMULATE_PREPARES] = false;
- /* Active le mode exception */
- $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
- /* Indique le charset */
- $pdo_options[PDO::MYSQL_ATTR_INIT_COMMAND] = "SET NAMES utf8";
- /* Connexion */
- try
- {
- $connect = new PDO('mysql:host='.$hostname.';dbname='.$database, $username, $password, $pdo_options);
- }
- catch (PDOException $e)
- {
- exit('problème de connexion à la base');
- }
- /* Requête pour récupérer les enregistrements répondant à la clause : champ du pseudo et champ du mdp de la table = pseudo et mdp posté dans le formulaire */
- $requete = "SELECT * FROM membres WHERE pseudo = :nom AND pass = :password";
- try
- {
- /* Préparation de la requête*/
- $req_prep = $connect->prepare($requete);
- /* Exécution de la requête en passant les marqueurs et leur variables associées dans un tableau*/
- $req_prep->execute(array(':nom'=>$pseudo,':password'=>$pass));
- /* Création du tableau du résultat avec fetchAll qui récupère tout le tableau en une seule fois*/
- $resultat = $req_prep->fetchAll();
- $nb_result = count($resultat);
- if ($nb_result == 1)
- {
- /* Démarre une session si aucune n'est déjà existante et enregistre le pseudo dans la variable de session $_SESSION['login'] qui donne au visiteur la possibilité de se connecter. */
- if (!session_id()) session_start();
- $_SESSION['login'] = $pseudo;
- $message =
- header("Location: ../index.php");
- exit();
- /* Si vous voulez récupérer les données elles se trouvent dans la première et unique ligne du tableau $resultat par exemple */
- /* $result = $resultat[0];
- echo $result['pseudo'];
- echo $result['date_enregistrement'];
- */
- }
- else if ($nb_result > 1)
- {
- /* Par sécurité si plusieurs réponses de la requête mais si la table est bien construite on ne devrait jamais rentrer dans cette condition */
- $message = '<p style="color:#fff">Problème de d\'unicité dans la table</p>';
- }
- else
- { /* Le pseudo ou le mot de passe sont incorrect */
- $message = '<p style="color:#fff">Le pseudo ou le mot de passe sont incorrect</p>';
- }
- }
- catch (PDOException $e)
- {
- $message = '<p style="color:#fff">Problème dans la requête de sélection</p>';
- }
- }
- else
- {/*au moins un des deux champs "pseudo" ou "mot de passe" n'a pas été rempli*/
- $message = '<p style="color:#fff">Les champs Pseudo et Mot de passe doivent être remplis.</p>';
- }
- }
- /** Fichier **/
- <?php
- require('../../../../functions/main-functions.php');
- require('../../functions/admin.php');
- $categorie = "Harem"
- ?>
- <!DOCTYPE html>
- <html lang="fr">
- <head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <title>Manga Streaming</title>
- <link rel="stylesheet" href="../../css/style.css">
- <link rel="stylesheet" href="../../css/header.css">
- <link href='http://fonts.googleapis.com/css?family=Cookie' rel='stylesheet' type='text/css'>
- <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
- </head>
- <body>
- <header class="header-two-bars">
- <div class="header-first-bar">
- <div class="header-limiter">
- <h1><a href="#">Manga<span>Streaming</span></a></h1>
- <nav>
- <a href="../../index.php" class="selected">Accueil</a>
- </nav>
- <div class="header-user-menu">
- <ul>
- <li><a href="#"><?php echo htmlspecialchars($_SESSION['admin']).' :'; ?></a></li>
- <li><a href="#">Settings</a></li>
- <li><a href="#" class="highlight">Logout</a></li>
- </ul>
- </div>
- </div>
- </div>
- <div class="header-second-bar">
- <div class="header-limiter">
- <h2><a href="#">Manga Streaming / Admin</a></h2>
- <nav>
- <a href="#"><i class="fa fa-comments-o"></i> Chat</a>
- <a href="#"><i class="fa fa-group"></i> Inscrit</a>
- <?php
- if(isset($_SESSION['admin'])){
- ?>
- <a href="#"><i class="fa fa-cogs"></i> Settings</a>
- <?php
- }
- ?>
- <a href="../../../contact.php"><i class="fa fa-exclamation-triangle"></i> Besoin d'aide</a>
- </nav>
- </div>
- </div>
- </header>
- <div id="manga">
- <div class="Message">
- <h1 align="center" style=" font-size: 35px;text-transform: uppercase;font-weight: 500;margin-left: -40%;;"><?php echo $categorie; ?>:</h1>
- </div>
- <section class="listings">
- <div class="wrapper">
- <?php
- if(isset($_POST['post'])){
- $title = htmlspecialchars(trim($_POST['nom']));
- $content = htmlspecialchars(trim($_POST['content']));
- $rutube = htmlspecialchars(trim($_POST['rutube']));
- $streamago = htmlspecialchars(trim($_POST['streamago']));
- $errors = [];
- if(empty($title) || empty($content) || empty($rutube) || empty($streamago)){
- $errors['empty'] = "Veuillez remplir tous les champs / verifie surtout les liens de streaming :)";
- }
- if(!empty($_FILES['image']['name'])){
- $file = $_FILES['image']['name'];
- $extensions = ['.png','.jpg','.jpeg','.gif','.PNG','.JPG','.JPEG','.GIF'];
- $extension = strrchr($file,'.');
- if(!in_array($extension,$extensions)){
- $errors['image'] = "Cette image n'est pas valable";
- }
- }
- if(!empty($errors)){
- ?>
- <div class="card red">
- <div class="card-content white-text">
- <?php
- foreach($errors as $error){
- echo $error."<br/>";
- }
- ?>
- </div>
- </div>
- <?php
- }else{
- post($title,$content,$rutube,$streamago);
- if(!empty($_FILES['image']['name'])){
- post_img($_FILES['image']['tmp_name'], $extension);
- }else{
- $id = $db->lastInsertId();
- }
- }
- }
- ?>
- <h2>Ajouter un manga a la sélection</h2>
- <form method="post" enctype="multipart/form-data">
- <div class="row">
- <div class="input-field col s12">
- Titre :
- <input type="text" name="nom" id="title"/>
- </div>
- <div class="input-field col s12">
- Description :
- <textarea name="content" id="content" class="materialize-textarea"></textarea>
- </div>
- <div class="input-field col s12">
- lien Rutube
- <textarea name="rutube" id="lien" class="materialize-textarea" placeholder="exemple: https://www.youtube.com/"></textarea>
- </div>
- <div class="input-field col s12">
- lien Streamago :
- <textarea name="streamago" id="lien" class="materialize-textarea" placeholder="exemple: https://www.youtube.com/"></textarea>
- </div>
- <div class="col s12">
- <div class="input-field file-field">
- <div class="btn col s2">
- <span>Image</span>
- <input type="file" name="image" class="col s12"/>
- </div>
- </div>
- </div>
- <div class="col s6 right-align">
- <br/><br/>
- <button class="btn" type="submit" name="post">Ajouter</button>
- </div>
- </div>
- </form>
- </div>
- </section>
- </div>
- <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement