php 消息:未定义的属性:CI_Loader::$session 使用 codeigniter

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/22327746/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-25 04:50:27  来源:igfitidea点击:

Message: Undefined property: CI_Loader::$session using codeigniter

phpcodeignitersession

提问by bobcatnyxz

set_flashdata to my contact us page when users successfully send their message, i just added the flashdata that successfully send. When i tried to upload the files to the live server and tested it ive got this error Message: Undefined property: CI_Loader::$session it says that Fatal error: Call to a member function flashdata() on a non-object in /home/content/87/10599987/html/application/views/content/contact_us_content.php on line 18 can someone figured me out how to set this?? Here's my controller below

当用户成功发送消息时,将 set_flashdata 设置到我的联系我们页面,我只是添加了成功发送的 flashdata。当我尝试将文件上传到实时服务器并对其进行测试时,我收到此错误消息:未定义的属性:CI_Loader::$session 它说致命错误:在 /home 中的非对象上调用成员函数 flashdata() /content/87/10599987/html/application/views/content/contact_us_content.php 第 18 行有人能想出我如何设置吗?下面是我的控制器

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
session_start();
class Contact_us extends CI_Controller {

    public function __construct(){
      parent::__construct();
      $this->load->library('javascript');
      $this->load->library('form_validation');
      $this->load->library('email');
    }

    public function index(){
      $this->data['title'] = 'Contact Us | Spring Rain Global Consultancy Inc';
      $this->data['active_menu'] = 'contacts';

      $this->load->view('pages/header', $this->data);
      $this->load->view('templates/contacts', $this->data);
      $this->load->view('pages/footer');
      $this->load->view('pages/footer_below');
    }

    public function send(){
      $this->form_validation->set_rules('name', 'Name', 'required');
      $this->form_validation->set_rules('email', 'Email', 'required|valid_email');
      $this->form_validation->set_rules('message', 'Message', 'required');

      if($this->form_validation->run() == FALSE){
        $this->data['title'] = 'Contact Us | Spring Rain Global Consultancy Inc';
        $this->data['active_menu'] = 'contacts';

        $this->load->view('pages/header', $this->data);
        $this->load->view('templates/contacts');
        $this->load->view('pages/footer');
        $this->load->view('pages/footer_below');

      }else{
        $name = $this->input->post('name');
        $email = $this->input->post('email');
        $msg = $this->input->post('message');

        $this->email->from('[email protected]', 'SPRING RAIN GLOBAL CONSULTANCY INC');
        $this->email->to($email);
        $this->email->subject('CONTACT US! SPRING RAIN GLOBAL CONSULTANCY INC WEBSITE');
        $this->email->message("
              <!DOCTYPE html>
                <html>
                <head>
                <title>Spring Rain Global Consultancy Inc</title>
                </head>
                <body>
                <div style='width:500px; >
                  <div style='width:500px;'>
                    <a href='http://www.springrainglobal.com' target='_blank' rel='nofollow' >
                      <img alt='springrain logo' src='http://www.springrainglobal.com/images/461962_333397740048531_1893235327_o(1).jpg' width='180' height='122' />
                    </a>
                  </div>
                  <div style='margin-left:40px; margin-top:80px;'>
                    <h1>
                        Thank you for contacting us!... <br />
                        We will contact you within 48 hours.
                    </h1>
                    <br />
                    <br />
                    <br />
                    <br />
                    <br />
                    <br />
                    <p>
                      SpringRain Global Consultancy Inc Team

                    </p>
                  </div>
                </div>
                </body>
                </html>
                ");
        $this->email->send();

        $this->email->from('[email protected]', $email);
        $list = array(
                  '[email protected]', '[email protected]'
                  );
        $this->email->to($list);
        $this->email->subject('CONTACT US! SPRING RAIN GLOBAL CONSULTANCY INC WEBSITE');
        $this->email->message("
              <!DOCTYPE html>
              <html>
              <head>
              <title>Spring Rain Global Consultancy Inc</title>
              </head>
              <body>
              <div style='width:500px; >
                <div style='width:500px;'>
                  <a href='http://www.springrainglobal.com' target='_blank' rel='nofollow' >
                    <img alt='springrain logo' src='http://www.springrainglobal.com/images/461962_333397740048531_1893235327_o(1).jpg' width='180' height='122' />
                  </a>

                </div>
                <div style='margin-left:40px; margin-top:80px;'>
                <p style='font-family:arial; font-size:13px;'><strong>Name :</strong>".$name." </p> 
                <p style='font-family:arial; font-size:13px;'><strong>Email :</strong>".$email." </p> 
                <p style='font-family:arial; font-size:13px;'><strong>Comments :</strong>".$msg." </p> 
                </div>
              </div>
              </body>
              </html>
            ");

       if($this->email->send()){
          $this->data['title'] = 'Contact Us | Spring Rain Global Consultancy Inc';
          $this->data['active_menu'] = 'contacts';

          $this->load->view('pages/header', $this->data);
          $this->session->set_flashdata('success', 1);
          $this->load->view('templates/contacts');
          $this->load->view('pages/footer');
          $this->load->view('pages/footer_below');
          #echo "Thank you for contacting us! You will receive a reply to your email shortly";
          #echo "<br />";
          #$this->sendNow();

       }else{
          //echo "failed";
          $this->data['title'] = 'Contact Us | Spring Rain Global Consultancy Inc';
          $this->data['active_menu'] = 'contacts';

          $this->load->view('pages/header', $this->data);
          $this->load->view('templates/contacts', $this->data);
          $this->load->view('pages/footer');
          $this->load->view('pages/footer_below');
       }

      }
    }

    private function sendNow(){
      echo "<a href=''>Contact Us</a>";
    }

}

i added the session_start() above the class contact_us and the $this->session->set_flashdata on the if($this->email->send) Here's my view

我在类 contact_us 上方添加了 session_start() 和 if($this->email->send) 上的 $this->session->set_flashdata 这是我的看法

    <article id="content">
            <section class="col1">
                <h2 class="pad_bot1">Feel Free To Contact Us!</h2>
                <p class="pad_top1 pad_bot1">Thank you for taking the time to click through the SpringRain Global Consultancy Inc Site. If you have additional questions that needs to be
answered, please feel free to fill out our contact form on the right side and we will get back to you as soon as we can. Please be sure to be specific and detailed
in your message. Or send us direct email at : <span style="color:green;">[email protected]/ [email protected]</span></p>
                <p class="pad_bot1"></p>

            </section>
            <section class="col2">
                <h2 class="pad_bot1">Send us a message!</h2>

        <?php if(!$this->session->flashdata('success')): ?>
          <form id="ContactForm" action="<?php echo base_url().'contact-us/send.html'?>" method="post">
            <div>
              <?php echo validation_errors('<div class="error">', '</div>')?>

              <div  class="wrapper margint20">
                <span>Your Name:</span>
                <div class="bg"><input type="text" id="name" name="name" class="input" autocomplete="off" value="<?php echo set_value('name');?>" placeholder="Your Name: " /></div>
              </div>
              <div  class="wrapper">
                <span>Your E-mail:</span>
                <div class="bg"><input type="text" id="email" name="email" class="input" autocomplete="off"  value="<?php echo set_value('email');?>" placeholder="[email protected]" /></div>
              </div>
              <div  class="textarea_box">
                <span>Your Message:</span>
                  <div class="bg"><textarea id="message" name="message" cols="1" rows="1" placeholder="Comments Here. . ." ><?php echo set_value('message');?></textarea></div>
              </div>
              <div style="margin-left:200px; margin-top:20px;">
                <input type="submit" class="button" name="submit" value="Send" />
                <input type="reset" class="button" value="Clear"  />
              </div>
            </div>
          </form>
        <?php else: ?>
          <div class="send_msg">
            <p>Thank you for contacting us! You will receive a reply to your email shortly</p>
          </div>
          <form id="ContactForm" action="<?php echo base_url().'contact-us/send.html'?>" method="post">
            <div>
              <?php echo validation_errors('<div class="error">', '</div>')?>

              <div  class="wrapper margint20">
                <span>Your Name:</span>
                <div class="bg"><input type="text" id="name" name="name" class="input" autocomplete="off" value="<?php echo set_value('name');?>" placeholder="Your Name: " /></div>
              </div>
              <div  class="wrapper">
                <span>Your E-mail:</span>
                <div class="bg"><input type="text" id="email" name="email" class="input" autocomplete="off"  value="<?php echo set_value('email');?>" placeholder="[email protected]" /></div>
              </div>
              <div  class="textarea_box">
                <span>Your Message:</span>
                  <div class="bg"><textarea id="message" name="message" cols="1" rows="1" placeholder="Comments Here. . ." ><?php echo set_value('message');?></textarea></div>
              </div>
              <div style="margin-left:200px; margin-top:20px;">
                <input type="submit" class="button" name="submit" value="Send" />
                <input type="reset" class="button" value="Clear"  />
              </div>
            </div>
          </form>
        <?php endif; ?>
            </section>
        </article>

the session on live server has error, can someone help me on this? any help is much greatly appreciated.

实时服务器上的会话有错误,有人可以帮助我吗?非常感谢任何帮助。

回答by Mazeltov

Try this:

尝试这个:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
//session_start();
class Contact_us extends CI_Controller {

public function __construct(){
  parent::__construct();
  $this->load->library('javascript');
  $this->load->library('form_validation');
  $this->load->library('email');
  $this->load->library('session');
}