Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

PHP - obrazek nie chce się uploadować


Rekomendowane odpowiedzi

Opublikowano

Siemka, zmieniłem serwer mojej strony z darmowego hostingu www na VPS na którym sama strona stoi na silniku xampp. Problem jest taki że jak chcę dodać obazek zdalnie z strony to nic się nie dzieje, obrazek nie jest dodany na serwer ani żadne informacje wygenerowane nie są dodawane do baz danych (tylko logi się dodają).
Kod pliku odpowiadającego za dodawanie:

 

<?php
include "../core/db.php";
if (isset($_POST['title'])) {
$title = $_POST['title'];
}
if (empty($_FILES['uploadedimage']['name'])) {
header("Location:http://domena.pl/acp/dashboard/?message=niewybrano");
die();
} else {
function GetImageExtension($imagetype)
     {
       if(empty($imagetype)) return false;
       switch($imagetype)
       {
           case 'image/bmp': return '.bmp';
           case 'image/gif': return '.gif';
           case 'image/jpeg': return '.jpg';
           case 'image/png': return '.png';
           default: return false;
       }
     }
 
if (!empty($_FILES["uploadedimage"]["name"])) {
 
$file_name=$_FILES["uploadedimage"]["name"];
$temp_name=$_FILES["uploadedimage"]["tmp_name"];
$imgtype=$_FILES["uploadedimage"]["type"];
$ext= GetImageExtension($imgtype);
$seed = 'JvKnrQWPsThuJteNQAuH';
$hash = sha1(uniqid($seed . mt_rand(), true));
$imagename=substr($hash, 0, 8).$ext;
$uid=substr($hash, 0, 8);
$target_path = "../../uploads/".$imagename;
 
 
$imagetype = pathinfo($target_path,PATHINFO_EXTENSION);
if($imagetype != "jpg" AND $imagetype != "png" AND $imagetype != "jpeg" AND $imagetype != "gif" ) {
header("Location: http://domena.pl/acp/dashboard/?message=type");
die();
}
$time = date("H:i:sa");
if (isset($_COOKIE['loginID'])) {
$loginID = $_COOKIE['loginID'];
 
$query = mysql_query("SELECT * FROM users WHERE loginID='$loginID'");
$count = mysql_num_rows($query);
$date = date("Y/m/d");
if(mysql_num_rows($query)) {
while($row = mysql_fetch_array($query)){
$added =$row['added'];
$userID = $row['id'];
$username = $row['username'];
$newadd = $added + 1;
$time = date("H:i:sa");
$akcja = "Dodano";
if(move_uploaded_file($temp_name, $target_path)) {
mysql_query("INSERT INTO images (url, tytul, uid, status, timeadd) VALUES ('$target_path', '$title', '$uid', '1', '$time')");
}
mysql_query("UPDATE users SET added='$newadd' WHERE id='$userID'");
mysql_query("INSERT INTO logi (username, akcja, data, time) VALUES ('$username','$akcja', '$date', '$time')");
header("Location: http://domena.pl/acp/dashboard/?message=added");
}
} else {
header("Location: http://domena.pl/acp/dashboard/?message=empty");
die();
}
}
}
}
?>
Opublikowano

jeżeli to źle to nie wiedziałem, jest to prawie mój pierwszy kontakt z linuxem a szczególnie pod ta sprawę. ale głównie problem to mam z czym innym.

Opublikowano

ten kod w tej postaci to jeden wielki nieczytelny syf

