我尝试通过memcache检查ip。我把ip带到了memcache然后 如果ip在memcache中,我给出错误,否则允许用户发送电子邮件。
在控制器方面,
public function sendFeedbackAjax() {
$feedback = $this->params('feedback_textarea');
$ip = $_SERVER['REMOTE_ADDR'];
$to = 'mert@gmail.com';
$subject = 'Sinemalar Görüş Bildirimi';
$message = 'URL: ' . $this->params('url') . '<br/><br/>E-posta adresi: ' . $this->params('feedback_email') . '<br/><br/>' . $feedback;
$headers = 'MIME-Version: 1.0' . "\r\n" .
'Content-Type: text/html; charset="UTF-8"' . "\r\n" .
'From: noreply@sinemalar.com' . "\r\n" .
'Reply-To: noreply@sinemalar.com' . "\r\n";
$uid = $_SERVER['REMOTE_ADDR'] . 32;
$user = NCore::cache()->remoteCache->get($uid);
if ($user != null) {
echo "ERROR";
} else {
NCore::cache()->remoteCache->set($uid, $ip, 60 * 60 * 24);
mail($to, $subject, $message, $headers);
echo "GET";
}
}
这是我的ajax文件
function sendFeedback2()
{
if ($('#feedback_textarea').val() == '')
{
$('#feedback_submit_warning').show();
return false;
}
else
{
var values = $('.feedback-form').serialize();
var url = window.location;
$('#feedback_submit_warning').hide();
$('#feedback-send-bt').hide();
$('#feedback_overlay').css({'height':'65px'});
$('#feedback_body').css({'background':'transparent', 'padding-top':'0px', 'text-align':'center', 'line-height':'65px', 'font-size':'24px'});
$('#feedback_body').html('<p>Lütfen bekleyin...</p>');
$.ajax(
{
type: "POST",
url: '/json/common/sendFeedbackAjax',
data: "action=send&url="+url+"&"+values,
success: function(response)
{
if(response == "ERROR"){
$('#feedback_body').html('<p>Günlük sadece bir kez görüş bildirebilirsiniz</p>');
}else{
$('#feedback_body').html('<p>Görüşleriniz alınmıştır, teşekkür ederiz.</p>');
}
console.log(response);
setTimeout(function () {
hideFeedback();
},2000);
}
});
}
}
但即使回复是“GET”
,它总是会发出其他声明是什么原因?