Hello together!

I'm working on a little personal website and encountered a very strange problem with the content that is sent by a form:

I run the attached CGI test application on my webspace which is a x86_64 Linux. When I enter text which contains a certain amount of characters/bytes into the textarea and submit that form, a part of the content seems to be truncated (all zeros) - this includes the name-value-pair of the submit button (which is sent after the textarea) so that the submit is not detected. It doesn't matter if my application is compiled for i386 or x86_64.

The problem doesn't appear when I run the app on my local servers (i386 Linux and Windows).

This "magical amount" is reached earlier when I use multi byte characters (e. g. umlauts).

What can be the problem? Can it be a configuration problem of Apache? (all three computers run Apache) Or is it a problem because the webspace has a different "library environment" than my local computers? (but the executable has no dependencies?!)

Regards,
Sven
program cgitest;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Classes
  { you can add units after this }, custcgi, HTTPDefs, sysutils;

type
  TMyCGITest = class(TCustomCGIApplication)
    procedure handleRequest(ARequest: TRequest; AResponse: TResponse);
           override;
  end;

{ TMyCGITest }

procedure TMyCGITest.handleRequest(ARequest: TRequest; AResponse: TResponse);
var
  msg: String;
begin
  if ARequest.ContentFields.Values['button'] <> '' then
    msg := 'This was a POST'
  else
    msg := 'This was not a POST';

  AResponse.ContentType := 'text/html; charset=utf-8';
  AResponse.Content :=
    '<html>' +
    '<head><title>CGI Test</title><meta http-equiv="content-type" 
content="text/html; charset=UTF-8" /></head>' +
    '<body><p>' + msg + '</p><form method="POST" action="./cgitest" 
accept-charset="UTF-8"><p><textarea rows="15" cols="80" name="text">' + 
ARequest.ContentFields.Values['text'] + '</textarea></p><p><input type="submit" 
name="button" value="Send" /></form></body>' +
    '</html>';
end;

{$IFDEF WINDOWS}{.$R cgitest.rc}{$ENDIF}

var
  app: TMyCGITest;
begin
  app := TMyCGITest.Create(Nil);
  try
    app.Initialize;
    app.Run;
  finally
    app.Free;
  end;
end.

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to