<?php 
include "../core/db.php";
if (isset($_POST['title'])) {
    $title = $ _POST['title'];
}
if (empty($_FILES['uploadedimage']['name'])) {
    header("Location:http://domena.pl/acp/dashboard/?message=niewybrano");
    die();
} else {
    function GetImageExtension($imagetype) {
        if (empty($imagetype)) return false;
        switch ($imagetype) {
            case 'image/bmp':
                return '.bmp';
            case 'image/gif':
                return '.gif';
            case 'image/jpeg':
                return '.jpg';
            case 'image/png':
                return '.png';
            default:
                return false;
        }
    }
    if (!empty($_FILES["uploadedimage"]["name"])) {
        $file_name = $_FILES["uploadedimage"]["name"];
        $temp_name = $_FILES["uploadedimage"]["tmp_name"];
        $imgtype = $_FILES["uploadedimage"]["type"];
        $ext = G etImageExtension($imgtype);
        $seed = 'JvKnrQWPsThuJteNQAuH';
        $hash = s ha1(uniqid($seed.mt_rand(), true));
        $imagename = substr($hash, 0, 8).$ext;
        $uid = substr($hash, 0, 8);
        $target_path = "../../uploads/".$imagename;
        $imagetype = p athinfo($target_path, PATHINFO_EXTENSION);
        if ($imagetype != "jpg"
            AND $imagetype != "png"
            AND $imagetype != "jpeg"
            AND $imagetype != "gif") {
            header("Location: http://domena.pl/acp/dashboard/?message=type");
            die();
        }
        $time = d ate("H:i:sa");
        if (isset($_COOKIE['loginID'])) {
            $loginID = $ _COOKIE['loginID'];
            $query = m ysql_query("SELECT * FROM users WHERE loginID='$loginID'");
            $count = m ysql_num_rows($query);
            $date = d ate("Y/m/d");
            if (mysql_num_rows($query)) {
                while ($row = m ysql_fetch_array($query)) {
                    $added = $row['added'];
                    $userID = $ row['id'];
                    $username = $ row['username'];
                    $newadd = $ added + 1;
                    $time = d ate("H:i:sa");
                    $akcja = "Dodano";
                    if (move_uploaded_file($temp_name, $target_path)) {
                        mysql_query("INSERT INTO images (url, tytul, uid, status, timeadd) VALUES ('$target_path', '$title', '$uid', '1', '$time')");
                    }
                    mysql_query("UPDATE users SET added='$newadd' WHERE id='$userID'");
                    mysql_query("INSERT INTO logi (username, akcja, data, time) VALUES ('$username','$akcja', '$date', '$time')");
                    header("Location: http://domena.pl/acp/dashboard/?message=added");
                }
            } else {
                header("Location: http://domena.pl/acp/dashboard/?message=empty");
                die();
            }
        }
    }
}
<?phpinclude

Jesteś pewien, że to tak ma być? :)

Opublikowano

@cody3223
Wybacz wcześniej musiałem trochę edytować temat i to przez telefon nie wiem czemu to się zepsuło. Nie było błędu który podałeś już zaraz poprawię jak normalnie jest.

Opublikowano

Pewnie jest tam jakiś głupi błąd :p Dlatego standardowo zapytam, czy wyświetlanie błędów jest włączone?

gamedevmania.com

Opublikowano

Pewnie jest tam jakiś głupi błąd :P Dlatego standardowo zapytam, czy wyświetlanie błędów jest włączone?

 

Pewnie nie.

 

Uprzedzę pytanie jak włączyć więc już napiszę

error_reporting(E_ALL);

ini_set('error_reporting', E_ALL);
ini_set("display_errors", 1);

7891614428580671076560.png

Opublikowano

@Writen
Fakt, miałem w db.php blokowanie pokazywania błędów. Teraz usunąłem tą linijkę i nadal jest tak samo. Przy wybraniu obrazka i staraniu dodać go przenosi mnie na stronę którą ustawiłem jako że poprawnie wszystko zostało zrobione. Aczkolwiek obrazek jak i jego nowe informacje nie są dodawane do bazy danych jak i sam obrazek na serwer tylko informacje do logów są dodawane.
 
//EDIT
 
Okej, zapomniałem dodać że od PHP i SQL'a miałem 3+ miesiące przerwy ew. dosłownie małą styczność.
Po usunięciu linijki przeniesienia po dodaniu wyskakuje następujący error:

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /opt/lampp/htdocs/acp/core/db.php on line 9

Warning: move_uploaded_file(../../uploads/b198d7e6.jpg): failed to open stream: Brak dostępu in /opt/lampp/htdocs/acp/dashboard/dodaj.php on line 57

Warning: move_uploaded_file(): Unable to move '/opt/lampp/temp/phpccz4s1' to '../../uploads/b198d7e6.jpg' in /opt/lampp/htdocs/acp/dashboard/dodaj.php on line 57

Pierwszy błąd raczej rozumiem o co z nim chodzi aczkolwiek następujące dwa błędy już nie :(

Plik jest związany z projektem który zacząłem robić w Lutym i w marcu z pewnego problemu musiałem zaprzestać i teraz wracam do niego.

Może ktoś mi pomóc o co kaman? :)

Linijka 57:
if(move_uploaded_file($temp_name, $target_path)) {
Opublikowano

Czyli używasz wyższej wersji PHP niż na poprzednim hostingu :) Przejdź na PDO lub mysqli.

Sprawdź CHMOD folderu uploads, powinno być chyba 755 lub 777.

gamedevmania.com

Opublikowano

nie prościej

chmod /opt/lampp/htdocs/uploads 777 

(lub zamień miejscami adres i numer chmodu)

 

 

nic już. (ew. FTP potrafi pozamieniać chmody plików w katalogu)

 

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...