Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 84,579
» Latest member: hawkplaytop
» Forum threads: 2,413
» Forum posts: 11,327

Full Statistics

Online Users
There are currently 436 online users.
» 4 Member(s) | 429 Guest(s)
Applebot, Bing, Google, dn88tipscom1, hawkplaytop, jaya9tech, ok88eucom

Latest Threads
Need Help Integrating Mic...
Forum: IntraWeb General Discussion
Last Post: capheny
Yesterday, 06:43 AM
» Replies: 0
» Views: 33
OpenSSL and concurrent re...
Forum: Indy
Last Post: kbriggs
07-05-2026, 02:41 PM
» Replies: 5
» Views: 170
Projeto Intraweb
Forum: IntraWeb General Discussion
Last Post: vonirpereira
07-03-2026, 06:51 PM
» Replies: 0
» Views: 98
Intraweb + Lazarus
Forum: IntraWeb Dúvidas Gerais
Last Post: vonirpereira
07-03-2026, 06:35 PM
» Replies: 0
» Views: 54
Image question on tiwjqdb...
Forum: IntraWeb General Discussion
Last Post: alex.trejo@tttnet.com.mx
07-01-2026, 12:19 AM
» Replies: 4
» Views: 4,282
TIWjQDBGrid erratic behav...
Forum: IntraWeb General Discussion
Last Post: alex.trejo@tttnet.com.mx
07-01-2026, 12:04 AM
» Replies: 4
» Views: 635
CSS file not reloading af...
Forum: IntraWeb General Discussion
Last Post: Gustave
06-30-2026, 09:00 PM
» Replies: 0
» Views: 107
IW 16.2.0 Missing librari...
Forum: IntraWeb General Discussion
Last Post: Gregory_Twedt
06-24-2026, 04:40 AM
» Replies: 5
» Views: 804
VCL conversion
Forum: Delphi General Discussion
Last Post: tobenschain
06-20-2026, 05:00 AM
» Replies: 0
» Views: 146
TIWjQDBGrid changing UI
Forum: IntraWeb General Discussion
Last Post: BoostedCruiser
06-08-2026, 02:02 AM
» Replies: 36
» Views: 70,985

 
  get url params 15.1.5
Posted by: MrSpock - 11-03-2019, 12:08 PM - Forum: IntraWeb General Discussion - Replies (3)

intraweb 15.1.5
I have had no luck getting a session url params in serverController-onGetMainForm
so I cannot change main form according to an identified param like http://url/?test

Print this item

  OSC commands with numbers
Posted by: davidbaxter - 11-01-2019, 03:04 PM - Forum: Indy - Replies (3)

Trying to use Indy to send OSC (open sound control) messages to a Behringer X32 mixer. If the message is just text, it works fine. The issue is a message of the format "/ch/01/mix/fader ,f .3". The .3 needs to be sent as 4 bytes. What needs to go out is "3E 99 99 9A". What the idudpclient sends is "3E 3F 3F 3F". The same problem exists for .4 (3E CC CC CD vs. 3E 3F 3F 3F). Once you get to .5 and greater, things work again because the second byte is smaller. e.g. .5 = 3F 00 00 00 > 3F 00 00 00, .6 = 3F 19 99 9A > 3F 19 3F 3F).

I'm using Indy 10 and Delphi Rio. Here is the sending subroutine. I've commented out several different approaches, all of which give the same result.

procedure TCPForm1.OSCSendMsg;
var
  OutValueStr: String;
  I: Integer;
  J: Tbytes;
  B1: TIdbytes;
begin
  If Length(CommandStr) > 0 then begin
    OscCommandStr := PadStr(CommandStr);        //convert CommandStr to OSC string
    If TypeStr='' then OscCommandStr := OscCommandStr+','+#0+#0+#0;
    If Length(TypeStr) = 1 then begin
      If TypeStr='i' then Begin    // Parameter is an integer
              I := swapendian(IValue);              //change to big endian
              OscCommandStr := OscCommandStr+','+TypeStr+#0+#0+IntToCharStr(I);
              OutValueStr  := IntToStr(IValue);
            end;
      If TypeStr='f' then Begin    // Parameter is a float (real)
              I := swapendian(PInteger(@FValue)^);  //typecast & change to big endian
              //I := htonl(PInteger(@FValue)^);  //typecast & change to big endian
              //J := MakeOSCFloat(FValue);
              OscCommandStr := OscCommandStr+','+TypeStr+#0+#0+IntToCharStr(I);
              //OscCommandStr := OscCommandStr+','+TypeStr+#0+#0+char(J[0])+char(J[1])+char(J[2])+char(J[3]);
              OutValueStr  := FloatToStr(FValue);
            end;
    end;
  //IdUDPClient2.Send(OSCCommandStr,IndyTextEncoding_UTF8);
  //IdUDPClient2.Send(OSCCommandStr);
  B1 := toBytes(OSCCommandStr);
  IdUDPClient2.SendBuffer(B1);
  if loglevel>0 then logwrite('OSC= '+ hexstr(OSCCommandStr));
  Wait(UDPtime);
