[PHP]obsluga formularza z tablica |
[PHP]obsluga formularza z tablica |
30.09.2015, 22:26:16
Post
#1
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 0 Dołączył: 11.09.2015 Ostrzeżenie: (0%) |
Mam taki formularz, pole czy jak to nazwac:
Chce przesylac obrazki multiple(pojedynczo dziala!) no ok, czyli wydaje mi sie ze musze uzydc do tego tablicy, ok dopisuje [] do file_news i pieknie poki co.. Teraz trzeba to jakos obsluzyc:
TO jest moj kod oblugi formularza... tak wiem zabijecie mnie dlugi i nie chcialo by sie analizowac ale prosze jednak o pomoc. O co chodzi tak naprawde? Mam tabele news_images w bazie dodajac kilka obrazkow chce zeby zapisywaly sie tam na zasadzie id|id czyli do jednego newsa mozna doadac milion obrazkow(teoretycznie) ale tu sa bledy po rozpoczaciu zmian,czyli przerobieniu na tablice w formularzu:
Nie zabardzo wiem jak sie ich pozbyc, probowalem zmienne przerabiac na tablice dopisujac [] ale to tylko pogarsza sprawe. |
|
|
30.09.2015, 23:06:59
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 844 Pomógł: 227 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
Dlaczego jak dodajesz tablicę, to nie robisz tego w kodzie PHP?
masz: $_FILES['file_news']['size'] a powinno być (przykład)
Przez to masz błąd w funkcji explode() w 2 parametrze, bo nie przesyłasz string, tylko tablicę. Z Array_POP jest to samo. W sumie wszystko ci pisze w błędach. Jak coś sprawdzaj sobie funkcją var_dump co dodajesz do danej funkcji, a jaki tym zmiennej powinna być dodana. Ten post edytował Tomplus 30.09.2015, 23:10:11 |
|
|
1.10.2015, 00:29:59
Post
#3
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 0 Dołączył: 11.09.2015 Ostrzeżenie: (0%) |
|
|
|
1.10.2015, 08:28:34
Post
#4
|
|
Grupa: Zarejestrowani Postów: 731 Pomógł: 141 Dołączył: 9.05.2011 Skąd: śląskie Ostrzeżenie: (0%) |
Tomplus już Ci podpowiadał jak sprawdzić co masz dokładnie w zmiennej.
Wstaw między linie 2 a 3 kodu, który pokazałeś Kod var_dump($_FILES); i zobaczysz jak wygląda zawartość tej zmiennej. Ma być dokładnie jak napisał Tomplus Cytat(Tomplus) Indeks "[0]" będzie się zmieniał w zależności od ilości plików jakie prześlesz. Ten post edytował mar1aczi 1.10.2015, 08:30:28 -------------------- Szanuj innych czas! Kliknij , gdy pomocną wskazówkę otrzymasz.
|
|
|
1.10.2015, 09:24:17
Post
#5
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 0 Dołączył: 11.09.2015 Ostrzeżenie: (0%) |
mam taka petle ale jakos nie bardzo ona dziala, cos w niej nie tak? zawsze i tak dodaje sie pierwszy plik chodz w zmiennej _FILES jest nascie plikow |
|
|
1.10.2015, 09:29:41
Post
#6
|
|
Grupa: Zarejestrowani Postów: 3 033 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
a nie czasem ostatni? bo w pętli musisz mieć też dodawanie, a tak on wykona pętle i dodaje ost jej wynik
|
|
|
1.10.2015, 09:47:49
Post
#7
|
|
Grupa: Zarejestrowani Postów: 3 033 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
bo nie mogą, musi to być w jednej pętli, bo to nie to samo, zrób var_dump na te zawartość $roz i $x
|
|
|
1.10.2015, 10:12:46
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 366 Pomógł: 1115 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
I rzuciło mi się w oczy że sprawdzasz pliki po rozszerzeniu. Nie jest to bezpieczne. Sprawdzaj typ mime.
-------------------- |
|
|
1.10.2015, 10:33:38
Post
#9
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 0 Dołączył: 11.09.2015 Ostrzeżenie: (0%) |
tylko mime pliku chyba sie zmienia gdzies tak czytalem ?
Chodzi ci o cos takiego?
takie cos pdf puscilo oO Ten post edytował eminiasty 1.10.2015, 10:26:08 |
|
|
1.10.2015, 11:00:16
Post
#10
|
|
Grupa: Zarejestrowani Postów: 3 033 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
a zrobiłeś na tym var_dump? rozszerzenia tym bardziej można zmienić
|
|
|
1.10.2015, 11:21:59
Post
#11
|
|
Grupa: Zarejestrowani Postów: 731 Pomógł: 141 Dołączył: 9.05.2011 Skąd: śląskie Ostrzeżenie: (0%) |
takie cos pdf puscilo oO Bo pdf po mime zapewne spełnił powyzszy warunek. "!=" oznacza różne, a "&&" spójnik 'i' - w dużym uproszczeniu. Poczytaj o operatorach w php. Wg. Twojego ifa $file_brand dla pdf'a był rożny dla wszystkich wykazanych typów. -------------------- Szanuj innych czas! Kliknij , gdy pomocną wskazówkę otrzymasz.
|
|
|
1.10.2015, 12:35:38
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 844 Pomógł: 227 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
Sprawdzaj warunki, najlepiej notując sobie ołówkiem w zeszycie czy to co wrzucasz jest logiczne lub nie.
np. brand = 'pdf'; (pdf != jpg) ^ (pdf != png) ^ (pdf != gif) ^ (pdf != bmp) => T ^ T ^ T ^ T [ bo 1*1*1*1 = 1 ]=> TRUE brand = 'jpg'; (jpg != jpg) ^ (jpg != png) ^ (jpg != gif) ^ (jpg != bmp) => F ^ T ^ T ^ T [ bo 0*1*1*1 = 0 ]=> FALSE A co do puszczenia PDF, to sprawdź jaki faktyczną wartość masz MIME Type. Jak nie chcesz var_dumpować wartości, to wrzuć sobie testowo do URL np. "&brand={$file_brand}" |
|
|
1.10.2015, 20:38:19
Post
#13
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 0 Dołączył: 11.09.2015 Ostrzeżenie: (0%) |
problem byl tego typu ze pdf przechodzil gdy na multiple byl obrazek +pdf , sam pdf nie przechodzi wiec teoretycznie ok
Chce do jednego ogloszenia moc dodawac x kategorii. mam cos takiego, wszystko dziala, ale zakomentowalem headera przekierowujacego i ..
wywala mi notice, czy musze deklarowac jakos posta jesli przechodzi on przez petle i pochodzi z POSTA? jesli tak w jaki sposob to zrobic na moim przykladzie? moze ten blad jest ze wzgledu na wersje php, uzywam xampa wiec chyba aktualna czy da sie tego foreach zamienic na for'a? z takim wykorzystaniem? |
|
|
1.10.2015, 20:49:16
Post
#14
|
|
Grupa: Zarejestrowani Postów: 1 844 Pomógł: 227 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
Notice to tylko uwaga, a nie błąd.
Ale zadeklaruj $categories jako tablicę a nie wartość null. $categories = array(); |
|
|
1.10.2015, 20:51:26
Post
#15
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
|
|
|
1.10.2015, 21:02:20
Post
#16
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 0 Dołączył: 11.09.2015 Ostrzeżenie: (0%) |
no ok.. zadeklarowalem jako array
blad w lini:
Teraz tak funkcja z tej linijki ma sie tak:
ale ale:
wyrzucajac funkcje i zostawiajac tylko przypisanie jest komunikatowa magia : ( na poziomie wyzej rozumiem ze blad z trimiem nie powinno sie go uzyc czy cos w ten desen)
Zapewne chodzi o konwersje do typu tekstowego ale czy ta tablica nie jest "JUZ" jako typ tekstowy? to po co i ew jak to przekonwertowac? Czy nie musze filtorwac zmiennej _POST[castegories] w moze abstrakcyjny sposob ktory wymyslem? |
|
|
1.10.2015, 21:18:24
Post
#17
|
|
Grupa: Zarejestrowani Postów: 1 844 Pomógł: 227 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
Notice to też błąd weźcie się ludzie nauczcie tego w końcu. Równie dobrze jak Ci się w Aucie zapali Pomarańczowe Check Engine to też stwierdzisz że to tylko uwaga? Przecież auto jeździ... Ja uważam że to ostrzeżenie. I tak jak kontrolka w samochodzie ostrzega, aby uniknąć błędu. @eminiasty Musisz kontrolować jakie typy zmiennych używasz, możesz sobie sprawdzać typ np.: W twoim wypadku wysyłasz do funkcji filtrujDane() całą tablicę zamiast jego elementu czyli $_POST['categories'][$kat] Zawsze możesz sprawdzić czym jest zmienna warunkami np: Zwracają ci true lub false, a takich zapytań jest więcej, is_scalar, is_bool, is_... Ten post edytował Tomplus 1.10.2015, 21:27:05 |
|
|
1.10.2015, 21:34:38
Post
#18
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 0 Dołączył: 11.09.2015 Ostrzeżenie: (0%) |
1. czy jest dobry warunek skoro w name formularza jest categories[] ? 2.
Nie mam pojecia co to pierwszy raz widze blad z jakims ofsetem 3. to: zwraca NULL? zas : bo wydaje mi sie ze tak powinno byc( w sensie zamiast kat -> work 6(id) null drugi parametr zawsze wychodzi na null..? |
|
|
1.10.2015, 21:46:27
Post
#19
|
|
Grupa: Zarejestrowani Postów: 1 844 Pomógł: 227 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
Mój błąd, zapomniałem się, już późno jest.
stosujesz $kat jako wynik tablicy, a celem jest aby pobrać klucz tablicy, zmień sobie pętle na
a najlepiej na:
Ten post edytował Tomplus 1.10.2015, 21:50:23 |
|
|
1.10.2015, 22:07:10
Post
#20
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 0 Dołączył: 11.09.2015 Ostrzeżenie: (0%) |
Pytalem o tego ifa?
Notice: Undefined variable: categories in Notice: Array to string conversion in chce sprawdzic /pobrac wartosc tego name, a warunek z mojego ifa sie nie sprawdza kiedy w name jest tablica? if musi byc w petli z iteracja?
|
|
|
Wersja Lo-Fi | Aktualny czas: 8.06.2024 - 17:38 |