Wieviel passt in ein textarea?
Linuchs
- html
- mysql
0 pl0 Rolf B0 TS- html
- mysql
- php
Moin,
für den Elbe-Radweg habe ich HIER trackpoints gefunden, die ich per PHP umgeformt und per echo ausgegeben habe:
// <name>ERW L01: Schöna - Heidenau</name>
[50.859366981312633,14.222367033362389],
[50.859449962154031,14.222450014203787],
[50.859533026814461,14.222599966451526],
...
[53.895283006131649,9.128049965947866],
[53.895600009709597,9.127400033175945],
[53.895899998024106,9.126750016584992],
28925 Zeilen (ca 1157000 B)
Habe die per copy & paste in das HTML-textarea des Radwege-Kopfsatzes kopiert und abgeschickt, damit PHP es in der Datenbank speichert.
Das funktionierte nicht und ich lernte den mySQL Datentyp mediumtext
für 64 MB kennen, das sollte reichen.
Aber offenbar schickt Firefox diese Datenmenge im textarea gar nicht erst ab. Ich lasse per PHP anzeigen, was angekommen ist. Nichts, nada für dieses Feld.
Ich konnte nicht ausfindig machen, bei welcher Größe textarea versagt. Gibt es für XXXXXL vielleicht auch so ein "Zauberwort" wie mediumtext
?
Edit: https://www.w3schools.com/tags/tag_textarea.asp: "A text area can hold an unlimited number of characters, ... "
Ja, das sehe ich, passt alles rein. Aber die Daten sollen nicht gehalten, sondern weitergegeben (gesendet) werden. Das Abschicken dauert, als ob da wirklich was übermittelt wird, aber es steht PHP nicht zur Verfügung.
Ich kenne das Verhalten, wenn Dateien über 2 MB hochgeladen werden. Das dauert und ist dann doch vergeblich. Aber bis 2 MB habe ich doch noch Platz ...
Noch'n Test: Andere Felder sind änderbar, wenn das textarea so gefüllt ist.
moin,
Aber offenbar schickt Firefox diese Datenmenge im textarea gar nicht erst ab. Ich lasse per PHP anzeigen, was angekommen ist. Nichts, nada für dieses Feld.
Guck Dir mal den Request Header Content-Length an. Und das was gepostet wurde, findest Du auch in der Konsole.
MfG
Hallo Linuchs,
https://stackoverflow.com/questions/2276759/php-whats-the-total-length-of-a-post-global-variable
HTH
Rolf
https://stackoverflow.com/questions/2276759/php-whats-the-total-length-of-a-post-global-variable
Und was machst Du wenn die Requestmethode nicht POST
ist!?
MfG
Hallo pl,
und was machst Du wenn die Requestmethode nicht POST ist!?
Das wäre bei PUT Requests interessant. Bei GET o.Ä. nicht, weil man über die URL keine riesigen Datenmengen übergeben kann. Ich würde dann anhand der konkreten Problemstellung neu recherchieren, wenn post_max_size nicht greift. Für Linuchs' Frage ist es irrelevant, der hat nach POST aus einem Form gefragt.
Kannst ja mal experimentieren und es auf deiner Homepage bloggen.
Rolf
$POST_MAX
ist auch in CGI.pm
konfigurierbar. Es hat jedoch mit der Requestmethode POST
gar nichts zu tun sondern befragt RFC konform den Header Content-Length.
Im Übrigen kann es auch mit Requestmethode GET
einen message.Body geben. Genausogut kann man eine Requestmethode auch ZITRONE
nennen, die FetchAPI
machts möglich.
Ob in PHP dieser konfigurierbare Wert an die Requestmethode geknüpft ist, kann ich nicht beurteilen.
Was das Problem betrifft: Wirf einen Blick in die Konsole. Bis dahin ist ein post_max uninteressant.
MfG
Im Übrigen kann es auch mit Requestmethode
GET
einen message.Body geben.
„So, yes, you can send a body with GET, and no, it is never useful to do so.“
Genausogut kann man eine Requestmethode auch
ZITRONE
nennen, dieFetchAPI
machts möglich.
Ein wunderbarer Weg, um einen HTTP-Status 501 zu provozieren.
use strict;
use warnings;
use base qw(IO::Socket::SSL);
use constant CRLF => "\r\n";
my %ca = $^O eq 'MSWin32' ? do{
require Mozilla::CA;
my $r = {
SSL_verify_mode => 0x02,
SSL_ca_file => Mozilla::CA::SSL_ca_file()
};
%$r;
} : ();
my $host = "forum.selfhtml.org";
my $m = main->new(PeerAddr => "$host:443", %ca) or die $@;
$m->print("GET / HTTP/1.0", CRLF);
$m->print("Host: $host", CRLF);
$m->print("Content-Length: 4", CRLF, CRLF);
$m->print('ASDF');
print $m->getline;
HTTP/1.1 200 OK
HTTP/1.1 200 OK
Ja, wie ich schon zitierte, es ist erlaubt, einen message-body in einen GET-Request zu tun; es wird nur explizit davon abgeraten diesen serverseitig nutzen zu wollen.
Und zur vollständig halber, ersetzt man in deinem Quelltext, das GET durch ZITRONE; liefert der Server „HTTP/1.1 405 Method Not Allowed“.
Richtige Hacker interessieren sich nicht für Deine Ratschläge.
Hallo,
könnt ihr bitte aufhören am Server herumzuspielen? Ich kriege da jedesmal eine Mail…
LG,
CK
könnt ihr bitte aufhören am Server herumzuspielen? Ich kriege da jedesmal eine Mail…
entschuldige bitte
hi @Rolf B
hab post_max_size
mal eben getestet. Das timed zwar aus, aber am Ende antwortet PHP mit HTTP/1.1 200 OK
was immer auch das heißen mag. Auffallend ist die lange Antwortzeit.
MfG
Hello,
lies Dir dazu mal den Artikel "File Upload" im Unterkapitel Konfigurationseinstellungen durch. Die Einstellunen gelten im Wesentlichen auch für die Textarea.
Glück Auf
Tom vom Berg