//  if loglevel>0 then logwrite('OSC '+ OSCCommandStr);
  end;
end;


function  TCPForm1.IntToCharStr(I : Integer) : String;
var
  CharStr : String;
  MyArray: array [0..3] of Byte;
  J: Integer;
begin
  For J :=0 to 3 do MyArray[J] := 0;
  Move(I, MyArray, 4);  //typeset conversion from integer to array of byte
  CharStr := '';
  For J :=0 to 3 do    //convert array of byte to string
    CharStr := CharStr+char(MyArray[J]);
  IntToCharStr := CharStr;
end;


Any insight you can share would be welcome. Thank you.
..Dave

Print this item

  Distinct PC Users using IW App
Posted by: cprmlao@hotmail.com - 11-01-2019, 11:32 AM - Forum: IntraWeb General Discussion - Replies (4)

Hi, I need to do a license control in IW app.
Is there a way to know how many distinct PC users are using the IW app.
If the amount is greater than a limit, I´d like to disable access.

Any others ideas are appreciated.

Regards,
Luiz

Print this item

  IW 15.1.7 error during installation
Posted by: aimpera - 10-31-2019, 04:07 PM - Forum: IntraWeb General Discussion - Replies (7)

Hi,
IW installer (iw15.1.7.exe) after validating license step, excepts a "download error":


Quote:Sorry, the files could not be downloaded. Click 'Retry' to try downloading the files again, or click 'Cancel' to terminate setup.


Can you check?

Best Regards, Alfredo.

Edit:
Installing *ONLY* Intraweb (no Bootstrap no FASTMM etc) works...

Print this item

  ssl mixed content error intraweb 15.1.5
Posted by: PDSBILL - 10-31-2019, 02:44 PM - Forum: IntraWeb General Discussion - Replies (11)

I have a program that runs properly under delphi 10.3 using intraweb 15.0.17 as isapi dll
same program built using delphi 10.3.2 using intraweb 10.1.5 has following error

Mixed Content: The page at 'https://cdpservices.company.com/webppreviewer_DEV/' was loaded over HTTPS, but requested an insecure resource 'http://10.10.250.38/webPPReviewer_DEV/ppwebreviewer.dll/q19he8KSL-L7KEbcSSt18o6hYSq/'. This request has been blocked; the content must be served over HTTPS.

The iis server it runs on does not have ip address 10.10.250.38. I cannot find any machine that has this ip address

The first page of my app comes up, but when I attempt to go to the 2nd page is when I get the error.
I am assuming that the http://10.10.250.38  should be 'https://cdpservices.company.com' but cannot find any place to set the value.


Thank you for any help.

Print this item

  IW 15.1.7 handlers randomic problem
Posted by: cprmlao@hotmail.com - 10-30-2019, 05:14 AM - Forum: IntraWeb General Discussion - Replies (2)

With IW 15.1.17

I have a handler, a Form using a Html TemplateForm  and a JS code used in document.ready().

I have in my app many handlers.

In the local network and with amazon EC2 I am using WIFI with my home router. I am not using  internet provider from mobile.

I am having randomic "404 error" with "resource not found" when using the app with the chrome browser in my mobile and Amazon EC2 Server.

Sometimes the Handler works, other times doesn´t work. When I tried debug I see it is trowing an error of  "404 - resource not found", randomically.


If I use the Chrome Desktop or my mobile with chrome  connected with IW server installed  in a PC  in the local network, there is no problem.

If I use the Chrome Desktop connected with IW server installed  in Amazon EC2 , I have no problem.

The  problem  only occur when  using chrome browser of my cell phone and  IW server in Amazon EC2.

