Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP] max_input_vars problem
pajonk85
post 6.02.2020, 15:36:10
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.02.2020

Ostrzeżenie: (0%)
-----


Witam, jestem zielonka w php, napisałem sobie skrypt który pobiera z bazy danych mySQL dane, wyświetla je na stronie użytkownik zaznacza co ma mu się wydrukować, metodą post leci to do następnej strony gdzie mpdf to sobie obrabia i wypluwa PDF. Problem jest w tym że mój usługodawca wywala php w wersji 5.2 i zastępuje ją 5.6, a w tej wersji max liczba znaków to 1000, kiedy mój POST przesyła 38k znaków. Zmiana max_input_vars na większa nie wchodzi w grę.

Jakim sposobem przesłać taką liczbę znaków?
Go to the top of the page
+Quote Post
trueblue
post 6.02.2020, 15:51:30
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


max_input_vars nie odpowiada za liczbę znaków (ilość danych), ale liczbę zmiennych. Na pewno nie przesyłasz 38 tys. zmiennych metodą POST.


--------------------
Go to the top of the page
+Quote Post
pajonk85
post 6.02.2020, 15:58:01
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.02.2020

Ostrzeżenie: (0%)
-----


Cytat(trueblue @ 6.02.2020, 15:51:30 ) *
max_input_vars nie odpowiada za liczbę znaków (ilość danych), ale liczbę zmiennych. Na pewno nie przesyłasz 38 tys. zmiennych metodą POST.

ok mój błąd, to zmiennych wysyłam 4270.

co nie zmienia faktu że i tak jest dużo za dużo
Go to the top of the page
+Quote Post
xxdrago
post 6.02.2020, 16:00:25
Post #4





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

Ostrzeżenie: (0%)
-----


Jakie błędy zwraca php?


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
pajonk85
post 6.02.2020, 16:10:20
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.02.2020

Ostrzeżenie: (0%)
-----


nie zwraca błędów, a są na pewno ustawione na serwerze, żeby wyświetlało błędy. Jedynie przy zmianie na metode GET wyświetla że Request-URI Too Long.
A w POST jest taki objaw że tylko część danych się przesyła.
Go to the top of the page
+Quote Post
xxdrago
post 6.02.2020, 16:14:44
Post #6





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

Ostrzeżenie: (0%)
-----


Spróbuj dodać na początku pliku:
  1. ini_set('display_errors', 1);
  2. ini_set('display_startup_errors', 1);


Muszą pojawiać się błędy jeżeli wartość jest większa niż ustalona na serwerze, tak samo będzie jeżeli prześlesz za duży plik metodą post.

Ten post edytował xxdrago 6.02.2020, 16:16:05


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
nospor
post 6.02.2020, 16:19:00
Post #7





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Wysylasz postem ponad 4k pol? A wszystkie te pola zaznacza sobei uzytkownik? Przeciez to jest fizycznie niemozliwe by uzytkownik operowal na stronie taka iloscia pol/opcji.

TO wyglada jakby bylo "z lekka" zle zaprojektowane i az sie prosi o poprawke.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pajonk85
post 6.02.2020, 16:41:02
Post #8





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.02.2020

Ostrzeżenie: (0%)
-----


Cytat(xxdrago @ 6.02.2020, 16:00:25 ) *
Jakie błędy zwraca php?



Cytat(xxdrago @ 6.02.2020, 16:14:44 ) *
Spróbuj dodać na początku pliku:
  1. ini_set('display_errors', 1);
  2. ini_set('display_startup_errors', 1);


Muszą pojawiać się błędy jeżeli wartość jest większa niż ustalona na serwerze, tak samo będzie jeżeli prześlesz za duży plik metodą post.

dale nie sypie błędami :/
może dlatego że tworzy od razu PDF?

@nospor
oczywiście że jest to źle zaprojektowanie, jak by było dobrze to bym nie miał problemów.
Użytkownik wybiera sobie z listy to co potrzebuje (ma szukajke do tego), ja zrobiłem to tak że wszystko nawet to nie zaznaczone jest wysyłane dalej.

Ten post edytował pajonk85 6.02.2020, 16:41:34
Go to the top of the page
+Quote Post
xxdrago
post 6.02.2020, 16:50:46
Post #9





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

Ostrzeżenie: (0%)
-----


Jeżeli możesz, to pokaż kod może, będzie prościej znaleźć rozwiązanie.


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
nospor
post 6.02.2020, 16:56:23
Post #10





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Cytat
ja zrobiłem to tak że wszystko nawet to nie zaznaczone jest wysyłane dalej.
To nie mozesz tego szybko poprawic i wysylac tylko to co jest zaznaczone? Wydaje sie 5 minut roboty


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pajonk85
post 6.02.2020, 17:01:40
Post #11





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.02.2020

Ostrzeżenie: (0%)
-----


uzytkownik widzi to
  1. echo ' <form method="post" action="etykieta_druk.php" name="myform" target="_blank">';
  2.  
  3. <table cellpadding="3" border=0 id=tabelka style="margin-top:10px;" >';
  4.  
  5. while($r = mysql_fetch_assoc($wynik))
  6. {
  7. echo '<tr>';
  8. echo "<td>".$r['MODEL']."</td>";
  9. echo "<td>".$r['NR']."</td>";
  10. echo '<td><label>Druk<input type="checkbox" name="druk'.$r['ID'].'" value="0" /></label></td>';
  11. echo '<td><label>Stan<br><select type="text" name="stan'.$r['ID'].'" ><option> </option><option>Używany</option></select></label></td>';
  12. echo '<td><label>uwagi<input type="text" name="uwagi'.$r['ID'].'" size="5" /></label></td>';
  13. echo '<td><label>l.kopi<input type="number" min="1" style="width:40px;" pattern="^\d+?" name="kopie'.$r['ID'].'" value="1" size="1" /></label></td>';
  14. echo '<td><label>Cena<input type="text" pattern="^\d+?" name="cena'.$r['ID'].'" size="5" /></label></td>';
  15. echo '<input type="hidden" name="id" value="'.$r['ID'].'" />';
  16. if($r['LOGO'] == null){echo '<td><img src="img/no.png"></td>';}else{echo '<td><img src="img/yes.png"></td>';}
  17.  
  18. echo "</tr>\n";
  19. }
  20.  
  21. echo '</table>';


wysylane jest do tego
  1. <?php
  2. if (isset($_POST["drukujPDF"]))
  3. {
  4. include('mpdf/mpdf.php');
  5. $mpdf=new mPDF('BLANK','A4','','',10,5,10,25,5,5);
  6. $tytul = 'Ety';
  7. $max = 'SELECT max(ID) FROM telefony';
  8. //$pyt = 'select * from telefony WHERE ID IN ( 1, 2, 3)';
  9.  
  10. include('sql.php');
  11.  
  12. $maxid = mysql_query($max) or die('blad');
  13. //$wynik = mysql_query($pyt) or die('blad');
  14. $tab ='';
  15. $tab1 ='';
  16. $nowy="Nowy VAT";
  17. $maxid = mysql_fetch_array($maxid);//sprawdz najwieksza wartosc id
  18. for($a=0; $a<=$maxid[0]; $a++)
  19. {
  20. if(isset($_POST['druk'.$a])) //sprawdza ktore zostaly zaznaczone do druku
  21. {
  22. $pyt = "select * from telefony WHERE ID=$a";
  23. $wynik = mysql_query($pyt) or die('blad');
  24. if($_POST['stan'.$a]==$nowy){$stan='<div style="width:47mm; height:5mm; font-size:11pt; font-weight:bold;">Nowy <span style="font-weight:normal;">23% VAT</span></div>';}else{$stan='<div style="width:47mm; height:auto; font-size:11pt; font-weight:bold;">'.$_POST['stan'.$a].'<span style="font-weight:normal;"> '.$_POST['uwagi'.$a].'</span></div>';}
  25.  
  26. while($r = mysql_fetch_assoc($wynik))
  27. {
  28. for($i=1; $i<=$_POST["kopie".$a]; $i++) //robi tyle kopi ile zaznaczylismy
  29. {
  30. $tab = '<div style="width:47mm; height:auto; border: 1px dotted #666; overflow:hidden; text-align:center; color:#000; font-family:verdana; float:left;">
  31. <div style="width:47mm; height:14mm; //border-bottom:1px solid #ccc;"><img src="img/'.$_POST['SKLEP'].'.jpg"></div>
  32. <div style="width:47mm;"><img src="'.$r['LOGO'].'" style="max-width:45mm; display:inline; margin-top:3px;"></div>
  33. <div style="width:47mm; height:5mm; font-size:10pt; font-weight:bold;">'.$r['MODEL'].'</div>
  34. <div style="width:47mm; height:17mm; font-size:9pt;">'.$r['OPIS'].'</div>
  35. '.$stan.'
  36. <div style="width:47mm; height:6mm; font-size:14pt; font-weight:bold; padding-bottom:4px; border-bottom:1px dotted #666;">'.$_POST['cena'.$a].',-</div>
  37. </div>';
  38. $tab1 .=$tab;
  39. }
  40. }
  41. continue;
  42. }
  43.  
  44. }
  45.  
  46. $mpdf->WriteHTML("$tab1");
  47.  
  48. $mpdf->Output('etykieta.pdf');
  49. $mpdf->Output('etykietki.pdf','I');
  50. }
  51. ?>


