Advertisement
Guest User

Update syntax and image uploading in PHP | Stackoverflow

a guest
Feb 21st, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 7.81 KB | None | 0 0
  1. <?php
  2.     session_start();
  3.     require_once '../assets/php/db.conn.php';
  4.     require_once '../assets/php/func.main.php';
  5.     date_default_timezone_set('Asia/Manila');
  6.     if(!isset($_SESSION)){
  7.         header('Location: ../');
  8.     }
  9.     error_reporting(E_ALL);
  10.         ini_set('display_errors', 1);
  11.  
  12.     $_targetdir = "../assets/images/";
  13.     $imgErrors = array();
  14.     if($_POST){
  15.         $title = strip_tags(trim($_POST['title']));
  16.         $content = strip_tags(trim($_POST['content']));
  17.         $articleid = genRand();
  18.         $datetime = date('Y-m-d H:i:s');
  19.         $imgName = null;
  20.  
  21.         if(empty($title)){
  22.             $msgs = '
  23.                 <div class="alert alert-warning alert-dismissable">
  24.                   <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
  25.                   <strong>Warning!</strong> Please add a title to your article!
  26.                 </div>
  27.             ';
  28.         } elseif(strlen($title) > 255){
  29.             $msgs = '
  30.                 <div class="alert alert-warning alert-dismissable">
  31.                   <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
  32.                   <strong>Warning!</strong> Your title is too long! The maximum length is only 255 characters!
  33.                 </div>
  34.             ';
  35.         } elseif(empty($content)){
  36.             $msgs = '
  37.                 <div class="alert alert-warning alert-dismissable">
  38.                   <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
  39.                   <strong>Warning!</strong> Please insert the content of your article!
  40.                 </div>
  41.             ';
  42.         }
  43.         if(isset($_POST['imgUpload'])){
  44.             $_targetfile = $_targetdir . basename($_FILES['imgUpload']["name"]);
  45.             $filetype = pathinfo($_targetfile, PATHINFO_EXTENSION);
  46.  
  47.             $check = getimagesize($_FILES["imgUpload"]["tmp_name"]);
  48.             if($check == false){
  49.                 array_push($imgErrors, 'File is not an image!');
  50.             }
  51.             if(file_exists($_targetfile)){
  52.                 array_push($imgErrors, 'Image already exists!');
  53.             }
  54.             if ($_FILES["imgUpload"]["size"] > 500000) {
  55.                 array_push($imgErrors, 'Image filesize is too big!');
  56.             }
  57.             if($filetype != "jpg" && $filetype != "png" && $filetype != "jpeg" && $filetype != "gif" ) {
  58.                 array_push($imgErrors, 'Sorry, your image file type is not supported!');
  59.             }
  60.             array_filter($imgErrors);
  61.             if(empty($imgErrors)){
  62.                 if(move_uploaded_file($_FILES['imgUpload']['tmp_name'], $_targetfile)){
  63.                     $imgName = $_FILES["imgUpload"]["name"];
  64.                 }
  65.             }
  66.         }
  67.  
  68.         # var_dump() every possible variables, still getting the results I want
  69.         var_dump($articleid);
  70.         var_dump($title);
  71.         var_dump($imgName);
  72.         var_dump($content);
  73.         var_dump($datetime);
  74.  
  75.         #$sql = "INSERT INTO `posts` (`articleid`, `title`, `image`, `content`, `created_at`) VALUES (?,?,?,?,?)";
  76.         #$insertstmt = $conn->prepare($sql);
  77.         #$insertstmt->execute(array($articleid, $title, $imgName, $content, $datetime));
  78.         #var_dump($insertstmt);
  79.  
  80.         $insertsql = "INSERT INTO `posts` (`articleid`, `title`, `image`, `content`, `created_at`) VALUES (:AID, :TLT, :IMG, :CNT, :TM)";
  81.         $inserstmt = $conn->prepare($insertsql);
  82.         $inserstmt->bindParam(':AID', $articleid);
  83.         $inserstmt->bindParam(':TLT',$title);
  84.         $inserstmt->bindparam('IMG',$imgName);
  85.         $inserstmt->bindParam(':CNT',$content);
  86.         $inserstmt->bindParam(':TM', $timestamp);
  87.  
  88.         if($inserstmt){
  89.             $msgs = '
  90.                 <div class="alert alert-success alert-dismissable">
  91.                   <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
  92.                   <strong>Success!</strong> Your article was posted successfully!
  93.                 </div>
  94.             ';
  95.         } else {
  96.             $msgs = '
  97.                 <div class="alert alert-danger alert-dismissable">
  98.                   <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
  99.                   <strong>Error!</strong> The system encountered an error, please try again later!
  100.                 </div>
  101.             ';
  102.         }
  103.     }
  104.  ?>
  105. <!DOCTYPE html>
  106. <html>
  107. <head>
  108.     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  109.     <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css">
  110.     <link rel="stylesheet" type="text/css" href="../assets/css/auth.css">
  111.     <link rel="stylesheet" type="text/css" href="../assets/css/main.css">
  112.     <link rel="stylesheet" type="text/css" href="../assets/css/imgUpload.css">
  113.     <title>Dashboard | Stella Maris</title>
  114. </head>
  115. <body>
  116.     <nav class="navbar navbar-default">
  117.       <div class="container-fluid">
  118.         <div class="navbar-header">
  119.           <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
  120.             <span class="sr-only">Toggle navigation</span>
  121.             <span class="icon-bar"></span>
  122.             <span class="icon-bar"></span>
  123.             <span class="icon-bar"></span>
  124.           </button>
  125.           <a class="navbar-brand" href="#">Stella Maris</a>
  126.         </div>
  127.  
  128.         <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
  129.           <ul class="nav navbar-nav">
  130.             <li><a href="../"><span class="glyphicon glyphicon-home" aria-hidden="true"></span> Homepage</a></li>
  131.             <li class="dropdown active">
  132.               <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><span class="glyphicon glyphicon-signal" aria-hidden="true"></span> Dashboard <span class="caret"></span></a>
  133.               <ul class="dropdown-menu" role="menu">
  134.                 <li><a href="index.php"><span class="glyphicon glyphicon-home" aria-hidden="true"></span>  Home</a></li>
  135.                 <li class="divider"></li>
  136.                 <li><a href="#"><span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span> New Post</a></li>
  137.               </ul>
  138.             </li>
  139.           </ul>
  140.           <ul class="nav navbar-nav navbar-right">
  141.             <li class="dropdown">
  142.               <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><span class="glyphicon glyphicon-user" aria-hidden="true"></span> Administrator <span class="caret"></span></a>
  143.               <ul class="dropdown-menu" role="menu">
  144.                 <li><a href="../auth/logout.php"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span> Logout</a></li>
  145.               </ul>
  146.             </li>
  147.           </ul>
  148.         </div>
  149.       </div>
  150.     </nav>
  151.  
  152.     <div class="container">
  153.         <form method="post" accept-charset="utf-8" enctype="multipart/form-data">
  154.             <div class="form-group">
  155.                 <input type="text" name="title" placeholder="Your Article's Title" class="form-control" required maxlength="255">
  156.             </div>
  157.             <div class="form-group">
  158.                 <textarea name="content" placeholder="What's on your mind?" class="form-control" rows="5" required></textarea>
  159.             </div>
  160.             <div class="form-group">
  161.             <div class="input-group">
  162.                 <span class="input-group-btn">
  163.                     <span class="btn btn-default btn-file">
  164.                         Browse… <input type="file" name="imgUpload" id="imgInp">
  165.                     </span>
  166.                 </span>
  167.                 <input type="text" class="form-control" readonly>
  168.             </div>
  169.             <div class="imgUpload text-center">
  170.                 <img id='img-upload'/>
  171.             </div>
  172.             </div>
  173.             <input type="submit" name="submit" value="Post" class="btn btn-primary">
  174.             <input type="reset" name="reset" value="Clear Fields" class="btn btn-default">
  175.         </form>
  176.         <?php
  177.             if(isset($msgs)){
  178.                 echo '<hr>';
  179.                 echo $msgs;
  180.             }
  181.             if(!empty($imgErrors)){
  182.                 echo '<hr>';
  183.                 foreach($imgErrors as $err){
  184.                     echo $err;
  185.                 }
  186.             }
  187.         ?>
  188.         <br><hr>
  189.         <p>&copy; Stella Maris</p>
  190.     </div>
  191.     <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js" type="text/javascript" charset="utf-8" ></script>
  192.     <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" type="text/javascript" charset="utf-8"></script>
  193.     <script src="https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js" type="text/javascript" charset="utf-8"></script>
  194.     <script src="../assets/js/imgUpload.js" type="text/javascript" charset="utf-8"></script>
  195. </body>
  196. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement