file, PHP, MySQL
Moderatori: Moderatori, Start Moderator
-
dianagaby2002
- PHPRomania Supporter
- Mesaje: 19
- Membru din: Mie Aug 05, 2015 10:09 am
Re: file, PHP, MySQL
dianagaby2002, n-are cum sa-ti aparta 3 nume diferite de poza pentru ca tu te uiti dupa if(isset($_FILES['picture1'])) iar in html numele este poza1, nu picture1: <input id="poza1" name="poza1" type="file">
-
dianagaby2002
- PHPRomania Supporter
- Mesaje: 19
- Membru din: Mie Aug 05, 2015 10:09 am
-
nevvermind
- Senior Member
- Mesaje: 1264
- Membru din: Mar Iun 22, 2010 3:17 pm
Re: file, PHP, MySQL
Cateva completari:
a) Tabelului "news" ii lipseste o coloana de ID. Nu-i gresit, dar nu e deloc o idee buna sa omiti coloana aia. Fa una numita "news_id", de tip int 11.
b) De ce tabelul are atat de multe coloane de poze? Fa un tabel separat pentru poze: news_pic_id (int, 11), news_id (int, 11, FK news.news_id <-- asta-i coloana pe care o vei face in a) ), pic_path.
c) Variabile in romana, nume de tabel in engleza, un post in engleza, intr-un forum romanesc. Decide-te, ca nu arata nici bine, nici consistent.
Eu zic sa scrii cod in engleza (numai noob-ii scriu in romana) si, cand vorbesti cu lumea d-aci, scrie in romana.
Later edit: abia acum am citit ca ai dat copy paste dintr-un forum englez.
d) Nush cat de mult stii despre upload, dar nu procedezi corect: PHP vede ca sunt transmise informatii ca "fisiere", ia datele din body-ul requestului si creeaza fisierele in folderul temporar de upload (vezi care-i folderul facand "echo ini_get('upload_tmp_dir');"), apoi populeaza array-ul $_FILES cu date despre acele fisiere. Dar ele sunt tot in "upload_tmp_dir". Daca faci "$_FILES['picture1']['tmp_name']" ai sa vezi despre ce vorbesc. Pana cand nu muti fisierele din acel folder temporar unde vrei tu (cu "move_uploaded_file()"), in urmatorul request nu vei mai avea acces la ele, fiindca vei pierde legatura cu ele. Doar acea noua cale, unde le-ai mutat, trebuie salvata in DB. Salvand numele fisierelor nu te ajuta prea mult.
e) Nu verifici bine daca s-a facut upload. Citeste mai multe aci http://php.net/manual/en/features.file-upload.php (mai ales primul comentariu).
f) Daca faci upload aiurea (de ex, nu verifici daca fisierele urcate sunt intr-adevar poze: poate-s executabile). De asta, iti sugerez sa folosesti un tool deja facut, ca-s multe: https://packagist.org/search/?q=upload. https://github.com/brandonsavage/Upload arata bine.
a) Tabelului "news" ii lipseste o coloana de ID. Nu-i gresit, dar nu e deloc o idee buna sa omiti coloana aia. Fa una numita "news_id", de tip int 11.
b) De ce tabelul are atat de multe coloane de poze? Fa un tabel separat pentru poze: news_pic_id (int, 11), news_id (int, 11, FK news.news_id <-- asta-i coloana pe care o vei face in a) ), pic_path.
c) Variabile in romana, nume de tabel in engleza, un post in engleza, intr-un forum romanesc. Decide-te, ca nu arata nici bine, nici consistent.
Eu zic sa scrii cod in engleza (numai noob-ii scriu in romana) si, cand vorbesti cu lumea d-aci, scrie in romana.
Later edit: abia acum am citit ca ai dat copy paste dintr-un forum englez.
d) Nush cat de mult stii despre upload, dar nu procedezi corect: PHP vede ca sunt transmise informatii ca "fisiere", ia datele din body-ul requestului si creeaza fisierele in folderul temporar de upload (vezi care-i folderul facand "echo ini_get('upload_tmp_dir');"), apoi populeaza array-ul $_FILES cu date despre acele fisiere. Dar ele sunt tot in "upload_tmp_dir". Daca faci "$_FILES['picture1']['tmp_name']" ai sa vezi despre ce vorbesc. Pana cand nu muti fisierele din acel folder temporar unde vrei tu (cu "move_uploaded_file()"), in urmatorul request nu vei mai avea acces la ele, fiindca vei pierde legatura cu ele. Doar acea noua cale, unde le-ai mutat, trebuie salvata in DB. Salvand numele fisierelor nu te ajuta prea mult.
e) Nu verifici bine daca s-a facut upload. Citeste mai multe aci http://php.net/manual/en/features.file-upload.php (mai ales primul comentariu).
f) Daca faci upload aiurea (de ex, nu verifici daca fisierele urcate sunt intr-adevar poze: poate-s executabile). De asta, iti sugerez sa folosesti un tool deja facut, ca-s multe: https://packagist.org/search/?q=upload. https://github.com/brandonsavage/Upload arata bine.
Facusi un canal de php pe freenode - ##php-ro : https://webchat.freenode.net/
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 5 vizitatori