-1

プロジェクトは私の開発マシンで正常に動作します。しかし、Web サーバーでは、ページの 1 つで oncreate が約 50 回起動され、ボタンが自動的に押されます。それが私の第一印象でした。しかし、何かがフォームの最後の状態をキャッシュしているだけであることがわかりました(ローカルでは発生せず、キャッシュをクリアしたため、ブラウザではありません)。

どうすればこれを防ぐことができますか?

<?php
require_once("vcl/vcl.inc.php");
use_unit("forms.inc.php");
use_unit("stdctrls.inc.php");
use_unit("comctrls.inc.php");

//Class definition
class frm_Sign_Up extends Page
{
   public $lbl = null;
   public $cbx = null;
   public $lblHdr = null;
   public $btnSignUp = null;
   public $btnCancel = null;


   function frm_Sign_UpCreate($sender, $params)
   {
     // Populate Combobox
     $this->Populate();
   }

   function Populate()
   {
     // Count number of times Create is run
     $this->cbx->AddItem($this->cbx->Count);
   }

   function btnSignUpClick($sender, $params)
   {
      // Display it
      $Error = 'x';
      if ($Error <> '')
      {
        $this->lbl->Caption = 'Pressed '.$this->cbx->Count;
        $this->lbl->Visible = true;
        return (false);
      }
      else
      {
        redirect ('app_main.php');
        exit;
      }
   }
}

global $application;

global $frm_Sign_Up;

//Creates the form
$frm_Sign_Up=new frm_Sign_Up($application);

//Read from resource file
$frm_Sign_Up->loadResource(__FILE__);

//Shows the form
$frm_Sign_Up->show();
?>
4

1 に答える 1

2

Delphi for PHP フレームワークを知っている人はほとんどいません。投稿したコードには、説明した症状を示すものは何もありません。

しかし、あなたは運が悪いわけではありません、友よ! サーバーにxdebugを インストールします。業界標準のデバッグ ツールを使用して、処理中にコードベース全体をステップ実行できます。実行中にコードを停止したり、変数を検査したり、ブロックをスキップしたり、その他の重要なデバッグ手順を実行したりできます。

これを使用すると、関数が過剰に呼び出される原因となっているコードまたは条件を見つけることができます。

于 2011-03-11T20:45:33.457 に答える