I have noted that the problem happens when I use the crome browser of my mobile. If I use the default browser of my mobile there is no problem.
I have Android Oreo in the mobile and it is a recent Cell phone. So Chrome os updated in version 78.0.3904.62
What can be causing it?

//IW Handler

Code:
function TContentAgenda.Execute(aRequest: THttpRequest; aReply: THttpReply;
  const aPathname: string; aSession: TIWApplication;
  aParams: TStrings): boolean;
var
  jso,js:TJsonObject;
  ja:TjsonArray;
begin
  Result:=True;
  js:=TJSonObject.Create;
  ja:=TjsonArray.Create;
  try
    with Controller.DM.FDQQuery do begin
      Close;
      SQL.Clear;
      SQL.Add('Select A.* from TableTeste');
      .....
  js.AddPair('draw',TJSONString.Create(_draw));
      js.AddPair('recordsTotal',TJSONString.Create(....));
      js.AddPair('recordsFiltered',TJSONString.Create(....));
      js.AddPair('data',ja);
      wresult:=js.toJson;
Close;
  finally
    js.Free;
  end;
  aReply.WriteString(wresult);
end;

//JS code in html Template Form

Code:
<script>
  $(document).ready(function () {
    function listaAgenda() {
      let params = {
        data_inicial: moment().format('DD/MM/YYYY'),
        data_final: moment().add(1, 'days').format('DD/MM/YYYY'),
        med_ag: $('#IWUSU').val() || ''
      };
      //encodeURI
      $.ajax('/GetAgenda?' + encodeURI($.param(params)))
        .done(resp => {
          let out = JSON.parse(resp);
          let context = { qtde: out.recordsFiltered, items: out.data };
          context.hasItems = (parseInt(context.qtde, 10) > 0);
          let html = template_agenda_script(context);
          $("#id_agenda_menu").html(html);
        }).fail(erro => {
          alert(JSON.stringify(erro))
        })
    };
    listaAgenda()
  })
</script>

Print this item

  My complete steps for setting up IW SSL app, using http.sys
Posted by: chiswilson - 10-29-2019, 07:24 PM - Forum: IntraWeb General Discussion - Replies (1)

My Steps for getting IW SSL application working (using http.sys)

I recently updated to IW 15 Ultimate, for the purposes of transitioning my app to SSL.  It was actually easier than I expected.  After reading many posts in the forums, especially some helpful ones from Jose Nilton Pace, as well as Daniel, I decided to go with using http.sys, instead of the usual Indy version.  From what I can tell, it was a good decision, and easier.

(as an aside - I really think AtoZed should provide definitive instructions, for doing this with their software.  Someone else recently asked for official AtoZed instructions for this, in the forums, and the AtoZed response was to go read threads and posts that their other *customers* had written.  The end result is, to learn how to do something new, you have to go searching and reading dozens of scattered posts and tidbits here and there, some old, some new, some accurate and some not, from other customers on this forum and users around the ’net.
Would make a lot more sense if there was a central help document, written and sanctioned by AtoZed.
All that being said — Im still very appreciative of AtoZed for making all this *work*! …)


MY DETAILS:
IW version:  IW15 Ultimate  (I currently have v 15.1.7)
IW application type:  Standalone, HTTP.SYS
Delphi IDE:  Delphi 2010
Hosting server:  Windows Server 2012 R2
IIS version (only used for installing certificate):  IIS 8


