virtualAnon
virtualAnon

Reputation: 141

User cannot post or upload pictures in PHP

When the user is posting a picture, the user cannot post that picture cause it says

"Sorry, only JPG, JPEG, PNG & GIF files are allowed.Sorry, your file was not uploaded."

when the user is uploading a valid picture or a valid file.

Codes:

<?php
  # Essential files, please don't erase it!
  require_once("../functions.php");
  require_once("../db-const.php");
  session_start();
  $id = $_SESSION['user_id'];
  ## connect mysql server
    $mysqli = new mysqli(localhost, root, "", loginsecure);
    # check connection
    if ($mysqli->connect_errno) {
      echo "<p>MySQL error no {$mysqli->connect_errno} : {$mysqli->connect_error}</p>";
      exit();
    }
    ## query database
    # fetch data from mysql database
    $main = $_SESSION['user_id'];
    $sql = "SELECT * FROM users WHERE id ='".$id."' LIMIT 1";
    if ($result = $mysqli->query($sql)) {
      $user = $result->fetch_array();
    } else {
      echo "<p>MySQL error no {$mysqli->errno} : {$mysqli->error}</p>";
      exit();
    }
?>
<?php
$conn = new mysqli(localhost, root, "", loginsecure);
$fname = $_POST['first_name'];
$lname = $_POST['last_name'];
$email = $_POST['email'];
$usrdescription = $_POST['user_description'];
$usrlgusrnm = $_POST['user_league-username'];
$usrgrnusrm = $_POST['user_garena-username'];
$profilepicture = $_POST['user_profile-picture'];
$fnamesql = "UPDATE users SET first_name = '$fname' WHERE username='{$user['username']}'";
$lnamesql = "UPDATE users SET last_name = '$lname' WHERE username='{$user['username']}'";
$emailsql = "UPDATE users SET email = '$email' WHERE username='{$user['username']}'";
$usrdescriptionsql = "UPDATE users SET user_description = '{$usrdescription}' WHERE username='{$user['username']}'";
$usrlgusrnmsql = "UPDATE users SET leagueusername = '{$usrlgusrnm}' WHERE username='{$user['username']}'";
$usrgrnusrmsql = "UPDATE users SET garenausername = '{$usrgrnusrm}' WHERE username='{$user['username']}'";
 ?>

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Update Information | Prospekt | Under Construction</title>
      </head>
      <body>
        <h1> Update Your Personal Information </h1>

    <form method="post" name="first_name">
    <input type="text" name="first_name" placeholder="First Name to Modify"><br>
    <input type="submit" value="Submit">
    </form>

    <form method="post" name="last_name">
      <input type="text" name="last_name" placeholder="Last Name to Modify"><br>
      <input type="submit" value="Submit">
    </form>

    <form method="post" name="email">
      <input type="text" name="email" placeholder="Email to Modify"><br>
      <input type="submit" value="Submit">
    </form>

    <form method="post" name="user_description">
      <input type="text" name="user_description" placeholder="Description to Modify"><br>
      <input type="submit" value="Submit">
    </form>

    <form method="post" name="user_league-username">
      <input type="text" name="user_league-username" placeholder="League of Legends Summoner Name to Modify" maxlength="16"><br>
      <input type="submit" value="Submit">
    </form>

    <form method="post" name="user_garena-username">
      <input type="text" name="user_garena-username" placeholder="Garena Username to Modify" maxlength="16"><br>
      <input type="submit" value="Submit">
    </form>

    <form method="post" enctype="multipart/form-data" name="profilepicturex">
        Select image to upload:
        <input type="file" name="fileToUpload" id="fileToUpload">
        <input type="submit" value="Upload Image">
    </form>

    <br>
    <?php
    if(isset($_POST["first_name"])){
      echo "{$user['username']} First Name is Changed! <br>";
      mysqli_query($conn, $fnamesql);
    }
     ?>

    <?php
    if(isset($_POST["last_name"])){
      echo "{$user['username']} Last Name is Changed! <br>";
      mysqli_query($conn, $lnamesql);
    }
     ?>

     <?php
     if(isset($_POST["email"])){
       echo "{$user['username']} Email is Changed! <br>";
       mysqli_query($conn, $emailsql);
     }
      ?>

      <?php
      if(isset($_POST["user_description"])){
        echo "{$user['username']} Description is Changed! <br>";
        mysqli_query($conn, $usrdescriptionsql);
      }
       ?>

       <?php
       if(isset($_POST["user_league-username"])){
         echo "{$user['username']} League of Legends Summoner Name is Changed! <br>";
         mysqli_query($conn, $usrlgusrnmsql);
       }
        ?>

        <?php
        if(isset($_POST["user_garena-username"])){
          echo "{$user['username']} Garena Username is Changed! <br>";
          mysqli_query($conn, $usrgrnusrmsql);
        }
         ?>

         <?php
         if(isset($_POST["profilepicture"])){
           $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
           if($check !== false) {
               echo "File is an image - " . $check["mime"] . ".";
               $uploadOk = 1;
               $conn = new mysqli(localhost, root, "", loginsecure);
           } else {
               echo "File is not an image.";
               $uploadOk = 0;
           }
       }
       // Check if file already exists
       if (file_exists($target_file)) {
           echo "Sorry, file already exists.";
           $uploadOk = 0;
       }
       // Check file size
       if ($_FILES["fileToUpload"]["size"] > 200000) {
           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.";
           echo $imageFileType;
           $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.";
               echo "<br>";
               $updateprofilepicture = "UPDATE users SET profilepicture = '{$target_file}' WHERE username='{$user['username']}'";
               mysqli_query($mysqli, $updateprofilepicture);
               echo $updateprofilepicture;
               echo "<br>";
           } else {
               echo "Sorry, there was an error uploading your file.";
           }
       }
          ?>

      </body>
    </html>

Upvotes: 1

Views: 87

Answers (1)

khargoosh
khargoosh

Reputation: 1520

Looks like $imageFileType hasn't been set before attempting to use it in the if() block.

You could find the file extension using something like this (this is air code so please check first).

$fileToUploadName = $_FILES['fileToUpload']['name'];
$imageFile = pathinfo($fileToUploadName);
$imageFileType = $imageFile['extension'];

Upvotes: 1

Related Questions