Delphi 4 php - событие создания формы запускается примерно 50 раз - PullRequest
0 голосов
/ 11 марта 2011

Проект работает на моей машине разработки.Но на веб-сервере одна из страниц запускается примерно 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();
?>

1 Ответ

2 голосов
/ 11 марта 2011

Мало кто знает фреймворк Delphi for PHP, и те, кто его знает, похоже, не тусуются здесь. * В коде, который вы опубликовали, нет ничего , которое бы представляло описанные вами симптомы.

Но тебе не повезло, мой друг! Установите xdebug на сервер. Это позволит вам использовать любой стандартный отраслевой инструмент отладки для пошагового перехода по всей кодовой базе в процессе работы. Вы сможете остановить выполнение кода в середине, проверить переменные, пропустить блоки и выполнить другие важные этапы отладки.

Используя это, вы сможете найти код или условие, которое вызывает функцию, вызываемую слишком много раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...