Ten post edytował pajonk85 6.02.2020, 17:04:15
Go to the top of the page
+Quote Post
nospor
post 6.02.2020, 17:03:12
Post #12





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Pokaz funkcje filtruj()


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pajonk85
post 6.02.2020, 17:10:19
Post #13





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.02.2020

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 6.02.2020, 17:03:12 ) *
Pokaz funkcje filtruj()


ona nic nie zmienia, ukrywa tylko element tabelka.rows[i].style.display = "none";
Go to the top of the page
+Quote Post
nospor
post 6.02.2020, 17:13:10
Post #14





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Nic nie zmienia tylko ukrywa.... ukrycie to juz jest zmiana, ot taka ciekawostka wink.gif

Wywal generowanie pol poza formularz. Zas w funkcji filtruj() wrzucaj do forma tylko to co wybrane. Tym sposobem bedziesz wysylal tylko wybrane pola i nagle wszystko zacznie ci dzialac


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pajonk85
post 6.02.2020, 17:22:32
Post #15





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.02.2020

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 6.02.2020, 17:13:10 ) *
Nic nie zmienia tylko ukrywa.... ukrycie to juz jest zmiana, ot taka ciekawostka wink.gif

Wywal generowanie pol poza formularz. Zas w funkcji filtruj() wrzucaj do forma tylko to co wybrane. Tym sposobem bedziesz wysylal tylko wybrane pola i nagle wszystko zacznie ci dzialac


ooo pomysł genialny, tylko z js leże i kwiczę :/
a jakoś da się tego forma całego obrobić w PHP przed wysłaniem i żeby wysyłały się tylko te wartości gdzie ktoś zaznaczył checkbox?

Ten post edytował pajonk85 6.02.2020, 17:23:14
Go to the top of the page
+Quote Post
nospor
post 6.02.2020, 17:32:19
Post #16





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Cytat
a jakoś da się tego forma całego obrobić w PHP przed wysłaniem
No jak obrobisz go w php? Zeby go obrobic w php, musisz wpierw go do php wyslac i tym samym wracamy do tego samego problemu wink.gif

Cytat
ooo pomysł genialny, tylko z js leże i kwiczę

Dobra, to inaczej. Zostaw jak masz teraz, a oprocz ukrywania pol, nadawaj im rowniez status DISABLED. Pola DISABLED nie sa wysylane formem.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
LowiczakPL
post 6.02.2020, 17:35:12
Post #17





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

Ostrzeżenie: (0%)
-----


a czy nie możesz zrobić sobie tablicy z 5 zmiennymi zamiast X zmiennych w pętli

czyli zamiast

  1. <input type="checkbox" name="druk'.$r['ID'].'" value="0" />


robisz

  1. <input type="checkbox" name="druk['.$r['ID'].']" value="0" />


i tak dla każdej zmiennej


--------------------
Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
Go to the top of the page
+Quote Post
trueblue
post 6.02.2020, 17:38:42
Post #18





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Cytat(LowiczakPL @ 6.02.2020, 17:35:12 ) *
a czy nie możesz zrobić sobie tablicy z 5 zmiennymi zamiast X zmiennych w pętli

czyli zamiast

  1. <input type="checkbox" name="druk'.$r['ID'].'" value="0" />


robisz

  1. <input type="checkbox" name="druk['.$r['ID'].']" value="0" />


i tak dla każdej zmiennej

Checkbox niezaznaczony nie zostanie wysłany. Nie ma znaczenia czy sobie zrobi typ tablicowy, czy odrębne zmienne. A jeśli byłyby wysłane, to i tak nie skróci ilości zmiennych.

Ten post edytował trueblue 6.02.2020, 17:42:13


--------------------
Go to the top of the page
+Quote Post
nospor
post 6.02.2020, 18:00:19
Post #19





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




@trueblue ale co ma do tego nie wyslanie checkboxa? Mysle ze @lowiczak mial na mysli by zrobic w ten sposob wszystkie pola, a to juz by pomoglo

aczkolwiek pewnie zmienne tablicowe i ich indeksy tez podchodza pod ten limit. ALe pewnosci nie mam bo nigdy nie musialem tak kombinowac wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pajonk85
post 6.02.2020, 18:58:51
Post #20





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.02.2020

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 6.02.2020, 17:32:19 ) *
No jak obrobisz go w php? Zeby go obrobic w php, musisz wpierw go do php wyslac i tym samym wracamy do tego samego problemu wink.gif


Dobra, to inaczej. Zostaw jak masz teraz, a oprocz ukrywania pol, nadawaj im rowniez status DISABLED. Pola DISABLED nie sa wysylane formem.


mistrzu! jesteś genialny, zrobiłem. Co prawda inaczej troszkę bo użyłem JQ do tego i zrobiłem tak że wszystko jest disable oprócz pola drukuj, po zaznaczeniu checkbox wszystko w rzędzie robi się enabled i wysyłają się tylko wybrane.
DZIĘKUJE! biggrin.gif
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.04.2024 - 12:18