2011-09-16 10 views
5

में पैरामीटर्स का उपयोग करते समय दो बार लोड हो रहा है मुझे एक समस्या है जहां मेरे कोडइग्निटर नियंत्रकों को दो बार बुलाया जा रहा है। ऐसा लगता है जब मैं यूरी (/ न्यूज़लेटर/पुष्टिकरण/ए 1 9 38cas893vf9384f0384f0943) में पैरामीटर का उपयोग कर रहा हूं। अगर मैं अपने फ़ंक्शन से पैरामीटर को हटा देता हूं तो यह केवल नियंत्रक को एक बार लोड करता है। मैंने यह भी देखा कि यूआरएल में पैरामीटर के साथ, यदि मैं पृष्ठ को रीफ्रेश करता हूं तो यह केवल एक बार लोड होता है। तो ऐसा लगता है कि यह केवल दो बार लोड हो रहा है जब एक नया पृष्ठ कहा जाता है।कोडइग्निटर नियंत्रक यूआरएल

उदाहरण के लिए पहली बार/न्यूजलेटर/पुष्टिकरण/ए 123 पर नेविगेट करने से परिणामस्वरूप यह दो बार लोड हो जाएगा। लेकिन अगर आप रीफ्रेश/न्यूज़लेटर/पुष्टिकरण/ए 123 रीफ्रेश करना चाहते हैं तो यह केवल एक बार लोड होगा। मैंने दृश्य के साथ किसी मुद्दे को समाप्त करने के लिए मेरे विचार पर कॉल को पूरा कर लिया है।

क्या यह कैश समस्या की तरह लगता है, या मेरी .htaccess फ़ाइल में कुछ है? किसी भी सुझाव के लिए धन्यवाद।

प्रासंगिक नियंत्रक:

<?php 
error_reporting(-1); 
    ini_set('display_errors',1); 
class Test extends CI_Controller { 

    function __construct() { 
    parent::__construct(); 
     log_message('debug', 'MyController initialised'); 
    } 

    function confirm($code) 
    { 
     $this->load->helper(array('form')); 

     //$code = "6e930fe882c3b15712158812769dbcb636f96b8c"; 
     $result = $this->db->get_where('newsletter_members', array('nm_confirmation_code' => $code, 'nm_subscribed' => 0)); 

     if ($result->num_rows == 0) 
     { 
      $newsletter_message['newsletter_message'] = "Confirmation code is invalid or has already been confirmed."; 
      //$this->load->view('index_test', $newsletter_message); 
     } else { 
      $newsletter_message['newsletter_message'] = "Thank you for confirming your intent to subscribe to our newsletter!"; 
      $data = array(
        'nm_subscribed' => 1, 
        ); 
      $this->db->where('nm_confirmation_code', $code); 
      $this->db->update('newsletter_members', $data); 
      //$this->load->view('index_test', $newsletter_message); 
     } 

    } 

} 

?> 

.htaccess फाइल:

DEBUG - 2011-09-16 09:59:34 --> Config Class Initialized 
DEBUG - 2011-09-16 09:59:34 --> Hooks Class Initialized 
DEBUG - 2011-09-16 09:59:34 --> Utf8 Class Initialized 
DEBUG - 2011-09-16 09:59:34 --> UTF-8 Support Enabled 
DEBUG - 2011-09-16 09:59:34 --> URI Class Initialized 
DEBUG - 2011-09-16 09:59:34 --> Router Class Initialized 
DEBUG - 2011-09-16 09:59:34 --> Output Class Initialized 
DEBUG - 2011-09-16 09:59:34 --> Input Class Initialized 
DEBUG - 2011-09-16 09:59:34 --> Global POST and COOKIE data sanitized 
DEBUG - 2011-09-16 09:59:34 --> Language Class Initialized 
DEBUG - 2011-09-16 09:59:34 --> Loader Class Initialized 
DEBUG - 2011-09-16 09:59:34 --> Database Driver Class Initialized 
DEBUG - 2011-09-16 09:59:34 --> Controller Class Initialized 
DEBUG - 2011-09-16 09:59:34 --> MyController initialised 
DEBUG - 2011-09-16 09:59:34 --> Helper loaded: form_helper 
DEBUG - 2011-09-16 09:59:34 --> Final output sent to browser 
DEBUG - 2011-09-16 09:59:34 --> Total execution time: 0.0223 
DEBUG - 2011-09-16 09:59:34 --> Config Class Initialized 
DEBUG - 2011-09-16 09:59:34 --> Hooks Class Initialized 
DEBUG - 2011-09-16 09:59:34 --> Utf8 Class Initialized 
DEBUG - 2011-09-16 09:59:34 --> UTF-8 Support Enabled 
DEBUG - 2011-09-16 09:59:34 --> URI Class Initialized 
DEBUG - 2011-09-16 09:59:34 --> Router Class Initialized 
DEBUG - 2011-09-16 09:59:34 --> Output Class Initialized 
DEBUG - 2011-09-16 09:59:34 --> Input Class Initialized 
DEBUG - 2011-09-16 09:59:34 --> Global POST and COOKIE data sanitized 
DEBUG - 2011-09-16 09:59:34 --> Language Class Initialized 
DEBUG - 2011-09-16 09:59:34 --> Loader Class Initialized 
DEBUG - 2011-09-16 09:59:34 --> Database Driver Class Initialized 
DEBUG - 2011-09-16 09:59:34 --> Controller Class Initialized 
DEBUG - 2011-09-16 09:59:34 --> MyController initialised 
DEBUG - 2011-09-16 09:59:34 --> Helper loaded: form_helper 
DEBUG - 2011-09-16 09:59:34 --> Final output sent to browser 
DEBUG - 2011-09-16 09:59:34 --> Total execution time: 0.0213 
+0

आप कहीं कहीं संदेश लॉग इन करते हैं। नियंत्रक अभिभावक वर्ग अपने __construct फ़ंक्शन में समान होता है, इसलिए आपके त्रुटि लॉग में आपको दो त्रुटि संदेश मिलते हैं जो कहते हैं कि "मेरा नियंत्रक प्रारंभ हुआ" और दो त्रुटि संदेश जो "नियंत्रक कक्षा आरंभिक" कहते हैं - हाँ? –

+0

हां, कैल, लेकिन वे एकमात्र चीजें नहीं हैं जिन्हें दो बार लोड किया जा रहा है, सबकुछ दो बार लोड किया जा रहा है और ब्राउज़र पर भेजा जा रहा है। मैंने अपनी मूल पोस्ट को अपरिवर्तित किया है, जब मेरा लॉग दो बार लोड होता है। – aberrant

उत्तर

1

मैं:

RewriteEngine On 
RewriteCond $1 !^([^\..]+\.php|robot\.txt|public|images|css|js|paul|event_docs|blog|citeforme|robots\.txt) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

# BEGIN WordPress 
#<IfModule mod_rewrite.c> 
#RewriteEngine On 
#RewriteBase/
#RewriteCond %{REQUEST_FILENAME} !-f 
#RewriteCond %{REQUEST_FILENAME} !-d 
#RewriteRule . /index.php [L] 
#</IfModule> 
#RewriteEngine Off 
# END WordPress 

यहाँ लॉग फ़ाइल की तरह लग रहा है, तो आप सब कुछ दो बार पुनः लोड किया जा रहा है देख सकते हैं पता नहीं है कि यह आपकी। htaccess, फ़ाइल है, लेकिन मैंने इसे थोड़ी देर के लिए उपयोग किया है और कभी भी कोई समस्या नहीं थी:

RewriteEngine On 
RewriteBase/

# Allow any files or directories that exist to be displayed directly 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?/$1 [L,QSA] 

मैं था कहते हैं कि सिर्फ पहली फ़ाइल बदल सकते हैं और देखते हैं कि क्या इससे समस्या हल करती है, यह भी सुनिश्चित करें कि आपके config.php फाइल में index_page चर इस तरह खाली है बनाना:

$config['index_page'] = ''; 

एक और बात, क्या आप अपने मार्ग.एफपी फ़ाइल में किसी भी मार्ग को परिभाषित कर रहे हैं? हो सकता है कि वे कुछ अजीब पाश पैदा कर रहे हैं जो पृष्ठ को दो बार लोड कर रहा है।

8

आम तौर पर यह "गंदे" टेम्पलेट्स के कारण होता है जो फर्जी सीएसएस, जावास्क्रिप्ट और छवि कॉल बनाते हैं।

अपने टेम्पलेट्स में सभी संपत्ति कॉलों का ध्यानपूर्वक निरीक्षण करके इसे रोकने से रोकने के लिए सबसे अच्छा है, लेकिन यदि कोई और टेम्पलेट कर रहा है जो कभी-कभी कोई विकल्प नहीं होता है।

यहाँ है कि मैं क्या उस स्थिति में किया गया है:

जांचना कि HTTP_REFERRER REQUEST_IRI के समान है। यदि ऐसा है तो आप जानते हैं कि यह उसी पृष्ठ से कुछ कहा जा रहा है जिसे वर्तमान में लोड किया गया है, इस प्रकार आपके पास एक लापता संपत्ति के लिए एक फर्जी कॉल है।

यदि नियंत्रक (यह कोड index.php प्रविष्टि बिंदु फ़ाइल में भी काम करता है) तो मैं शीर्ष पर निम्न कोड डालता हूं।

$self_referrer = $_SERVER['REQUEST_SCHEME']."://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; 

    if(isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] == $self_referrer){ 
     return; // no point in going further since this is a bogus call... 
    } 
0

पीटर जवाब आप बंद हो जाता है, लेकिन अगर आप कभी भी एक ही URL में URL रीडायरेक्ट यह पड़ाव और एक खाली पृष्ठ का परिणाम देगा। ब्राउज़र में बैक बटन का उपयोग करने में भी एक समस्या है। क्या हम इसे बेहतर तरीके से संभाल सकते हैं?

संबंधित मुद्दे