Dlaczego poniższy kod nie dodaje zdjęcia do katalogu serwera ?

0
$link = mysqli_connect($adres, $uzytkownik, $haslo);

if (!$link)
{
echo 'Błąd: : Połączenie z bazą danych nie powiodło się. Spróbuj jeszcze raz później.';
exit;
}

echo 'udało się jesteś połączony z bazą danych';

$uploaddir = '//';
$uploadfile = $uploaddir . basename($_FILES['nazwa_pliku']['name']);

echo '<pre>';
if (move_uploaded_file($_FILES['nazwa_pliku']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Possible file upload attack!\n";
}

echo 'Here is some more debugging info:';

?>

To jest formularz

<form enctype="multipart/form-data" action="program2_kod.php" 
method="post" >
<input type="hidden" name="MAX_FILE_SIZE" value="512000" />
<input type="file" name="nazwa_pliku" />
<input type="submit" value="wyślij" />
</form>

Dziękuję za udzielenie kompletnych odpowiedzi.

1

A pojawia się jakiś błąd, czy po prostu nie dodaje zdjęcia?

2

To ja podpowiem co nieco :)
Skoro masz problem z wysyłaniem pliku (nie dodaje się ... whatever...) - to polecam żebyś wkleił tu kod odpowiedzialny tylko za tą jedną czynność. Odrzuć fragmenty z sql'em, wywal zbędne echo i zrób z tego funkcję na zasadzie

function whatever(someType $someInputwithSomeInput): bool{
  ....//do something here

  return true; // ( or false - it depends on the body of this function)
}
1

Czlowiek (a może robot, ten od węgla), kopiuje z netu przypadkowy kod, najczęściej z pytań o błędy / problemy, podczas tego go psując (wrzuciłem w googla ten charakterystyczny if)
https://board.phpbuilder.com/d/10324608-php-upload-file-error-0-but-no-file-uploaded

A my się jaramy jak pomóc.
Stawiam 66.6% że to ktoś świadomy, i świadomie troluje (mogę się mylić, zawsze jest 33.4% szans, ze w szkołach specjalnych przypieli internet z zaczęli uczyć PHP)

0
Mam taki komunikat błędu: 
uda�o si� jeste� po��czony z baz� danych
Possible file upload attack!
Here is some more debugging info:

Jak to zlikwidować ? 
0

No tak, ale jak mam rozwiązać ten problem, bo na tym mi zależy.

0

No to skoro dostajesz:

Possible file upload attack! na wyjściu, to znaczy:

że move_uploaded_file($_FILES['nazwa_pliku']['tmp_name'], $uploadfile) zwraca warość false.

Jak sięgniesz do dokumentacji to dowiesz się, kiedy zwracny jest false:

If from is not a valid upload file, then no action will occur, and move_uploaded_file() will return false.

If from is a valid upload file, but cannot be moved for some reason, no action will occur, and move_uploaded_file() will return false. Additionally, a warning will be issued.

I to jest odpowiedź dlaczego.

0

Czy to znaczy, że to jest zle ? A jak powinno być ?

$uploaddir = '//';
$uploadfile = $uploaddir . basename($_FILES['nazwa_pliku']['name']);

Dziękuję za pomoc.

Jaka ścieżkaka będzie działać ?

2

Jaka ścieżkaka będzie działać ?

Taka do której php ma uprawnienia zapisu

0

Nie rozumiem ? Co powinienem zmienić, naprawić ?

Prawodpodobnie nie działa bo coś nie tak w tych dwóch linikach kodu:

$uploaddir = '//';
$uploadfile = $uploaddir . basename($_FILES['nazwa_pliku']['name']);

Tylko co tu poprawić ?

0

zobacz co masz w $uploadfile i zweryfikuj czy to jest poprawna ścieżka zapisu.

0

Scieżka do formularza jest taka: https://serwer2133356.home.pl/program1_formularz.html

A to po przesłaniu pliku: https://serwer2133356.home.pl/program2_kod.php

I komunikat, że plik nie został przesłany: https://serwer2133356.home.pl/program2_kod.php

uda�o si� jeste� po��czony z baz� danych
Possible file upload attack!
Here is some more debugging info:

1

nie myl adresu ze ścieżką. musisz wskazać folder na serwerze, który istnieje by go zapisać.

0

Tak jak pisze @Panczo - masz źle ustawioną ścieżkę.Spróbuj tak:

$upload = __DIR__.'/';
0

czy to mam napisać ze słowem __DIR__ i kreskami __ __ z dołu ?

0

To: $upload = __DIR__.'/'; nie działa. Proszę o kolejne propozycje.

0

And... He is back!!!

adamon napisał(a):

czy to mam napisać ze słowem DIR i kreskami __ __ z dołu ?

Tak, z kreskami...

0

Tak zrobiłem i nie działa

0

programowanie nie polega na oczekiwaniu na rozwiązanie, a znalezieniu rozwiązania.

Zapis pliku polega na tym, że należy znać miejsce na dysku, i mieć uprawnienia do zapisu.
Skoro Twój własny kod cię przewyższa to proponuję, napisać skrypt PHP który stworzy plik tekstowy. Co pozwoli przybliżyć się do rozwiązania.

Zacznij tu: https://www.w3schools.com/php/php_file_create.asp

1

@adamon: No niestety ale nic się nie zmieniło od ostatnich Twoich postów. Oczekujesz kompletnego rozwiązania nie wnosząc nic w zamian poza skopiowaniem kodu z innej strony. Z tym DIR chciałem Cię tylko naprowadzić gdzie leży problem a niestety Ty "ślepo" wpisujesz WSZYSTKO co wyczytasz w odpowiedziach w nadziei, że zacznie to działać. Ja się jednak "poddaję".

1

ustaw chmod na 777 dla tego folderu i zobacz czy pomogło

0

Dalej to samo, zmieniłem uprawnienia.

1

No to problem nie do rozwiązania...

0

Z serwera mam komunikat błędu: [24-Jun-2022 1627 Europe/Warsaw] PHP Warning: File upload error - unable to create a temporary file in Unknown on line 0

1

https://stackoverflow.com/questions/18395163/warning-file-upload-error-unable-to-create-a-temporary-file-in-unknown-on-lin

Chociaż, kiedyś na home miałem podobną sytuacje, problem z folderem tymczasowym. Rozwiązaniem było założenie folderu o nazwie tmp w roocie plików domeny i nadaniu mu uprawnień 777

0

wyszło tylko na tmp, a inne foldery jak je uruchomić do dodawania plików ? Dzięki

0

Już zrobiłem dzięki, wszystko gra, Sprawa zakończona

0

Nie rozumiem uruchamiania za pomocą klas połączenia. Nigdy tego nie robiłem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1