最近小弟用websnap+intraweb+Apache,做一个自己公司内部的网络应用
虽说这样搭配合不合理并不是很清楚,但因为在下不是搞编程的,而websnap和intraweb也是第一次用,道听途说也开始做了程序主体在apache下可以访问了,首页也可以加载,数据库也能操作正常,但问题来了。
在首页是加载的自己设计的登陆页面,根据用户权限我用dispatchpagename转向到其他页面后,在新的页面上执行任何操作比如:按一个IWButton之类的,就会莫名其妙返回到默认起始登录页面。
实在是搞不懂,到底是websnap错了、还是intraweb错了、还是Apache配置错了,
望各位高手指点一下!

解决方案 »

  1.   

    intraweb错了,看看例子带的,多半是创建新页面时出的问题
      

  2.   

    再问一下是不是intraweb创新页面方式有问题,还是函数写的有错,我也是按照delphi7自带的例子做的?
      

  3.   

    WebAppDataModule代码如下,由系统自生成后稍微修改了一下
    library webp;uses
      WebBroker,
      ApacheApp,
      webm in 'webm.pas' {WebAppDataModule1: TWebAppDataModule},
      datacen in 'datacen.pas' {WebDataModule1: TWebDataModule},
      loginform in 'loginform.pas' {loginpage: TWebPageModule},
      Login in '..\web\Login.pas' {formLogin: TIWPageForm},
      saleform in 'saleform.pas' {salepage: TWebPageModule},
      sale in 'sale.pas' {formSale: TIWPageForm},
      qmform in 'qmform.pas' {Queryme: TWebPageModule},
      Querym in 'Querym.pas' {formQueryme: TIWPageForm},
      eform in 'eform.pas' {Erros: TWebPageModule},
      erros in 'erros.pas' {formErros: TIWPageForm};{$R *.res}exports
      apache_module name 'login_module';begin
      ModuleName:= 'login_module';
      ContentType:= 'login-handler';
      Application.Initialize;
      Application.Run;
    end.
    WebDataModule1上包含了三个TDatabase、TQuery、两个TDataSource有四个TWebPageModule,对应四个IWPageForm,操作大同小异
    TWebPageModule上用TIWPageProducer
    加上一句VForm:=TformLogin.Create(AWebApplication);
    IWPageForm上不外乎就是很多操作数据库的标准语句:Users是TQuery中的一个
     WebDataModule1.Users.Close;
     WebDataModule1.Users.SQL.Clear;
     WebDataModule1.Users.SQL.Add(...........);
     WebDataModule1.Users.ExecSQL;
     WebDataModule1.Users.Active:=True;
     WebDataModule1.Users.First;
    首页是formLogin,通过用户名、密码、权限(都存在数据库里),然后用
     ProduceResponse:=False;
     DispatchPageName('salepage',WebContext.Response,[]);
    转到其他网页,就出问题了!