Action Listener Method called multiple times

I have a page (fragment .jsff), containing a simple input text and a button called "search". When I click on "Search" the action listener is triggered multiple times. (The results are displayed in a table inside a panel collection).
The results are actually coming back ok.
When I debug the code, I can see the action listener method called twice.
Do you know why is that?
What should I be taking care of?
This is my code :
*** Fragment ****
<af:commandButton text="#{identityBundle.search_label}" id="cb1"
actionListener="#{UserDetailsBean.searchUsersListener}"
disabled="#{!bindings.searchUsers.enabled}"/>
*** Managed bean ***
public void searchUsersListener(ActionEvent actionEvent) {
// Add event code here...
DCBindingContainer bindings = (DCBindingContainer)getBindings();
DCIteratorBinding iter = bindings.findIteratorBinding("userIterator");
DCDataRow row = (DCDataRow)iter.getCurrentRow();
User user = (User)row.getDataProvider();
boolean isSearchCriteriaPresent = false;
if(user != null){
String fn = user.getFirstname();
if(fn != null && !fn.trim().equals("")){
isSearchCriteriaPresent = true;
user.setLastname(fn);
user.setNonMTUserLogin(fn);
try {
Map <Object, Object> userMap = PropertyUtils.describe(user);
for(Map.Entry<Object, Object> entry: userMap.entrySet()){
if(entry.getKey() != null && entry.getValue() != null && !entry.getKey().toString().equalsIgnoreCase("class")){
isSearchCriteriaPresent = true;
break;
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
if(!isSearchCriteriaPresent){
user.setFirstname("*");
OperationBinding opBinding = (OperationBinding)bindings.getOperationBinding("searchUsers");
opBinding.getParamsMap().put("user", user);
opBinding.execute();
AdfFacesContext adfFacesCtx = AdfFacesContext.getCurrentInstance();
Map<String, Object> scopePageFlowScopeVar= adfFacesCtx.getPageFlowScope();
scopePageFlowScopeVar.put("userSearchCriteria", user);
ADFContext adfCtx = ADFContext.getCurrent();
Map sessionScope = adfCtx.getSessionScope();
sessionScope.put("userSearchCriteria", user);
setUserSearchCriteria(user);
if(selectedUserID != null){
selectedUserID.setValue(null);
RichTable table = getUserResultsTable();
DCIteratorBinding searchUsersIterator = (DCIteratorBinding)bindings.get("searchUsersIterator");
Row[] rows = searchUsersIterator.getAllRowsInRange();
if(rows.length > 0){
RowKeySetImpl rks = new RowKeySetImpl();
ArrayList keyList = new ArrayList();
keyList.add(rows[0].getKey());
rks.add(keyList);
table.setSelectedRowKeys(rks);
table.setDisplayRowKey(keyList);
refreshState(table);
if(!isSearchCriteriaPresent){
user.setFirstname(null);
else{
deleteUserButton.setDisabled(true);
resetPasswordButton.setDisabled(true);
enableUserButton.setDisabled(true);
disableUserButton.setDisabled(true);
Thanks in advance for your help

Hi,
Can you try this?
1. set partialSubmit=true for the "search" button
2. set "search" button id as partialTrigger in your result table
-Prasad

Similar Messages

  • Servlet init() method called multiple times

    We have a Servlet-based application which does lengthy initialization.
    We've noticed that when multiple requests arrive,
    but the Servlet's init() method has not returned yet
    for the first request, the application server calls init() multiple times.
    You can even see this with the Fortune sample
    Servlet. Starting the app server and sending 20 or 30
    simultaneous requests causes multiple Fortune Servlet init messages to appear in the kjs log.
    Why is this? We do not implement SingleThreadModel.
    Doesn't the J2EE 1.2 spec say init will be called
    only once?
    How do we prevent it?
    A Startup class which inits our
    Servlet?
    Or a synchronized block within our init method, with some checks of static member variables
    so that the initialization work only happens once?
    Or is there some kregedit magic or deployment descriptor change I could make?
    Again, it's not a SingleThreadModel issue, so don't
    point me there.
    This is iAS 6.0 SP4, on Solaris, by the way.

    Hi
    Yes,you are right. In iAS6.0 SP4 When multiple requests arrive,and the Servlet's init() method has not returned yet for the first request, the application server calls init()multiple times. This problem is resolved in iAS 6.5.
    There is no kregedit magic that will solve this problem.
    Right now the workaround is any of the solution you proposed. Or use iAS6.5. I have tested it with fortune.
    Please download it and check with your application.
    you can find free download at http://developer.iplanet.com/appserver/testdrive/testdrive_65.html
    Thanks

  • ManagedBean getter Method called multiple times

    Hi,
    i have notice that the get method is called so often if i initialize a List.
    Maybe you see a solution?
    ManagedBean
    @ManagedBean(name = "videoBean")
    @SessionScoped
    public class VideoManagedBean extends GeneralManagedBean {
            @PostConstruct
            private void init() {
                this.newVideos = videoSessionBean.getNewVideos();
            public List<VideoEntity> getNewVideos() {
                System.out.println("---------getNewVideos--------------");
                return newVideos;
    }Xhtml
        <html xmlns="http://www.w3.org/1999/xhtml"
              xmlns:h="http://java.sun.com/jsf/html"
              xmlns:f="http://java.sun.com/jsf/core"
              xmlns:ui="http://java.sun.com/jsf/facelets"
              xmlns:c="http://java.sun.com/jsp/jstl/core"
              xmlns:p="http://primefaces.prime.com.tr/ui">
            <h:head>
                <meta http-equiv="content-type"
                      content="application/xhtml+xml;charset=utf-8" />
            </h:head>
            <h:body>
                <ui:composition template="/WEB-INF/template/mainTemplate.xhtml">
                    <ui:define name="content">
                        <h:form>
                            <p:dataTable var="vid" dynamic="true" value="#{videoBean.newVideos}">
                            </p:dataTable>
                        </h:form>
                    </ui:define>
                </ui:composition>
            </h:body>
        </html>The logfile shows:
        INFO: ---------getNewVideos--------------
        INFO: ---------getNewVideos--------------
        INFO: ---------getNewVideos--------------
        INFO: ---------getNewVideos--------------
        INFO: ---------getNewVideos--------------
        INFO: ---------getNewVideos--------------
        INFO: ---------getNewVideos--------------
        INFO: ---------getNewVideos--------------
        INFO: ---------getNewVideos--------------
        INFO: ---------getNewVideos--------------
        INFO: ---------getNewVideos--------------
        INFO: ---------getNewVideos--------------
        INFO: ---------getNewVideos--------------
        INFO: ---------getNewVideos--------------
        INFO: ---------getNewVideos--------------
        INFO: ---------getNewVideos--------------
        INFO: ---------getNewVideos--------------
        INFO: ---------getNewVideos--------------
        INFO: ---------getNewVideos--------------
        INFO: ---------getNewVideos--------------
        INFO: ---------getNewVideos--------------Is that normal? I never read about this problem

    Whoa there, jumping to conclusions calling this a problem right from the start.
    Yes its expected behavior. The getter can get called from several JSF lifecycle phases. I suggest you study what they are, otherwise you'll run into plenty more of these head scratching moments.

  • Listener method is called multiple times

    why is a listener method called multiple times when the user interacted
    with the component just once?

    Because you have a bug in your code.
    If you want further help post a Short, Self Contained, Compilable and Executable, Example Program ([url http://homepage1.nifty.com/algafield/sscce.html]SSCCE) that demonstrates the problem.
    And don't forget to use [url http://forum.java.sun.com/help.jspa?sec=formatting]code formatting when posting code.

  • Valuechange listener called multiple times for checkbox in table.

    Hi All,
    I'm trying to understand how value change listeners work for checkbox components within a table column. I have a checkbox declared as below
    <af:selectBooleanCheckbox id="sbc1"
    valueChangeListener="#{pageFlowScope.classfiyBean.checkBoxValueChangeListener}"
    immediate="true"
    autoSubmit="true" />
    I notice the value change listener is called multiple times. There are 6 rows in the table within which the checkbox is a component. It is called 6 times for a change. How do I prevent this from happening as it's over writing the values of the other rows as well.
    Scenario : The page is based on a human task, so the outcome button cannot be set to Immediate = true since there are other validations on the page.
    JDev: 11.1.1.4
    Thanks
    PP

    Hi
    Please make sure that Is there any logic being implemented in WD MODIFY VIEW of view controller.
    If yes that may be the cause of your problem because WDModifyView() is being called every time u perform an action.
    or
    Try to Invalidate current context node which is bound to table UI element and actually containing data at run time. I think this node is not being refreshed. Try to refresh it in Search Button action.
    or
    Check your loop code snippet, if you implemented it anywhere.
    Mandeep Virk

  • Finalize() method being called multiple times for same object?

    I got a dilly of a pickle here.
    Looks like according to the Tomcat output log file that the finalize method of class User is being called MANY more times than is being constructed.
    Here is the User class:
    package com.db.multi;
    import java.io.*;
    import com.db.ui.*;
    import java.util.*;
    * @author DBriscoe
    public class User implements Serializable {
        private String userName = null;
        private int score = 0;
        private SocketImage img = null;
        private boolean gflag = false;
        private Calendar timeStamp = Calendar.getInstance();
        private static int counter = 0;
        /** Creates a new instance of User */
        public User() { counter++;     
        public User(String userName) {
            this.userName = userName;
            counter++;
        public void setGflag(boolean gflag) {
            this.gflag = gflag;
        public boolean getGflag() {
            return gflag;
        public void setScore(int score) {
            this.score = score;
        public int getScore() {
            return score;
        public void setUserName(String userName) {
            this.userName = userName;
        public String getUserName() {
            return userName;
        public void setImage(SocketImage img) {
            this.img = img;
        public SocketImage getImage() {
            return img;
        public void setTimeStamp(Calendar c) {
            this.timeStamp = c;
        public Calendar getTimeStamp() {
            return this.timeStamp;
        public boolean equals(Object obj) {
            try {
                if (obj instanceof User) {
                    User comp = (User)obj;
                    return comp.getUserName().equals(userName);
                } else {
                    return false;
            } catch (NullPointerException npe) {
                return false;
        public void finalize() {
            if (userName != null && !userName.startsWith("OUTOFDATE"))
                System.out.println("User " + userName + " destroyed. " + counter);
        }As you can see...
    Every time a User object is created, a static counter variable is incremented and then when an object is destroyed it appends the current value of that static member to the Tomcat log file (via System.out.println being executed on server side).
    Below is the log file from an example run in my webapp.
    Dustin
    User Queue Empty, Adding User: com.db.multi.User@1a5af9f
    User Dustin destroyed. 0
    User Dustin destroyed. 0
    User Dustin destroyed. 0
    User Dustin destroyed. 0
    User Dustin destroyed. 0
    USER QUEUE: false
    INSIDE METHOD: false
    AFTER METHOD: false
    User Dustin destroyed. 1
    User Dustin destroyed. 1
    User Dustin destroyed. 1
    User Dustin destroyed. 1
    USER QUEUE: false
    INSIDE METHOD: false
    AFTER METHOD: false
    User Dustin destroyed. 2
    User Dustin destroyed. 2
    User Dustin destroyed. 2
    User Dustin destroyed. 2
    User Dustin destroyed. 2
    User Dustin destroyed. 2
    User Dustin destroyed. 2
    User Dustin destroyed. 2
    USER QUEUE: false
    INSIDE METHOD: false
    AFTER METHOD: false
    User Dustin destroyed. 3
    User Dustin destroyed. 3
    User Dustin destroyed. 3
    User Dustin destroyed. 3
    User Dustin destroyed. 3
    User Dustin destroyed. 3
    User Dustin destroyed. 3
    User Dustin destroyed. 3
    User Dustin destroyed. 3
    USER QUEUE: false
    INSIDE METHOD: false
    AFTER METHOD: false
    User Dustin destroyed. 4
    User Dustin destroyed. 4
    User Dustin destroyed. 4
    User Dustin destroyed. 4
    User Dustin destroyed. 4
    User Dustin destroyed. 4
    User Dustin destroyed. 4
    User Dustin destroyed. 4
    User Dustin destroyed. 4
    USER QUEUE: false
    INSIDE METHOD: false
    AFTER METHOD: false
    User Dustin destroyed. 5
    User Dustin destroyed. 5
    User Dustin destroyed. 5
    User Dustin destroyed. 5
    User Dustin destroyed. 5
    User Dustin destroyed. 5
    User Dustin destroyed. 5
    User Dustin destroyed. 5
    User Dustin destroyed. 5
    USER QUEUE: false
    INSIDE METHOD: false
    AFTER METHOD: false
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    Joe
    USER QUEUE: false
    INSIDE METHOD: false
    AFTER METHOD: false
    User Dustin pulled from Queue, Game created: Joe
    User Already Placed: Dustin with Joe
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    INSIDE METHOD: false
    INSIDE METHOD: false
    USER QUEUE: true
    INSIDE METHOD: false
    INSIDE METHOD: false
    User Dustin destroyed. 9
    User Joe destroyed. 9
    User Dustin destroyed. 9
    User Dustin destroyed. 9
    User Dustin destroyed. 9
    User Dustin destroyed. 9
    INSIDE METHOD: true
    INSIDE METHOD: false
    USER QUEUE: true
    INSIDE METHOD: false
    INSIDE METHOD: false
    INSIDE METHOD: true
    INSIDE METHOD: false
    USER QUEUE: true
    INSIDE METHOD: false
    INSIDE METHOD: false
    It really does seem to me like finalize is being called multiple times for the same object.
    That number should incremement for every instantiated User, and finalize can only be called once for each User object.
    I thought this was impossible?
    Any help is appreciated!

    Thanks...
    I am already thinking of ideas to limit the number of threads.
    Unfortunately there are two threads of execution in the servlet handler, one handles requests and the other parses the collection of User objects to check for out of date timestamps, and then eliminates them if they are out of date.
    The collection parsing thread is currently a javax.swing.Timer thread (Bad design I know...) so I believe that I can routinely check for timestamps in another way and fix that problem.
    Just found out too that Tomcat was throwing me a ConcurrentModificationException as well, which may help explain the slew of mysterious behavior from my servlet!
    The Timer thread has to go. I got to think of a better way to routinely weed out User objects from the collection.
    Or perhaps, maybe I can attempt to make it thread safe???
    Eg. make my User collection volatile?
    Any opinions on the best approach are well appreciated.

  • Why a getter method of a managed bean WILL be called multiple times

    Why a getter method of a managed bean WILL be called multiple times during the JSF lifecycle?Why this designed?

    This is by design indeed. Each step in the JSF lifecycle can call a getter to get the required information.

  • Custom tag library called multiple times

    Hi ppl ,
    I have a custom tag library which i use to populate some menu components. When i do call my custom tag library though , it is called multiple times, use case is as follows.
    I have menu tabs and menu bars which thanks to Mr.Brenden is working splendidly as so:-
    <af:menuTabs>
    <af:forEach var="menuTab" items="#{bindings.menu.vwUserMenuTabRenderer.rangeSet}">
    <af:commandMenuItem text="#{menuTab.MenuLabel}"
    shortDesc="#{menuTab.MenuHint}"
    rendered="true"
    immediate="true"
    selected="#{sessionScope.selectedMenuId == menuTab.MenuId }"
    onclick="fnSetSelectedValue('#{menuTab.MenuId}')" >
    </af:commandMenuItem>
    </af:forEach>
    </af:menuTabs>
    <af:menuBar>
    <af:forEach var="menuBar" items="#{bindings.menu.vwUserMenuBarRenderer.rangeSet}">
    <af:commandMenuItem onclick="return clickreturnvalue()"
    onmouseover="dropdownmenu(this, event,#{menuBar.MenuId}, '150px')"
    onmouseout="delayhidemenu()"
    text="#{menuBar.MenuLabel}"
    action="#{menuBar.MenuUri}"
    rendered="#{menuBar.ParentId == sessionScope.selectedMenuId}"
    immediate="true" />
    </af:forEach>
    </af:menuBar>
    </afc:cache>
    now all of this code is within a subview , and just directly below the subview tag , i have the call to my custom tag library:-
    <myCustomTagLib:menuCascade />
    only issue now is that assuming i have in all 7 menu bar components, the doStartTag is called 7 times. the relevant code within my custom tag class is as follows :-
    public int doStartTag() throws JspException {
    return (EVAL_BODY_INCLUDE);
    public int doEndTag() throws JspException {
    try {
    declareVariables();
    return EVAL_PAGE;
    }catch (Exception ioe) {
    throw new JspException(ioe.getMessage());
    and within my declareVariables method i do an out of the jscript ( out.print(jscript.toString()); ) which is a simple string generated based on certain conditions...
    now it seems to be working fine on the front end , but when i view the source of the page, i notice that the declaration is called multiple times, and this happens because the doStartTag method is called multiple times, i haven't even nested the call to the custom tag within the menu components , any clue as to whats going wrong ?
    Cheers
    K

    Hi,
    if you add the following print statement
    System.out.println("rendering "+FacesContext.getCurrentInstance().getViewRoot().getViewId());
    Then the output in my case is
    07/04/24 08:14:04 rendering /BrowsePage.jsp
    07/04/24 08:14:05 rendering /otn_logo_small.gif
    The image comes from the file system, which means it is rendered by the JSF lifecycle. If you reference the image with a URL then the lifecycle doesn't render the image but only refrences it.
    To avoid your prepare render code to be executed multiple times, just check for jsp and jspx file extensions, which will guarantee that your code only executes for JSF pages, not for loaded files.
    The reason why this happens is because the JSF filter is set to /faces , which means all files that are loaded through that path
    Frank

  • ADF Faces Tree - getChildren() called multiple times

    Hi,
    I have a simple tree based on the demo's 'tree.jspx'. Each time I click on a node in this tree, I see that TreeNodeImpl.getChildren() gets called multiple times for each node. This is not an issue in tree.jspx where the tree is static. However in a case where tree is constructed dynamically based on the back end state, it is going to hurt performance. Each getChildren() call then invokes backend methods which could be remote. So multiple getChildren() will invoke backend methods multiple times.
    Is this behavior of calling getChildren() multiple times per node a bug? Is there any way for me to avoid it?

    this is expected behaviour.
    Your tree model should cache data and prevent the multiple calls to the back end.

  • Backing  Bean constructor getting called multiple times

    I have a List of records in the Table with a link Add.
    When i click Add i show a popup dialog which is attached to the dialogListener.
    On clicking OK on the dialog i want to add a record in the List in the backing Bean, but the Bean constructor is getting called multiple times.
    and the list to which the table is attached is also getting called multiple times.
    is there a way in which the method gets called only once?
    Message was edited by:
    user607056

    Hi!
    af:table have property ContentDelivery. When <default> (lazy), the table "frame" iz rendered in first page cycle, and content (rows in table) are fetched lazy i.e. in second cycle. Thus, your backing bean is constructed twice.
    If you set ContentDelivery to immediate, the table including data rows is generated in single page cycle thus your backing bean is constructed only once.
    Hope this helps,
    PaKo

  • ValidateEntity getting called multiple times

    Hi,
    There is a parent EO and a child EO. There is a composite association between the parent and child.Association accessors are generated for both source and destination. In the ChildEO's doDML method , the following code is added.
    Long abc = getPArentEO().getAttr1();
    Long xyz = getPArentEO().getAttr2();
    setAttr3(abc);
    setAttr4(xyz);
    super.doDML();
    getParentEO() is the association accessor .
    After the addition of this code, all the method validators of the parent are getting fired more than once. The validateEntity of the parentEO is getting called more than once if I set some attribute of the childEO in childEO's doDML . Is this the expected behaviour?
    Thanks.

    Even on adding the setter in prepareForDML (either in parent or child) , the validateEntity is getting called multiple times. In fact ,validateEntity is getting called once before prepareForDML and again after. One of my method validators fail on the subsequent call giving an error ..Please help.

  • CommandLink Disabled called multiple times

    Hello,
    I'm developing a brief method to enable/disable af:commandLink on certain condition.
    The layout is simple: a table to the left and a panelTabbed to the right. PanelTabbed has a partialTrigger to the table.
    In a visible tab there is a commandLink with Disabled attribute bound to a backingBean method.
    In this method I placed a System.out.println and I can see that this method is called multiple times.
    On pagestart the method is called 2 times.
    On table current row change the method is called 3 times.
    On tab change out of first tab 1 time.
    On tab change to first tab 2 times.
    I wen through all the way from commandLink to top component and there are no additional partialTriggers.
    Could someone explain this to me, please?
    Thanks.
    ADF 11.1.1.4

    Ilya,
    Have you tried using the ADF logger (see [url http://blogs.oracle.com/groundside/entry/adventures_in_logging_index]this blog for lots of details, especially part 5)? Replace your System.out.println calls with calls to the logger, crank up the logging level and use the log analyser to see by ADF/JSF phase when things are called.
    John

  • On Execute operation, the bean getter is being called multiple times

    Hi,
    I have a JCR data control, i am trying to write a method that returns predicate, but this method is being called multiple times, when executing the advanced search operation.
      public List<Predicate> getPredicates() {
      ArrayList<Predicate> predicates = new ArrayList<Predicate>();
       // predicates.add(new Predicate("jcr:content/idc:metadata/idc:xScope",Operator.EQUALS,"GLOBAL"));
      DCBindingContainer bc=(DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
      JUCtrlListBinding attrBinding=(JUCtrlListBinding)  bc.findCtrlBinding("StateId");
      Object stateId= attrBinding.getSelectedValue();
      if(stateId instanceof Row){
      predicates.add(new Predicate("jcr:content/idc:metadata/idc:xState"
      , Operator.EQUALS
      ,((Row)stateId).getAttribute("StateId").toString()));
      attrBinding=(JUCtrlListBinding)  bc.findCtrlBinding("DistrictId");
      Object districtId=attrBinding.getSelectedValue();
      if(districtId instanceof Row){
          predicates.add(new Predicate("jcr:content/idc:metadata/idc:xDistrict",Operator.EQUALS,((Row)districtId).getAttribute("DistrictId").toString()));
        attrBinding=(JUCtrlListBinding)  bc.findCtrlBinding("Scope");
        Object scopeId=attrBinding.getSelectedValue();
        if(scopeId instanceof Row){
            predicates.add(new Predicate("jcr:content/idc:metadata/idc:xScope",Operator.EQUALS,((Row)scopeId).getAttribute("ScopeType")));
        AttributeBinding tempAttrBinding=(AttributeBinding)bc.findCtrlBinding("CreatedDate");
        Object createdDate=tempAttrBinding.getInputValue();
        if(createdDate!=null){
            predicates.add(new Predicate("jcr:content/jcr:created",Operator.EQUALS,createdDate.toString()));
        if (predicates.size()>0){
          return predicates;
      return Collections.emptyList();
      } The problem is while it's being called multiple times different list's are being returned which is causing the method not to work . The bean is in pageFlowScope .

    That is bc ADF life cicle... Is always executing 2 times...

  • Generic Data Source is calling multiple times in RSA3

    [color:red}<Moderator Message: This topic has alread been discussed a lot of times. Additionally there are weblogs related to it. Please search the forums and/or the blogs for this issue>
    Hi experts,
    I have the requirement to get data from Generic Data Sources with function Module,
    after finishing the FM I have checked in extact checker(RSA)
    in the internal table I_T_DATA is displays 281 records,
    but in RSA3 it shows 112560 records, I found that the FM is calling multiple time by executing one time in RSA3.
    1.what would be the problem
    2.where is the porblem is it in FM coding or any other places to check.
    <removed by moderator>
    Regards
    Vijay
    Edited by: Siegfried Szameitat on Feb 3, 2009 11:45 AM

    Hi Savita,
    I don't understand clearly from your reply regarding flow you transported and what all you transported.
    You need to first transport objects in R/3 and import them.
    Then transport Infoprovider, Datasource in BI assuming depenedent Infoare Infoobject, application component already transported.
    Then transport your Infosource, Update rule, Transfer rules, Infopackage.
    Hope you understood.
    Ravi

  • Php include file getting called multiple times

    I have created a form in file career.php. To carry out the validation user_registration.php is called at the beginning of the file.
    user_registration.php in turn calls library.php. Issue is that library.php is getting called multiple times.
    I have attached phperror.log which confirms the same.
    career.php
    <?php
    session_start();
    require_once('phpScript/user_registration.php');
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    user_registration.php
    <?php // This file is used for validating user form data. It calls process_upload.php to validate file uploaded by user
    $errors = array();  
    $messages = array();
    $testing = TRUE;
    error_log("Enter- user_registration.php. Testing mode $testing", 0);
    try {
              error_log("user_registration.php: Entered try catch block",0);
    require_once('library.php');
              error_log("Successfully called library.php",0);
              $public_key = '6LeDsNUSAAAAAIoaYuNhGm2zx_qgBECiybUWUkt6';
              $private_key = '6LeDsNUSAAAAACuvmJrec-_5seLdmhqUMngt8AiU';
              $recaptcha = new Zend_Service_ReCaptcha($public_key, $private_key);
              if(isset($_POST['submit'])) {          // Only execute if form is submitted by user
                error_log("user_registration.php. Submit button pressed by user", 0);
                require_once('Zend/Mail.php');
                $mail = new Zend_Mail('UTF-8');
                if (isset($_POST['name'])) {
                        $val = new Zend_Validate_Regex('/^\p{L}+[-\'\p{L} ]+$/u');
                        if (!$val->isValid($_POST['name'])) {
                          $errors['name'] = "Please enter your name, no numbers permitted";
    error_log("Exit- user_registration.php.", 0);
    library.php
    <?php
    error_log("Enter- library.php. Testing mode $testing", 0);
    if ($testing)  // If true then go to testing mode
              $library = '/Applications/MAMP/htdocs/mgtools-india/ZendFramework/library';
              set_include_path(get_include_path() . PATH_SEPARATOR . $library);
    require_once('Zend/Loader/Autoloader.php');
    try {
    Zend_Loader_Autoloader::getInstance();
    error_log("Exit- library.php. Testing mode $testing", 0);
    phperror.log
    Marker - 12-Oct-2012 10:27:26 AM
    [12-Oct-2012 04:57:33 UTC] Enter- user_registration.php. Testing mode 1
    [12-Oct-2012 04:57:33 UTC] user_registration.php: Entered try catch block
    [12-Oct-2012 04:57:33 UTC] Enter- library.php. Testing mode 1
    [12-Oct-2012 04:57:33 UTC] Exit- library.php. Testing mode 1
    [12-Oct-2012 04:57:33 UTC] Successfully called library.php
    [12-Oct-2012 04:57:36 UTC] Enter- user_registration.php. Testing mode 1
    [12-Oct-2012 04:57:36 UTC] Entered try catch block
    [12-Oct-2012 04:57:36 UTC] Enter- library.php. Testing mode 1
    [12-Oct-2012 04:57:36 UTC] Exit- library.php. Testing mode 1
    [12-Oct-2012 04:57:36 UTC] Successfully called library.php
    [12-Oct-2012 04:58:38 UTC] Enter- user_registration.php. Testing mode 1
    [12-Oct-2012 04:58:38 UTC] Entered try catch block
    [12-Oct-2012 04:58:38 UTC] Enter- library.php. Testing mode 1
    [12-Oct-2012 04:58:38 UTC] Exit- library.php. Testing mode 1
    [12-Oct-2012 04:58:38 UTC] Successfully called library.php
    [12-Oct-2012 04:58:38 UTC] user_registration.php. Submit button pressed by user
    [12-Oct-2012 04:58:39 UTC] user_registration.php, Processing enquiry form
    [12-Oct-2012 04:58:39 UTC] Enter- process_upload.php. Testing mode 1
    [12-Oct-2012 04:59:01 UTC] Exit- user_registration.php.
    I am not able to understand why user_registration.php and library.php are executing again and again.
    I ran this test on local testing server MAMP.
    The results are the same on remote server also.
    Please guide.

    I'm not sure what's happening there. The important question is whether the code is executed successfully.
    Since you're using the Zend Framework, it might be better to ask in a dedicated ZF forum.

Maybe you are looking for