From 6081c978868b42379ab87066039197a1d32b8c09 Mon Sep 17 00:00:00 2001
From: Nur Latifah Ulfah <n.latifahulfah31@gmail.com>
Date: Sat, 7 Oct 2017 17:44:45 +0700
Subject: [PATCH] fix some bug

---
 src/css/fan.css                |  33 ++++++++++++-
 src/css/fan2.css               |  15 +++++-
 src/css/styles.css             |  10 ++++
 src/edit-prefered-location.php |   4 +-
 src/edit-profile.php           |  59 +++++++++++++++++-----
 src/img/cloud.png              | Bin 0 -> 7944 bytes
 src/img/images.png             | Bin 0 -> 9464 bytes
 src/js/fan.js                  |  29 ++++++++++-
 src/js/register.js             |  15 +++++-
 src/login.php                  |   3 ++
 src/profile.php                |  44 +++++++++++------
 src/update.php                 |  86 +++++++++++++++++++++++++++++++++
 12 files changed, 265 insertions(+), 33 deletions(-)
 create mode 100644 src/img/cloud.png
 create mode 100644 src/img/images.png
 create mode 100644 src/update.php

diff --git a/src/css/fan.css b/src/css/fan.css
index 8b3f0a6..5ab5a2b 100644
--- a/src/css/fan.css
+++ b/src/css/fan.css
@@ -3,7 +3,8 @@
 }
 img {
   max-width: 100%;
-  height: auto;
+  height: 100%;
+  width: auto;
 }
 h1 {
   margin-top: 60px;
@@ -204,6 +205,10 @@ nav ul li a.active {
   border: 1px solid grey;
 }
 .btn {
+  text-decoration: none;
+  color: black;
+  font-size: 14px;
+  font-family: Roboto;
   padding: 7px 17px;
   cursor: pointer;
   border-style: none;
@@ -275,6 +280,32 @@ input:checked + .slider:before {
   width: 75%;
 }
 
+/*.inputfile {
+  opacity: 0;
+  z-index: -1;
+}*/
+/*.inputfile + label span {
+    width: 75%;
+    min-height: 26px;
+    margin-right: 5px;
+    display: inline-block;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    overflow: hidden;
+    vertical-align: top;
+    border: 1px solid #C8C8C8;
+}
+
+.inputfile + label strong {
+    height: 100%;
+    color: black;
+    background-color: #D7D7D7;
+    display: inline-block;
+    padding: 3px 10px;
+    border: 1px solid #BBBBBB;
+    font-weight: normal;
+}*/
+
 /* Status */
 .status {
   font-size: 17px;
diff --git a/src/css/fan2.css b/src/css/fan2.css
index 3c912e1..f209c64 100644
--- a/src/css/fan2.css
+++ b/src/css/fan2.css
@@ -1,3 +1,6 @@
+h2 {
+  font-family: Oswald;
+}
 /* Main Container */
 .card {
   margin-top: 20px;
@@ -120,8 +123,18 @@
 /* Users */
 #username {
   font-weight: bold;
+  font-size: 30px;
+}
+#fullname, #email, #phone {
+  font-size: 20px;
+}
+.rating {
+  color: #FE9926;
+}
+.pref-loc {
+  font-family: Oswald;
+  font-size: 26px;
 }
-
 /* Floating */
 .float-right {
   float: right;
diff --git a/src/css/styles.css b/src/css/styles.css
index ceb75af..392aa2d 100644
--- a/src/css/styles.css
+++ b/src/css/styles.css
@@ -236,3 +236,13 @@ input.form-control.validation {
 a:hover {
   cursor: pointer;
 }
+
+.invalid-text {
+  color: red;
+  font-weight: bold;
+  padding-left: 25px;
+}
+
+.left-align {
+  text-align: left !important;
+}
\ No newline at end of file
diff --git a/src/edit-prefered-location.php b/src/edit-prefered-location.php
index 7d55079..5d6914c 100644
--- a/src/edit-prefered-location.php
+++ b/src/edit-prefered-location.php
@@ -17,7 +17,7 @@ if ($_SERVER['REQUEST_METHOD'] == 'POST'){
 
     if(mysqli_stmt_execute($stmt)){
       echo 'sesuatu';
-      header('location: '. htmlspecialchars($_SERVER["PHP_SELF"]) .'?id='. $_GET['id_active']);
+      header('location: '. htmlspecialchars($_SERVER["PHP_SELF"]) .'?id_active='. $_GET['id_active']);
     } else {
       echo 'gagal';
     }
@@ -128,7 +128,7 @@ if(mysqli_stmt_execute($stmt)){
       <br>
 
       <h2>ADD NEW LOCATION:</h2>
-      <form class="form-inline" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) .'?id='. $_GET['id_active'] . '&type=add';?>" onsubmit="return isFilled()" method="post">
+      <form class="form-inline" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) .'?id_active='. $_GET['id_active'] . '&type=add';?>" onsubmit="return isFilled()" method="post">
         <input type="text" class="form-control loc" name="location" >
 
         <button type="submit" class="btn-css">ADD</button>
diff --git a/src/edit-profile.php b/src/edit-profile.php
index 4380192..e4daf65 100644
--- a/src/edit-profile.php
+++ b/src/edit-profile.php
@@ -1,50 +1,87 @@
 <!DOCTYPE html>
+<?php
+  require_once 'dbconfig.php';
+
+  $sqlconn = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
+  if (!$sqlconn) {
+    die('mySQL connection failed');
+  }
+
+  // Menyiapkan statement SELECT
+  $sqlquery = 'SELECT username, fullname, email, phoneno, isdriver, avg_vote, n_voters, img_name FROM userinfo WHERE id=?';
+  $stmt = mysqli_prepare($sqlconn, $sqlquery);
+
+  // Bind variables
+  mysqli_stmt_bind_param($stmt, "i", $_GET['id_active']);
+
+  if(mysqli_stmt_execute($stmt)){
+    // Simpan Hasil query
+    mysqli_stmt_store_result($stmt);
+    // username exist
+    mysqli_stmt_bind_result($stmt, $username, $fullname, $email, $phoneno, $isdriver, $avg_vote, $n_voters, $img_name);
+
+    mysqli_stmt_fetch($stmt);
+  }
+?>
 <html>
 <head>
   <title>Edit Profile</title>
   <link rel="stylesheet" type="text/css" href="css/fan.css">
-  <link href="https://fonts.googleapis.com/css?family=Oswald" rel="stylesheet">
+  <link href="https://fonts.googleapis.com/css?family=Oswald|Roboto" rel="stylesheet">
 </head>
 <body>
   <main class="container">
+  <form action="update.php" method="post" enctype="multipart/form-data">
     <h1 class="uppercase">Edit Profile Information</h1>
     <div class="row relative mb25">
       <div class="col-4">
         <div class="photo-container">
-          <img src="img/foto-profil.jpg" class="vertical-center">
+          <?php echo '<img class="border" src="img/' . $img_name . '" />' ?>
         </div>
       </div>
       <div class="col-8 vertical-center r0">
           Update profile picture<br>
-          <form action="" method="post" class="photo-update">
-            <input type="text" name="photo-url" class="col-9">
-            <button class="btn-flat">Browse...</button>
-          </form>
+          <div class="photo-update">
+            <input type="file" name="fileToUpload" id="fileToUpload" class="inputfile">
+            <!-- <label for="file"><span></span><strong>Browse</strong></label> -->
+          </div>
       </div>
     </div>
     <div class="row">
       <div class="col-4">Your Name</div>
-      <div class="col-8"><input type="text" name="name" class="w100"></div>
+      <div class="col-8"><input type="text" name="name" class="w100" value="<?php echo $fullname; ?>"></div>
     </div>
     <div class="row mt5">
       <div class="col-4">Phone</div>
-      <div class="col-8"><input type="number" name="phone" class="w100"></div>
+      <div class="col-8"><input type="number" name="phone" class="w100" value="<?php echo $phoneno; ?>"></div>
     </div>
     <div class="row mt5">
       <div class="col-4">Status Driver</div>
       <div class="col-8 right-align">
         <!-- Rounded switch -->
         <label class="switch">
-          <input type="checkbox">
+          <?php 
+            if ($isdriver == 1) {
+              echo '<input name="isdriver" type="checkbox" checked>';
+            }else {
+              echo '<input name="isdriver" type="checkbox">';
+            }
+          ?>
           <span class="slider round"></span>
         </label>
       </div>
     </div>
+    <input type="hidden" name="id_active" value="<?php echo $_GET['id_active'];?>">
+    <input type="hidden" name="username" value="<?php echo $username;?>">
     <div class="row mt25">
-      <div class="col-6"><button class="btn red-bg uppercase">Back</button></div>
-      <div class="col-6 right-align"><button class="btn green-bg uppercase">Save</button></div>
+      <div class="col-6"><a href="profile.php?id_active=<?php echo $_GET['id_active'];?>" class="btn red-bg uppercase">Back</a></div>
+      <div class="col-6 right-align"><button type="submit" class="btn green-bg uppercase">Save</button></div>
     </div>
+  </form>
   </main>
 
 </body>
 </html>
+<?php
+
+?>
\ No newline at end of file
diff --git a/src/img/cloud.png b/src/img/cloud.png
new file mode 100644
index 0000000000000000000000000000000000000000..56671fc430146183fa2fc16b746011ce9857b5a4
GIT binary patch
literal 7944
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

literal 0
HcmV?d00001

diff --git a/src/img/images.png b/src/img/images.png
new file mode 100644
index 0000000000000000000000000000000000000000..97aecf78161a2b258fe1a7cf6b17062cfe718564
GIT binary patch
literal 9464
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
KMNUMnLSTaXfM-qs

literal 0
HcmV?d00001

diff --git a/src/js/fan.js b/src/js/fan.js
index 277cae2..a627e92 100644
--- a/src/js/fan.js
+++ b/src/js/fan.js
@@ -24,4 +24,31 @@ function openTab(evt, tabName) {
 
 function hide(id) {
   document.getElementById(id).style.display = "none";
-}
\ No newline at end of file
+}
+
+
+//INPUT FILE
+'use strict';
+
+;( function ( document, window, index )
+{
+  var inputs = document.querySelectorAll( '.inputfile' );
+  Array.prototype.forEach.call( inputs, function( input )
+  {
+    var label  = input.nextElementSibling,
+      labelVal = label.innerHTML;
+
+    input.addEventListener( 'change', function( e )
+    {
+
+      if( fileName )
+        label.querySelector( 'span' ).innerHTML = fileName;
+      else
+        label.innerHTML = labelVal;
+    });
+
+    // Firefox bug fix
+    input.addEventListener( 'focus', function(){ input.classList.add( 'has-focus' ); });
+    input.addEventListener( 'blur', function(){ input.classList.remove( 'has-focus' ); });
+  });
+}( document, window, 0 ));
\ No newline at end of file
diff --git a/src/js/register.js b/src/js/register.js
index d88dd16..82fc6d1 100644
--- a/src/js/register.js
+++ b/src/js/register.js
@@ -1,5 +1,5 @@
 function validate(field, str){
-  if (str.length != 0){
+  if (str.length != 0 && validateEmail(str)){
     var xmlhttp = new XMLHttpRequest();
     xmlhttp.onreadystatechange = function() {
       if (this.readyState == 4 && this.status == 200) {
@@ -21,7 +21,6 @@ function validate(field, str){
           } else {
             document.getElementsByClassName('valid-status')[1].innerHTML = '<img class="stat-img" src="img/cross.png" >';
             document.getElementsByClassName('valid-status')[1].alt = 'invalid';
-
           }
           return false;
         }
@@ -92,3 +91,15 @@ function submitForm(){
   console.log(req1, req2, req3);
   return verifyAll(req1, req2, req3);
 }
+
+function validateEmail(email) {
+    var x = email;
+    var atpos = x.indexOf("@");
+    var dotpos = x.lastIndexOf(".");
+    if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length) {
+        document.getElementsByClassName('valid-status')[1].innerHTML = '<img class="stat-img" src="img/cross.png" >';
+        document.getElementsByClassName('valid-status')[1].alt = 'invalid';
+        return false;
+    }else
+      return true;
+}
\ No newline at end of file
diff --git a/src/login.php b/src/login.php
index 24c8afd..2c1e117 100644
--- a/src/login.php
+++ b/src/login.php
@@ -17,6 +17,7 @@
           <input type="text" class="form-control" name="username" required>
           <label>Password</label>
           <input type="password" class="form-control" name="password" required><br><br>
+          <!-- <div class="invalid-text">Invalid username or password !</div> -->
           <button type="submit" name="login" >GO!</button>
         </form>
         <a class="signup-link" href="register.php">Don't have an account?</a>
@@ -63,6 +64,8 @@ function authenticate($username, $password) {
 if (isset($_POST['login'])) {
     if ( $id = authenticate($_POST['username'], $_POST['password'])){
       header('Location: profile.php?id_active='.$id);
+    }else{
+      header('Location: login.php');
     }
 
   }
diff --git a/src/profile.php b/src/profile.php
index 9e5ff5c..35f2577 100644
--- a/src/profile.php
+++ b/src/profile.php
@@ -25,6 +25,19 @@ require_once 'dbconfig.php';
       mysqli_stmt_fetch($stmt);
 
 
+    /* PREFERED LOCATION */
+    $query_prefloc = 'SELECT location FROM prefloc WHERE prefloc.id=?';
+    $driver_prefloc = mysqli_prepare($sqlconn, $query_prefloc);
+
+    // Bind variables
+    mysqli_stmt_bind_param($driver_prefloc, "i", $_GET["id_active"]);
+
+    if(mysqli_stmt_execute($driver_prefloc)){
+      // Simpan Hasil query
+      mysqli_stmt_store_result($driver_prefloc);
+      // username exist
+      mysqli_stmt_bind_result($driver_prefloc, $location);
+    }
  ?>
 
 <html>
@@ -78,36 +91,37 @@ require_once 'dbconfig.php';
           <?php echo $fullname?>
         </div>
         <?php if($isdriver) {
-           echo '<span id="isdriver">Driver</span><span >| &#8594; '. $avg_vote . '(' . $n_voters .')' . '</span>'; }
+           echo '<span id="isdriver">Driver</span> | <span class="rating">&#9734; <b>'. $avg_vote . '</b></span> (' . $n_voters .'votes)'; }
            else {
              echo '<span>Non-Driver</span>';
            }?>
 
         <div id="email">
-          <?php echo $email?>
-
+          ✉ <?php echo $email?>
         </div>
         <div id="phone">
-          <?php echo $phoneno?>
+          ☏ <?php echo $phoneno?>
 
         </div>
       </div>
 
-      <div class="mtop10">
-        <span class="font-header flexone">PREFERRED LOCATIONS</span>
+      <div class="mtop30">
+        <span class="font-header flexone pref-loc">PREFERRED LOCATIONS</span>
         <a href="<?php echo 'edit-prefered-location.php?id_active='.$_GET['id_active']; ?>"><img class="mtop10 float-right editpic flexone" src="img/pencil.png" /></a>
 
       </div>
       <ul>
-        <li>
-          Pewter City
-        </li>
-        <li>
-          Saffron City
-        </li>
-        <li>
-          Skypillar tower
-        </li>
+        <?php 
+        while (mysqli_stmt_fetch($driver_prefloc)) {
+          $list = '
+          <li>
+            '.$location.'
+          </li>
+          ';
+
+          echo $list;
+        }
+        ?>
       </ul>
 
     </div>
diff --git a/src/update.php b/src/update.php
new file mode 100644
index 0000000..e9b404a
--- /dev/null
+++ b/src/update.php
@@ -0,0 +1,86 @@
+<?php
+require_once 'dbconfig.php';
+
+$sqlconn = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
+if (!$sqlconn) {
+  die('mySQL connection failed');
+}
+
+$username = $_POST["username"];
+
+if (isset($_FILES["fileToUpload"])){
+    $target_dir = "img/";
+    $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
+    $uploadOk = 1;
+    $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
+    // Check if image file is a actual image or fake image
+    if(isset($_POST["submit"])) {
+        $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
+        if($check !== false) {
+            echo "File is an image - " . $check["mime"] . ".";
+            $uploadOk = 1;
+        } else {
+            echo "File is not an image.";
+            $uploadOk = 0;
+        }
+    }
+    if ($_FILES["fileToUpload"]["size"] > 500000) {
+        echo "Sorry, your file is too large.";
+        $uploadOk = 0;
+    }
+    // Allow certain file formats
+    if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
+    && $imageFileType != "gif" ) {
+        echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
+        $uploadOk = 0;
+    }
+    // Check if $uploadOk is set to 0 by an error
+    if ($uploadOk == 0) {
+        echo "Sorry, your file was not uploaded.";
+    // if everything is ok, try to upload file
+    } else {
+        if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
+            echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
+            $newphoto = basename( $_FILES["fileToUpload"]["name"]);
+            $sqlquery = "UPDATE userinfo SET img_name=? WHERE username=?";
+            $stmt = mysqli_prepare($sqlconn, $sqlquery);
+            mysqli_stmt_bind_param($stmt, "ss", $newphoto, $username);
+            mysqli_stmt_execute($stmt);
+        } else {
+            echo "Sorry, there was an error uploading your file.";
+        }
+    }
+}
+
+if (isset($_POST["name"])) {
+  $newname = $_POST["name"];
+  $sqlquery = "UPDATE userinfo SET fullname=? WHERE username=?";
+  $stmt = mysqli_prepare($sqlconn, $sqlquery);
+  mysqli_stmt_bind_param($stmt, "ss", $newname, $username);
+  mysqli_stmt_execute($stmt);
+}
+
+if (isset($_POST["phone"])) {
+  $newphone = $_POST["phone"];
+  $sqlquery = "UPDATE userinfo SET phoneno=? WHERE username=?";
+  $stmt = mysqli_prepare($sqlconn, $sqlquery);
+  mysqli_stmt_bind_param($stmt, "ss", $newphone, $username);
+  mysqli_stmt_execute($stmt);
+}
+
+if (isset($_POST["isdriver"])){
+  $isdriver=1;
+  $sqlquery = "UPDATE userinfo SET isdriver=? WHERE username=?";
+  $stmt = mysqli_prepare($sqlconn, $sqlquery);
+  mysqli_stmt_bind_param($stmt, "is", $isdriver, $username);
+  mysqli_stmt_execute($stmt);
+}else {
+  $isdriver=0;
+  $sqlquery = "UPDATE userinfo SET isdriver=? WHERE username=?";
+  $stmt = mysqli_prepare($sqlconn, $sqlquery);
+  mysqli_stmt_bind_param($stmt, "is", $isdriver, $username);
+  mysqli_stmt_execute($stmt);
+}
+
+header('Location: profile.php?id_active=' . $_POST["id_active"]);
+?>
\ No newline at end of file
-- 
GitLab