2016-08-28 3 views
1

Когда пользователь размещает изображение, пользователь не может опубликовать эту картину потому что говоритПользователь не может отправлять или загружать фотографии в PHP

«К сожалению, только JPG, JPEG, PNG & GIF файлы allowed.Sorry , ваш файл не был загружен ».

, когда пользователь загружает правильное изображение или файл.

коды:

<?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> 
+3

Похоже, вы не установили '$ imageFileType' перед использованием его в' если() 'блок – khargoosh

+1

Да, я не ставил эту переменную, и это моя вина. Спасибо, что помогли мне :-) Отправьте это как ответ, и я проверю его. – virtualAnon

ответ

1

Looks как $imageFileType не был установлен, прежде чем использовать его в if() блоке.

Вы можете найти расширение файла, используя что-то вроде этого (это воздушный код, поэтому, пожалуйста, проверьте сначала).

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

PS - вы должны фильтровать свой почтовый ввод. '$ variable = filter_input (INPUT_POST, 'variable', FILTER_SANITIZE_STRING)' и т. д. – khargoosh

+1

Да, и я добавлю некоторые санитарии к нему, как strip_tags, и многое другое ... Это только «бета-версия», поэтому я довольно тестирую Это. – virtualAnon