GENERATE YOUR CSR  (certificate request)
On your server, start IIS Manager.  (Only use IIS for dealing with certificate; after that, you don't need it.)
Go into ‘Server Certificates’.
On the right, click ‘Create Certificate request’, and fill out the required info.  For Common name, you’ll need to put the exact domain name that will be used for accessing your application.  Mine was: weblogin.mydomain.com.  
For Cryptographic service, use: Microsoft RSA SChannel…   For bit length, use: 2048
Then specify a filename for your CSR and save it.


GET YOUR SSL CERTIFICATE
You can get certificates from many places, including a free one from LetsEncrypt.  I used SSL.com and just got their most basic certificate which is about $40-$45 USD or so per year, depending on how many years you buy it for.  After that, I think you just have to renew it, once per year or so.
During the purchase process, they’ll ask you to input the CSR you generated in the above step, so you can simply cut and paste the contents of the CSR.
SSL.com will also need to validate that you are in fact the owner of the domain for the certificate; there are several methods of doing this.  I chose to simply have them send an email to me at admin@mydomain.com, which has a special link in it, which you use to confirm you received the email and therefore that you have control over the domain name.   Somewhere in this process, you also specify which type of server you’re using, so that they can give you the appropriate type of certificate.  Obviously the server type is IIS.
At the end, they will email you the certificate bundle, which contains a zip file, which contains the certificate as a .p7b file.  You can also download the certificate from their site, in other formats if needed.

Upload your certificate (.p7b file) to your server.
Then go back into IIS Manager on your server, go back into Server Certificates, and on the right click ‘Complete certificate request’.  Select the .p7b file that you just recently uploaded.  If you use the Open dialog, it seems to be looking for a *.cer file, but I simply changed it to *.* and selected my .p7b file.  Give it a friendly name, leave certificate store set to ‘personal’, and click OK.  It should then add your Cert to the list.
You are now DONE with IIS, so close it out.


BIND YOUR CERTIFICATE TO YOUR PORT NUMBER
Start Powershell.  I think you need it running as Administrator.  You can simply start a command prompt, then type:  powershell.
Type:
dir cert:\localmachine\my
It should list your certificate, and its Thumbprint.

Then run this powershell code, substituting your own thumbprint:

Code:
$guid = [guid]::NewGuid()
$certHash = “89C38E9AD6455F9A8782DD29CE089074C57311ED”  #  <— Put in your own Thumbprint here!
"http add sslcert ipport=0.0.0.0:443 certhash=$certHash appid={$guid} certstore=my" | netsh
To be able to copy-and-paste within the powershell window (so you can copy and paste your thumbprint)… on the command prompt window menu, choose Properties / Options and enable the ‘Quick edit mode’.
Also, if you want a DIFFERENT port number than 443, then obviously change that in the above code.  I used 443, as it is the default port for HTTPS.
Running that code should add your binding.
To verify, you can then type:   “http show sslcert” | netsh

…and it should show your binding listing.
Also, if using a firewall, don't forget to allow traffic on port 443, or whatever port you wanna use.


THEN IN DELPHI…

In your project file, change:
IWStart  —>   IWStartHsys
TIWStart.execute(false)   —>   TIWStartHsys.execute(false)    (the false means its gonna be a service; set to true for a GUI)

On your servercontroller, set:
SSLOptions -> port  to 443, or whatever port you wanna use
SSLOptions -> NonSSLrequest  to NsRedirect   (assuming you want to force everything to HTTPS)

Thats about all I did, and it worked.  There are some other settings on the serverController you can tweak if needed, but I haven’t monkeyed with those yet.
For local development and testing, where you probably don't have a certificate, you can of course use some compiler conditionals (or other means) to easily switch back and forth between local devel mode (non ssl)  and server mode (ssl).
Thats all folks.  Hope this helps.

Print this item

  Reach specific html link ?
Posted by: gabin1405 - 10-29-2019, 04:50 PM - Forum: IntraWeb General Discussion - Replies (2)

Hello,

My company has a commercial website. We use IW15 to manage it, with some HTML files. The point is, if I start a new session, it automatically send the user to the index.html.

I would like to send specific URL link to my clients, but when they click for the first time, they reach the index.html page.

https://www.miv-soft.com/tutoriel.html

It is our website. I would like to go to the specific html file even if it's the first connection. How can I manage it ? 

By the way, the result is the same with a empty project.

Thanks for your help.

Print this item

  Multiple websites, single IP address with Intraweb and Apache
Posted by: troberts - 10-29-2019, 09:20 AM - Forum: IntraWeb General Discussion - Replies (1)

Multiple websites, single IP address with Intraweb and Apache

There are a number of ways that you can serve multiple websites created using Intraweb from a single webserver and single public IP address. I am going to describe the way I set it up in case others find it useful. I'm not suggesting that this is the best or only way to do it, but it worked for me.

Step 1. Assign unique port numbers to your Intraweb applications. Do this by setting the Port property of the ServerController. For example, set application 1 to port 50000, application 2 to port 50001 and so on. Also set the AppName property of the ServerController. Note that this name cannot contain any spaces.

Step 2. Compile the Intraweb applications as a Windows service. You can set up your dpr file to easily switch between stand-alone executable (for use during development) and service (for deployment).

Code:
{$DEFINE SERVICE}
//{$DEFINE EXE}
program Application1;
uses  
  {$IFDEF EXE}
  IWRtlFix,
  Forms,
  UTF8ContentParser,
  IWMain,
  IWStart,
  {$ENDIF}
  {$IFDEF SERVICE}
  IWRtlFix,
  IWStart,
  {$ENDIF}
  Form1 in 'Form1.pas',   
  ServerController in 'ServerController.pas',
  UserSessionUnit in 'UserSessionUnit.pas';
{$R *.res}
begin  
  {$IFDEF EXE}  
  TIWStart.Execute(True);
  {$ENDIF}
  {$IFDEF SERVICE}
  TIWStart.Execute(False);
  {$ENDIF}
end.

Step 3. When you are ready to deploy, compile the application as a service and copy the .exe file to a suitable location on your webserver. Install the service application by running Application1.exe -install from a command line (this step only needs to be done once).
 
Step 4. Run the Windows Services Manager (press Start and type Services). The Services Manager will be your friend for the remainder of the setup process. Check in the Services Manager and you should see your application listed. You will find it listed under the AppName that you defined in step 1. Set its startup type to Auto and start if it’s not already running. 

Step 5. Install Apache. There are a number of places where you can download a Windows installer for the current version of the Apache HTTP server. Choose the 32-bit or 64-bit option as appropriate. Here’s the site that I used:

https://www.apachehaus.com/cgi-bin/download.plx

After installing Apache, check in the Services Manager to see if it is running (Apache HTTP Server).

Step 6. Purchase the domain names (from godaddy or another provider) and a public static IP address (from your ISP) if you don’t have one already.
Let’s say you purchase domain names application1.com and application2.com. You need to configure the name server records for both the domain names so that you have an “A” record which points to your webserver’s public static IP address. For example, you need an “A” record with host name application1.com pointing to your static IP address, and similarly for application2 you need an “A” record with host name application2.com pointing to the same IP address.

Note that it can take up to eight hours for the name server changes you make to take effect. In my case it took a couple of hours.

Step 7. Set up port forwarding on your broadband router so that port 80 is forwarded to your webserver. You will need to assign a local static IP address to your webserver to do this. For example, if you have assigned the static address 192.168.1.1 to your webserver, create a port forward in your router so that requests on port 80 are forwarded to 192.168.1.1.

Step 8. Edit the Apache configuration file. If you have installed Apache in the default location, the file you want to edit is this one:

C:\Apache24\conf\extra\httpd-vhosts.conf

Add the following lines:


Code:
NameVirtualHost *:80
<VirtualHost *:80>
    ServerName application1.com
    ProxyPass / http://127.0.0.1:50000/
    ProxyPassReverse / http://127.0.0.1:50000/
</VirtualHost>
<VirtualHost *:80>
    ServerName application2.com
    ProxyPass / http://127.0.0.1:50001/
    ProxyPassReverse / http://127.0.0.1:50001/
</VirtualHost>

The NameVirtualHost directive tells Apache that we want it to listen on port 80 for requests to virtual hosts.

The first VirtualHost section tells Apache to take any requests that are made to the application1.com domain name and pass them on to port 50000 on the local machine. This is of course the port that your Intraweb application is listening on. Likewise, any requests made to application2.com are passed on to port 50001. Apache is acting as a “reverse proxy” in this case. Rather than allowing an internal application to access the internet via a proxy server, it takes requests from the internet and directs them to an internal application.

After saving the httpd-vhosts.conf file, restart Apache using the services manager.

That’s it. You can test locally by browsing to http://127.0.0.1:50000/ and http://127.0.0.1:50001/ and you should get the application1 and appliation2 websites respectively. If they are working, then try using the domain names you have registered.
When you need to update your website executable file, stop the application service, copy the new file over the old one and then start the service.

Print this item

  Another Bootstrap problems
Posted by: Anto90 - 10-25-2019, 03:43 PM - Forum: IntraWeb General Discussion - Replies (10)

Hi, I noticed problems on iwbscheckbox and iwbsradiobutton on intraweb 15.1.7.
Having an iwbscheckbox inside an iwbsregion if I try to read the checkbox value
value: = iwbscheckbox.checked; I always get the value false. If instead the same component is inside an iwbsinputform the value is read correctly.

Instead having an iwbsradiobutton inside an iwbsregion the checked property is read correctly. If it is inside an iwbsinputform, it is not read correctly (it always returns false).
If possible I would need an answer as soon as possible as I should go in line with the updated site.
I am attaching an example project to highlight the problem.
Thank you
Andrea



Attached Files
.zip   Example.zip (Size: 54.1 KB / Downloads: 6)
Print this item