krispak
20.10.2008, 11:27:43
Witam
Mam upload zdjec, ktory bez problemu dodaje zdjecie na serwer we wskazana lokalizacje ale problem polega na tym ze gdy zapisuje nazwe do bazy to nie zapisuje powiedzmy zdjecie.jpg tylko powiedzmy wrzuca cos takiego tmp/phpT6wt
Zapisuje tak jakby nazwe tymczasowa, co moze byc tego powodem?
Za wszelka pomoc dziekuje
mike
20.10.2008, 11:28:47
Cytat(krispak @ 20.10.2008, 12:27:43 )

Zapisuje tak jakby nazwe tymczasowa, co moze byc tego powodem?
Błąd w kodzie, który napisałeś.
krispak
20.10.2008, 11:47:13
tak wygląda skrypt
<?php
if (isset($_POST['avatar'])) { $avatar = $_POST['avatar'];
$sql = "UPDATE admin SET
avatar='$plik'
WHERE id='$id'";
echo '<p>Dane zostały zaktualizowany.</p>'; } else {
exit('<p>Problem podczas aktualizowania danych: ' . }
}
$plik_nazwa = $_FILES['plik']['name'];
$plik_tmp = $_FILES['plik']['tmp_name'];
$plik_rozmiar = $_FILES['plik']['size'];
echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
}
?>
<form action="?eprofil" enctype="multipart/form-data" method="post">
<input type="file" name="plik" />
<input type="hidden" name="MAX_FILE_SIZE" value="50000" />
<input type="submit" value="AKTUALIZUJ" />
guilty82
20.10.2008, 11:50:19
a skad bierzesz zmienna $plik?
mike
20.10.2008, 11:51:04
W budowanym zapytaniu masz zmienne $plik i $id. Skąd one się biorą?
Bo rozumiem, że to w bazie zapisuje Ci złą nazwę pliku?
krispak
20.10.2008, 11:57:42
id tyczy sie konkretnej osoby ale wycialem skrypt wyswietlajacy bo jest to plik edycji stad id
a nazwe zle zapisuje w bazie bo jest typu tmp/php64rer
mike
20.10.2008, 12:03:07
W bazie zapisujesz to co jest w zmiennej $plik. Skoro wartość jest zła to zawartość tej zmiennej jest zła.
Skąd bierzesz wartość zmiennej $plik? Bo to tu leży problem.
guilty82
20.10.2008, 12:03:17
No to skoro Ci zle zapisuje a nie chcesz pokazac skad biora sie te zmienne w zapytaniu to ciezko bedzie pomoc
krispak
20.10.2008, 12:29:54
zmienilem
avatar='$plik' na avatar='$plik_nazwa'
oraz dodalem
<input type="hidden" name="plik_nazwa" />
aby pobierac zmienna z
$plik_nazwa = $_FILES['plik']['name'];
i teraz nic nie dodaje do bazy a plik do katalogu jest ladowany
guilty82
20.10.2008, 12:34:13
A po co tak?
zmien kolejnosc i nie musisz nic przesylac w hidden
<?php
if (isset($_POST['avatar'])) {
$plik_nazwa = $_FILES['plik']['name'];
$plik_tmp = $_FILES['plik']['tmp_name'];
$plik_rozmiar = $_FILES['plik']['size'];
$sql = "UPDATE admin SET
avatar='$plik_nazwa'
WHERE id='$id'";
?>
krispak
20.10.2008, 13:41:38
wielkie dzieki - DZIAŁA
wystarczylo zamienic kolejnosc

sorka za pisanie jedno pod drugim
ale mam jeszcze prosbe jak zrobic aby ograniczyc tylko przesylanie plikow typu jpg czy np png
Cienki1980
20.10.2008, 13:52:01
Cytat(krispak @ 20.10.2008, 14:41:38 )

sorka za pisanie jedno pod drugim
ale mam jeszcze prosbe jak zrobic aby ograniczyc tylko przesylanie plikow typu jpg czy np png

Wystarczy sprawdzić rozszerzenie pliku ( np explode() ) i sprawdzić czy ostatni element tablicy to rozszerzenie które Ciebie interesuje lub korzystasz z
getimagesize()" title="Zobacz w manualu PHP" target="_manual i sprawdzasz jaką wartość ma element tablicy o indexie 2
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.