HTML:
<form method="post" action="<?php echo site_url("contact")?>">
Full Name :
<input type="text" name="contact_name" class="form-control archo-square-input" required>
<br>Email :
<input type="text" name="contact_mail" class="form-control archo-square-input" required/>
<br>Message :
<textarea class="form-control archo-square-input" name="contact_message" required></textarea>
<br>
<input type="submit" class="btn btn-info archo-square-input" />
</form>
PHP:
Index
控制器的 Contact
功能
public function index()
{
if (isset($_POST['contact_name'])){
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$name=$_POST["contact_name"];
$mail=$_POST["contact_mail"];
$subject="Contact Messages";
$message = "
<html>
<head>
<title>Email From ".$name."</title>
</head>
<body>
<p>".$_POST["contact_message"]."</p>
<p>Mail :".$mail." </p>
</body>
</html>
";
if(mail($mail,$subject, $message,$headers)){
$data['message']='success';
}else{
$data['message']='error';
}
}else{
$data['message']='';
}
$data['all_albums']=$this->contact_model->get_all_albums();
$this->template->build('contact_view',$data);
}
我知道这是一个愚蠢的问题,而且我做了很多次这样的工作。但上帝知道为什么这不起作用。请帮忙。提前谢谢。
注意:有人告诉我,这可能是.htaccess的问题。是否有可能?
答案 0 :(得分:0)
在你的htaccess上试试这个
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^/(index\.php|assets/|humans\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
并更改您的config.php
$config['index_page'] = '';
答案 1 :(得分:0)
当您说不工作时,您在提交时遇到404错误或500错误? 我会检查您回显到表单的操作URL是否正确,然后尝试使用后期模拟器手动浏览到它(Firefox和Chrome的许多插件都可以这样做)。
如果您启用了CodeIgniter CSRF保护,则可能还需要在POST中包含该令牌。
如果您有这方面的工作网址,我很高兴看一看。
答案 2 :(得分:0)
使用CodeIgniter获取$ _POST的正确语法。
$post = $this->input->post();
$name = $post['name'];
答案 3 :(得分:0)
当我使用实时服务器时,.htaccess
就像那样
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.rectangle\.com.bd$ [NC]
RewriteRule ^(.*)$ http://rectangle.com.bd/$1 [L,R=301]
我的site_url()
就像那个www.rectangle.com.bd
,因为在我的配置文件中我有
$config['base_url'] = 'http://www.rectangle.com.bd/';
因此,每次我提交表单时,都会按照www.rectangle.com.bd
文件规则写入rectangle.com.bd
和重定向到.htaccess
。因此,在重定向的页面上,我没有获得$_POST
值。因此,解决方案是将.htaccess
文件设为:
RewriteCond %{HTTP_HOST} ^rectangle\.com.bd$ [NC]
RewriteRule ^(.*)$ http://www.rectangle.com.bd/$1 [L,R=301]
希望它会帮助接下来会遇到这类问题的人。