Php 如何限制每条邮件的字符数并进行反垃圾邮件?
我有这个showbox脚本。 我想知道如何将每条消息的字符限制为70个字符。 我也想知道如何做到这一点,你必须等待3秒之间的每一条消息,你张贴Php 如何限制每条邮件的字符数并进行反垃圾邮件?,php,jquery,ajax,Php,Jquery,Ajax,我有这个showbox脚本。 我想知道如何将每条消息的字符限制为70个字符。 我也想知道如何做到这一点,你必须等待3秒之间的每一条消息,你张贴 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>jQuery</title> <style type="text/css"> #daddy-shoutbox { paddi
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>jQuery</title>
<style type="text/css">
#daddy-shoutbox {
padding: 5px;
background: #FFF;
color: #000;
width: 250px;
font-family: Arial,Helvetica,sans-serif;
font-size: 11px;
}
.shoutbox-list {
border-bottom: 1px solid #000;
padding: 5px;
display: none;
}
#daddy-shoutbox-list {
text-align: left;
margin: 0px auto;
}
#daddy-shoutbox-form {
text-align: left;
}
.shoutbox-list-time {
color: #000;
}
.shoutbox-list-nick {
margin-left: 5px;
font-weight: bold;
}
.shoutbox-list-message {
margin-left: 5px;
}
</style>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.form.js"></script>
</head>
<body>
<div id="daddy-shoutbox">
<table cellpadding="3" cellspacing="0">
<form id="daddy-shoutbox-form" action="demos/jquery-shoutbox/daddy-shoutbox.php?action=add" method="post">
<tr>
<td>
Name:
<input type="text" name="nickname" />
</td>
</tr>
<tr>
<td>
Message:
<input type="text" name="message" />
<br /> <br />
<input type="submit" value="Submit" />
<span id="daddy-shoutbox-response"></span>
</form>
</td>
</tr>
</table>
<hr size="1" noshade />
<div id="daddy-shoutbox-list"></div>
<br />
</div>
<script type="text/javascript">
var count = 0;
var files = 'demos/jquery-shoutbox/';
var lastTime = 0;
function prepare(response) {
var d = new Date();
count++;
d.setTime(response.time*1000);
var mytime = d.getHours()+':'+d.getMinutes()+':'+d.getSeconds();
var string = '<div class="shoutbox-list" id="list-'+count+'">'
+ '<span class="shoutbox-list-time">'+mytime+'</span>'
+ '<span class="shoutbox-list-nick">'+response.nickname+':</span>'
+ '<span class="shoutbox-list-message">'+response.message+'</span>'
+'</div>';
if (count > 11) { x = (count - 11); $('#list-' + x).fadeOut('slow'); x = document.getElementById('list-' + x); x.style.display = "none"; }
return string;
}
function success(response, status) {
if(status == 'success') {
lastTime = response.time;
$('#daddy-shoutbox-response').html('<img src="'+files+'images/accept.png" />');
$('#daddy-shoutbox-list').prepend(prepare(response));
$('input[@name=message]').attr('value', '').focus();
$('#list-'+count).fadeIn('slow');
timeoutID = setTimeout(refresh, 3000);
}
}
function validate(formData, jqForm, options) {
for (var i=0; i < formData.length; i++) {
if (!formData[i].value) {
alert('Please fill in all the fields');
$('input[@name='+formData[i].name+']').css('background', 'red');
return false;
}
}
$('#daddy-shoutbox-response').html('<img src="'+files+'images/loader.gif" />');
clearTimeout(timeoutID);
}
function refresh() {
$.getJSON(files+"daddy-shoutbox.php?action=view&time="+lastTime, function(json) {
if(json.length) {
for(i=0; i < json.length; i++) {
$('#daddy-shoutbox-list').prepend(prepare(json[i]));
$('#list-' + count).fadeIn('slow');
}
var j = i-1;
lastTime = json[j].time;
}
//alert(lastTime);
});
timeoutID = setTimeout(refresh, 3000);
}
// wait for the DOM to be loaded
$(document).ready(function() {
var options = {
dataType: 'json',
beforeSubmit: validate,
success: success
};
$('#daddy-shoutbox-form').ajaxForm(options);
timeoutID = setTimeout(refresh, 100);
});
</script>
</body>
</html>
这是我的剧本
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>jQuery</title>
<style type="text/css">
#daddy-shoutbox {
padding: 5px;
background: #FFF;
color: #000;
width: 250px;
font-family: Arial,Helvetica,sans-serif;
font-size: 11px;
}
.shoutbox-list {
border-bottom: 1px solid #000;
padding: 5px;
display: none;
}
#daddy-shoutbox-list {
text-align: left;
margin: 0px auto;
}
#daddy-shoutbox-form {
text-align: left;
}
.shoutbox-list-time {
color: #000;
}
.shoutbox-list-nick {
margin-left: 5px;
font-weight: bold;
}
.shoutbox-list-message {
margin-left: 5px;
}
</style>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.form.js"></script>
</head>
<body>
<div id="daddy-shoutbox">
<table cellpadding="3" cellspacing="0">
<form id="daddy-shoutbox-form" action="demos/jquery-shoutbox/daddy-shoutbox.php?action=add" method="post">
<tr>
<td>
Name:
<input type="text" name="nickname" />
</td>
</tr>
<tr>
<td>
Message:
<input type="text" name="message" />
<br /> <br />
<input type="submit" value="Submit" />
<span id="daddy-shoutbox-response"></span>
</form>
</td>
</tr>
</table>
<hr size="1" noshade />
<div id="daddy-shoutbox-list"></div>
<br />
</div>
<script type="text/javascript">
var count = 0;
var files = 'demos/jquery-shoutbox/';
var lastTime = 0;
function prepare(response) {
var d = new Date();
count++;
d.setTime(response.time*1000);
var mytime = d.getHours()+':'+d.getMinutes()+':'+d.getSeconds();
var string = '<div class="shoutbox-list" id="list-'+count+'">'
+ '<span class="shoutbox-list-time">'+mytime+'</span>'
+ '<span class="shoutbox-list-nick">'+response.nickname+':</span>'
+ '<span class="shoutbox-list-message">'+response.message+'</span>'
+'</div>';
if (count > 11) { x = (count - 11); $('#list-' + x).fadeOut('slow'); x = document.getElementById('list-' + x); x.style.display = "none"; }
return string;
}
function success(response, status) {
if(status == 'success') {
lastTime = response.time;
$('#daddy-shoutbox-response').html('<img src="'+files+'images/accept.png" />');
$('#daddy-shoutbox-list').prepend(prepare(response));
$('input[@name=message]').attr('value', '').focus();
$('#list-'+count).fadeIn('slow');
timeoutID = setTimeout(refresh, 3000);
}
}
function validate(formData, jqForm, options) {
for (var i=0; i < formData.length; i++) {
if (!formData[i].value) {
alert('Please fill in all the fields');
$('input[@name='+formData[i].name+']').css('background', 'red');
return false;
}
}
$('#daddy-shoutbox-response').html('<img src="'+files+'images/loader.gif" />');
clearTimeout(timeoutID);
}
function refresh() {
$.getJSON(files+"daddy-shoutbox.php?action=view&time="+lastTime, function(json) {
if(json.length) {
for(i=0; i < json.length; i++) {
$('#daddy-shoutbox-list').prepend(prepare(json[i]));
$('#list-' + count).fadeIn('slow');
}
var j = i-1;
lastTime = json[j].time;
}
//alert(lastTime);
});
timeoutID = setTimeout(refresh, 3000);
}
// wait for the DOM to be loaded
$(document).ready(function() {
var options = {
dataType: 'json',
beforeSubmit: validate,
success: success
};
$('#daddy-shoutbox-form').ajaxForm(options);
timeoutID = setTimeout(refresh, 100);
});
</script>
</body>
</html>
Index.html
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>jQuery</title>
<style type="text/css">
#daddy-shoutbox {
padding: 5px;
background: #FFF;
color: #000;
width: 250px;
font-family: Arial,Helvetica,sans-serif;
font-size: 11px;
}
.shoutbox-list {
border-bottom: 1px solid #000;
padding: 5px;
display: none;
}
#daddy-shoutbox-list {
text-align: left;
margin: 0px auto;
}
#daddy-shoutbox-form {
text-align: left;
}
.shoutbox-list-time {
color: #000;
}
.shoutbox-list-nick {
margin-left: 5px;
font-weight: bold;
}
.shoutbox-list-message {
margin-left: 5px;
}
</style>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.form.js"></script>
</head>
<body>
<div id="daddy-shoutbox">
<table cellpadding="3" cellspacing="0">
<form id="daddy-shoutbox-form" action="demos/jquery-shoutbox/daddy-shoutbox.php?action=add" method="post">
<tr>
<td>
Name:
<input type="text" name="nickname" />
</td>
</tr>
<tr>
<td>
Message:
<input type="text" name="message" />
<br /> <br />
<input type="submit" value="Submit" />
<span id="daddy-shoutbox-response"></span>
</form>
</td>
</tr>
</table>
<hr size="1" noshade />
<div id="daddy-shoutbox-list"></div>
<br />
</div>
<script type="text/javascript">
var count = 0;
var files = 'demos/jquery-shoutbox/';
var lastTime = 0;
function prepare(response) {
var d = new Date();
count++;
d.setTime(response.time*1000);
var mytime = d.getHours()+':'+d.getMinutes()+':'+d.getSeconds();
var string = '<div class="shoutbox-list" id="list-'+count+'">'
+ '<span class="shoutbox-list-time">'+mytime+'</span>'
+ '<span class="shoutbox-list-nick">'+response.nickname+':</span>'
+ '<span class="shoutbox-list-message">'+response.message+'</span>'
+'</div>';
if (count > 11) { x = (count - 11); $('#list-' + x).fadeOut('slow'); x = document.getElementById('list-' + x); x.style.display = "none"; }
return string;
}
function success(response, status) {
if(status == 'success') {
lastTime = response.time;
$('#daddy-shoutbox-response').html('<img src="'+files+'images/accept.png" />');
$('#daddy-shoutbox-list').prepend(prepare(response));
$('input[@name=message]').attr('value', '').focus();
$('#list-'+count).fadeIn('slow');
timeoutID = setTimeout(refresh, 3000);
}
}
function validate(formData, jqForm, options) {
for (var i=0; i < formData.length; i++) {
if (!formData[i].value) {
alert('Please fill in all the fields');
$('input[@name='+formData[i].name+']').css('background', 'red');
return false;
}
}
$('#daddy-shoutbox-response').html('<img src="'+files+'images/loader.gif" />');
clearTimeout(timeoutID);
}
function refresh() {
$.getJSON(files+"daddy-shoutbox.php?action=view&time="+lastTime, function(json) {
if(json.length) {
for(i=0; i < json.length; i++) {
$('#daddy-shoutbox-list').prepend(prepare(json[i]));
$('#list-' + count).fadeIn('slow');
}
var j = i-1;
lastTime = json[j].time;
}
//alert(lastTime);
});
timeoutID = setTimeout(refresh, 3000);
}
// wait for the DOM to be loaded
$(document).ready(function() {
var options = {
dataType: 'json',
beforeSubmit: validate,
success: success
};
$('#daddy-shoutbox-form').ajaxForm(options);
timeoutID = setTimeout(refresh, 100);
});
</script>
</body>
</html>
为了提高速度,您可以在客户端强制执行这些限制,但需要在服务器端应用这些限制。否则,有人可以下载您的表单,删除限制,并使用它而不受限制。您已经为我们提供了客户端代码,因此我们无法为您提供多少帮助
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>jQuery</title>
<style type="text/css">
#daddy-shoutbox {
padding: 5px;
background: #FFF;
color: #000;
width: 250px;
font-family: Arial,Helvetica,sans-serif;
font-size: 11px;
}
.shoutbox-list {
border-bottom: 1px solid #000;
padding: 5px;
display: none;
}
#daddy-shoutbox-list {
text-align: left;
margin: 0px auto;
}
#daddy-shoutbox-form {
text-align: left;
}
.shoutbox-list-time {
color: #000;
}
.shoutbox-list-nick {
margin-left: 5px;
font-weight: bold;
}
.shoutbox-list-message {
margin-left: 5px;
}
</style>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.form.js"></script>
</head>
<body>
<div id="daddy-shoutbox">
<table cellpadding="3" cellspacing="0">
<form id="daddy-shoutbox-form" action="demos/jquery-shoutbox/daddy-shoutbox.php?action=add" method="post">
<tr>
<td>
Name:
<input type="text" name="nickname" />
</td>
</tr>
<tr>
<td>
Message:
<input type="text" name="message" />
<br /> <br />
<input type="submit" value="Submit" />
<span id="daddy-shoutbox-response"></span>
</form>
</td>
</tr>
</table>
<hr size="1" noshade />
<div id="daddy-shoutbox-list"></div>
<br />
</div>
<script type="text/javascript">
var count = 0;
var files = 'demos/jquery-shoutbox/';
var lastTime = 0;
function prepare(response) {
var d = new Date();
count++;
d.setTime(response.time*1000);
var mytime = d.getHours()+':'+d.getMinutes()+':'+d.getSeconds();
var string = '<div class="shoutbox-list" id="list-'+count+'">'
+ '<span class="shoutbox-list-time">'+mytime+'</span>'
+ '<span class="shoutbox-list-nick">'+response.nickname+':</span>'
+ '<span class="shoutbox-list-message">'+response.message+'</span>'
+'</div>';
if (count > 11) { x = (count - 11); $('#list-' + x).fadeOut('slow'); x = document.getElementById('list-' + x); x.style.display = "none"; }
return string;
}
function success(response, status) {
if(status == 'success') {
lastTime = response.time;
$('#daddy-shoutbox-response').html('<img src="'+files+'images/accept.png" />');
$('#daddy-shoutbox-list').prepend(prepare(response));
$('input[@name=message]').attr('value', '').focus();
$('#list-'+count).fadeIn('slow');
timeoutID = setTimeout(refresh, 3000);
}
}
function validate(formData, jqForm, options) {
for (var i=0; i < formData.length; i++) {
if (!formData[i].value) {
alert('Please fill in all the fields');
$('input[@name='+formData[i].name+']').css('background', 'red');
return false;
}
}
$('#daddy-shoutbox-response').html('<img src="'+files+'images/loader.gif" />');
clearTimeout(timeoutID);
}
function refresh() {
$.getJSON(files+"daddy-shoutbox.php?action=view&time="+lastTime, function(json) {
if(json.length) {
for(i=0; i < json.length; i++) {
$('#daddy-shoutbox-list').prepend(prepare(json[i]));
$('#list-' + count).fadeIn('slow');
}
var j = i-1;
lastTime = json[j].time;
}
//alert(lastTime);
});
timeoutID = setTimeout(refresh, 3000);
}
// wait for the DOM to be loaded
$(document).ready(function() {
var options = {
dataType: 'json',
beforeSubmit: validate,
success: success
};
$('#daddy-shoutbox-form').ajaxForm(options);
timeoutID = setTimeout(refresh, 100);
});
</script>
</body>
</html>
如果你的站点没有实现某种登录系统,它可能应该这样做。这是识别谁在做什么的最好方法(因此,如果他们在做类似垃圾邮件的事情,你可以让他们停止)。要限制客户端的字符数,我认为
应该可以
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>jQuery</title>
<style type="text/css">
#daddy-shoutbox {
padding: 5px;
background: #FFF;
color: #000;
width: 250px;
font-family: Arial,Helvetica,sans-serif;
font-size: 11px;
}
.shoutbox-list {
border-bottom: 1px solid #000;
padding: 5px;
display: none;
}
#daddy-shoutbox-list {
text-align: left;
margin: 0px auto;
}
#daddy-shoutbox-form {
text-align: left;
}
.shoutbox-list-time {
color: #000;
}
.shoutbox-list-nick {
margin-left: 5px;
font-weight: bold;
}
.shoutbox-list-message {
margin-left: 5px;
}
</style>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.form.js"></script>
</head>
<body>
<div id="daddy-shoutbox">
<table cellpadding="3" cellspacing="0">
<form id="daddy-shoutbox-form" action="demos/jquery-shoutbox/daddy-shoutbox.php?action=add" method="post">
<tr>
<td>
Name:
<input type="text" name="nickname" />
</td>
</tr>
<tr>
<td>
Message:
<input type="text" name="message" />
<br /> <br />
<input type="submit" value="Submit" />
<span id="daddy-shoutbox-response"></span>
</form>
</td>
</tr>
</table>
<hr size="1" noshade />
<div id="daddy-shoutbox-list"></div>
<br />
</div>
<script type="text/javascript">
var count = 0;
var files = 'demos/jquery-shoutbox/';
var lastTime = 0;
function prepare(response) {
var d = new Date();
count++;
d.setTime(response.time*1000);
var mytime = d.getHours()+':'+d.getMinutes()+':'+d.getSeconds();
var string = '<div class="shoutbox-list" id="list-'+count+'">'
+ '<span class="shoutbox-list-time">'+mytime+'</span>'
+ '<span class="shoutbox-list-nick">'+response.nickname+':</span>'
+ '<span class="shoutbox-list-message">'+response.message+'</span>'
+'</div>';
if (count > 11) { x = (count - 11); $('#list-' + x).fadeOut('slow'); x = document.getElementById('list-' + x); x.style.display = "none"; }
return string;
}
function success(response, status) {
if(status == 'success') {
lastTime = response.time;
$('#daddy-shoutbox-response').html('<img src="'+files+'images/accept.png" />');
$('#daddy-shoutbox-list').prepend(prepare(response));
$('input[@name=message]').attr('value', '').focus();
$('#list-'+count).fadeIn('slow');
timeoutID = setTimeout(refresh, 3000);
}
}
function validate(formData, jqForm, options) {
for (var i=0; i < formData.length; i++) {
if (!formData[i].value) {
alert('Please fill in all the fields');
$('input[@name='+formData[i].name+']').css('background', 'red');
return false;
}
}
$('#daddy-shoutbox-response').html('<img src="'+files+'images/loader.gif" />');
clearTimeout(timeoutID);
}
function refresh() {
$.getJSON(files+"daddy-shoutbox.php?action=view&time="+lastTime, function(json) {
if(json.length) {
for(i=0; i < json.length; i++) {
$('#daddy-shoutbox-list').prepend(prepare(json[i]));
$('#list-' + count).fadeIn('slow');
}
var j = i-1;
lastTime = json[j].time;
}
//alert(lastTime);
});
timeoutID = setTimeout(refresh, 3000);
}
// wait for the DOM to be loaded
$(document).ready(function() {
var options = {
dataType: 'json',
beforeSubmit: validate,
success: success
};
$('#daddy-shoutbox-form').ajaxForm(options);
timeoutID = setTimeout(refresh, 100);
});
</script>
</body>
</html>
您需要使用substr()强制限制服务器端。否则就很容易规避。
如。
$message=substr($_请求['message'],0,70)
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>jQuery</title>
<style type="text/css">
#daddy-shoutbox {
padding: 5px;
background: #FFF;
color: #000;
width: 250px;
font-family: Arial,Helvetica,sans-serif;
font-size: 11px;
}
.shoutbox-list {
border-bottom: 1px solid #000;
padding: 5px;
display: none;
}
#daddy-shoutbox-list {
text-align: left;
margin: 0px auto;
}
#daddy-shoutbox-form {
text-align: left;
}
.shoutbox-list-time {
color: #000;
}
.shoutbox-list-nick {
margin-left: 5px;
font-weight: bold;
}
.shoutbox-list-message {
margin-left: 5px;
}
</style>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.form.js"></script>
</head>
<body>
<div id="daddy-shoutbox">
<table cellpadding="3" cellspacing="0">
<form id="daddy-shoutbox-form" action="demos/jquery-shoutbox/daddy-shoutbox.php?action=add" method="post">
<tr>
<td>
Name:
<input type="text" name="nickname" />
</td>
</tr>
<tr>
<td>
Message:
<input type="text" name="message" />
<br /> <br />
<input type="submit" value="Submit" />
<span id="daddy-shoutbox-response"></span>
</form>
</td>
</tr>
</table>
<hr size="1" noshade />
<div id="daddy-shoutbox-list"></div>
<br />
</div>
<script type="text/javascript">
var count = 0;
var files = 'demos/jquery-shoutbox/';
var lastTime = 0;
function prepare(response) {
var d = new Date();
count++;
d.setTime(response.time*1000);
var mytime = d.getHours()+':'+d.getMinutes()+':'+d.getSeconds();
var string = '<div class="shoutbox-list" id="list-'+count+'">'
+ '<span class="shoutbox-list-time">'+mytime+'</span>'
+ '<span class="shoutbox-list-nick">'+response.nickname+':</span>'
+ '<span class="shoutbox-list-message">'+response.message+'</span>'
+'</div>';
if (count > 11) { x = (count - 11); $('#list-' + x).fadeOut('slow'); x = document.getElementById('list-' + x); x.style.display = "none"; }
return string;
}
function success(response, status) {
if(status == 'success') {
lastTime = response.time;
$('#daddy-shoutbox-response').html('<img src="'+files+'images/accept.png" />');
$('#daddy-shoutbox-list').prepend(prepare(response));
$('input[@name=message]').attr('value', '').focus();
$('#list-'+count).fadeIn('slow');
timeoutID = setTimeout(refresh, 3000);
}
}
function validate(formData, jqForm, options) {
for (var i=0; i < formData.length; i++) {
if (!formData[i].value) {
alert('Please fill in all the fields');
$('input[@name='+formData[i].name+']').css('background', 'red');
return false;
}
}
$('#daddy-shoutbox-response').html('<img src="'+files+'images/loader.gif" />');
clearTimeout(timeoutID);
}
function refresh() {
$.getJSON(files+"daddy-shoutbox.php?action=view&time="+lastTime, function(json) {
if(json.length) {
for(i=0; i < json.length; i++) {
$('#daddy-shoutbox-list').prepend(prepare(json[i]));
$('#list-' + count).fadeIn('slow');
}
var j = i-1;
lastTime = json[j].time;
}
//alert(lastTime);
});
timeoutID = setTimeout(refresh, 3000);
}
// wait for the DOM to be loaded
$(document).ready(function() {
var options = {
dataType: 'json',
beforeSubmit: validate,
success: success
};
$('#daddy-shoutbox-form').ajaxForm(options);
timeoutID = setTimeout(refresh, 100);
});
</script>
</body>
</html>
由于3秒不是很长的时间,您可以让页面加载3秒。这不是一个优雅的解决方案,很容易被黑客绕过,但这只是一个开始。将以下内容放在文档的开头: