2013-10-11 110 views
0

我被卡住了,似乎无法解决我的问题。我正在尝试首次使用Codeigniter编写基本的“联系我们表单”。我对我的看法形式看起来像这样..Codeigniter“没有指定输入文件。”提交表单时出错?

<div style='float: left; padding-right: 55px; padding-left: 35px;'> 
    <?php 
     $this->load->helper('form'); 
     echo form_open('pages/emailsender'); ?> 

     Contact Us:<br /> 
     <?php 
     echo form_input('name', 'Enter Your Name'); 
     echo form_input('email', 'Enter Your Email'); 
     echo "<br />"; 
     echo form_textarea('message', 'Enter your message here, thanks for taking the time to contact us!'); 
     echo "<br />"; 
     echo form_submit('submit', 'Send Message!'); 
     echo form_reset('reset', 'Reset Form'); 
     echo form_close(); 
     ?> 
</div> 

和我的控制器pages.php看起来像这样..

<?php 

class Pages extends CI_Controller { 

    public function index(){ 

     $this->load->view('templates/header'); 
     $this->load->view('home'); 
     $this->load->view('templates/footer'); 
    } 

    public function home(){ 

     $this->load->view('templates/header'); 
     $this->load->view('home'); 
     $this->load->view('templates/footer'); 
    } 

    public function about(){ 

     $this->load->view('templates/header'); 
     $this->load->view('about'); 
     $this->load->view('templates/footer'); 
    } 

    public function services(){ 

     $this->load->view('templates/header'); 
     $this->load->view('services'); 
     $this->load->view('templates/footer'); 
    } 

    public function reviews(){ 

     $this->load->view('templates/header'); 
     $this->load->view('reviews'); 
     $this->load->view('templates/footer'); 
    } 

    public function specials(){ 

     $this->load->view('templates/header'); 
     $this->load->view('specials'); 
     $this->load->view('templates/footer'); 
    } 

    public function contact(){ 

     $this->load->view('templates/header'); 
     $this->load->view('contact'); 
     $this->load->view('templates/footer'); 
    } 

    public function emailsender(){ 
     $this->load->view('templates/header'); 
     $this->load->view('contact'); 
     $this->load->view('templates/footer'); 
    } 

} 

我已在“emailsender”功能只是重定向我回到同一页作为测试,但它甚至不会那样做?!我得到一个“没有指定输入文件”。每次都出错。我在stackoverflow Codeigniter no input file specified error上阅读这篇文章,但它似乎并没有解决我的问题。我的配置文件看起来像这样..

/* 
|-------------------------------------------------------------------------- 
| Base Site URL 
|-------------------------------------------------------------------------- 
| 
| URL to your CodeIgniter root. Typically this will be your base URL, 
| WITH a trailing slash: 
| 
| http://example.com/ 
| 
| If this is not set then CodeIgniter will guess the protocol, domain and 
| path to your installation. 
| 
*/ 
$config['base_url'] = 'http://mywebsitename.com'; 
$config['index_page'] = ""; 
$config['uri_protocol'] = "AUTO"; 

任何想法为什么我得到没有输入文件指定的错误?

回答

0

您需要使用的直接联系,而不是形式的开放标签的手短的加入这一行RewriteBase /。就像这样:

echo form_open(‘http://example.com/welcome/emailsender’); 

,而不是这样的:

echo form_open(‘welcome/emailsender’); 
0

变化:

echo form_open('pages/emailsender'); ?> 

要:

echo form_open_multipart('pages/emailsender'); ?> 

form_open_multipart添加enctype="multipart/form-data"form标签。

+0

操作不是试图上传表单中的文件,所以这个解决方案的确如此不是针对问题。 –

+0

感谢您提交答案,但这并未解决问题。 – ErinSKabbash

7

更改.htaccess看起来像这样

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?/$1 [L,QSA] 

通知的?马克的最后一行。以前这条线是这样的RewriteRule ^(.*)$ index.php/$1 [L]

同时一定要在你的.htaccess

+0

我照你说的做了,但我仍然有同样的错误。我的.htaccess文件是现在!'code'RewriteEngine在 RewriteBase/ 的RewriteCond%{} REQUEST_FILENAME -f 的RewriteCond%{} REQUEST_FILENAME -d 重写规则^ $的index.php/$ 1 [L,!(*)? QSA]'代码'我在GoDaddy服务器上,我不知道这与它有什么关系。但我必须对.htaccess文件进行一些更改才能让网站甚至可以在GoDaddy上首先加载。我用你刚才所说的替换了这些,并且该网站仍在加载,但仍然在联系表单上发生错误。 – ErinSKabbash

+0

当我点击提交按钮时,它会将我发送到/index.php/pages/emailsender并显示“没有指定输入文件”。错误。 – ErinSKabbash

1

改变你的.htaccess这样

<IfModule mod_rewrite.c> 

Options +FollowSymLinks 
RewriteEngine on 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?/$1 [L,QSA] 

</IfModule> 

希望它会为你工作? 感谢