Javascript 检查升级代码是否存在以及是否在重定向后
我有一个晋升页面。我希望该页面只能由那些通过电子邮件发送代码的用户访问 所以我有这个表格:Javascript 检查升级代码是否存在以及是否在重定向后,javascript,php,forms,validation,Javascript,Php,Forms,Validation,我有一个晋升页面。我希望该页面只能由那些通过电子邮件发送代码的用户访问 所以我有这个表格: <form accept-charset="UTF-8" action="promotion.php" method="post" onSubmit="return checkcode(this);"> <input name="code" type="text" id="code" maxlength="15" placeholder="Confirmation Code" req
<form accept-charset="UTF-8" action="promotion.php" method="post" onSubmit="return checkcode(this);">
<input name="code" type="text" id="code" maxlength="15" placeholder="Confirmation Code" required="required" />
<input type="submit" value="Submit" />
</form>
这段javascript代码运行不正常:如果我用更多字符编写更大的代码,就会重定向;此外,我不能添加太多,如果当我写更多代码时,值行中的数字下降/数字将重定向,我需要添加100多个代码。有没有其他方法可以让它正常工作?也许有一个PHP代码可以从文件中读取代码,并且只有在该文件中存在代码时才能重定向
在JSFIDLE重定向上,无论如何,javascript代码都无法工作。但是,如果我上传到我的服务器上似乎工作,但仍然有错误,我写在下面 请不要这样做,尝试将所有代码放在数据库中&然后使用AJAX验证代码将是一个更好的主意。如果验证成功,请尝试将隐藏的输入值更改为其他值,以便进一步填充。像这样使用JS作为客户端验证是一个非常糟糕的主意。请使用服务器端验证 检查这段代码,如果您使用Jquery,它将缩短代码并使其更好。我只是使用了简单的Ajax index.php
<script type="text/javascript">
function GetXmlHttpObject(){
var xmlHttp=null;
try{
xmlHttp=new XMLHttpRequest();
}
catch (e){
// Internet Explorer
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
function search_code(){
var parameter1= document.getElementById('code').value;
if (xmlHttps1==null){
alert ("Your browser does not support AJAX!");
return;
}
var url="ajax_validate.php?para1="+encodeURIComponent(parameter1)+"&search=search";
xmlHttps1.onreadystatechange=result_search_code;
xmlHttps1.open("GET",url,true);
xmlHttps1.send(null);
}
function result_search_code(){
if (xmlHttps1.readyState==4){
document.getElementById('Promotion_validation_Status').innerHTML="";
document.getElementById('Promotion_validation_Status').innerHTML=xmlHttps1.responseText;
}
}
var xmlHttps1=GetXmlHttpObject();
</script>
<form accept-charset="UTF-8" method="post" onSubmit="return validate()">
<input name="code" type="text" id="code" maxlength="15" placeholder="Confirmation Code" required="required" />
<input type="button" value="Submit" onClick="search_code()" />
</form>
<div id="Promotion_validation_Status" />
函数GetXmlHttpObject(){
var xmlHttp=null;
试一试{
xmlHttp=新的XMLHttpRequest();
}
捕获(e){
//Internet Explorer
试一试{
xmlHttp=新的ActiveXObject(“Msxml2.xmlHttp”);
}
捕获(e){
xmlHttp=新的ActiveXObject(“Microsoft.xmlHttp”);
}
}
返回xmlHttp;
}
函数搜索_代码(){
var参数1=document.getElementById('code')。值;
if(xmlHttps1==null){
警告(“您的浏览器不支持AJAX!”);
返回;
}
var url=“ajax\u validate.php?para1=“+encodeURIComponent(parameter1)+”&search=search”;
xmlHttps1.onreadystatechange=结果\搜索\代码;
open(“GET”,url,true);
xmlHttps1.send(空);
}
函数结果搜索代码(){
if(xmlHttps1.readyState==4){
document.getElementById('Promotion\u validation\u Status')。innerHTML=“”;
document.getElementById('Promotion\u validation\u Status')。innerHTML=xmlHttps1.responseText;
}
}
var xmlHttps1=GetXmlHttpObject();
ajax_validate.php
<?php
if($_REQUEST['search']=='search'){
$promotion_code=mysql_real_escape_string($_REQUEST['para1']);
$sql="select count(*) from table where feild_name='".$promotion_code;
$res1=mysql_query($sql1);
$res1=mysql_fetch_array($res1);
if($res1['count(*)']>0){
echo "Sucess";
} else {
echo "Validation Failed";
}
}
?>
请不要这样做,尝试将所有代码放在数据库中&然后使用AJAX验证代码将是一个更好的主意。如果验证成功,请尝试将隐藏的输入值更改为其他值,以便进一步填充。像这样使用JS作为客户端验证是一个非常糟糕的主意。请使用服务器端验证
检查这段代码,如果您使用Jquery,它将缩短代码并使其更好。我只是使用了简单的Ajax
index.php
<script type="text/javascript">
function GetXmlHttpObject(){
var xmlHttp=null;
try{
xmlHttp=new XMLHttpRequest();
}
catch (e){
// Internet Explorer
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
function search_code(){
var parameter1= document.getElementById('code').value;
if (xmlHttps1==null){
alert ("Your browser does not support AJAX!");
return;
}
var url="ajax_validate.php?para1="+encodeURIComponent(parameter1)+"&search=search";
xmlHttps1.onreadystatechange=result_search_code;
xmlHttps1.open("GET",url,true);
xmlHttps1.send(null);
}
function result_search_code(){
if (xmlHttps1.readyState==4){
document.getElementById('Promotion_validation_Status').innerHTML="";
document.getElementById('Promotion_validation_Status').innerHTML=xmlHttps1.responseText;
}
}
var xmlHttps1=GetXmlHttpObject();
</script>
<form accept-charset="UTF-8" method="post" onSubmit="return validate()">
<input name="code" type="text" id="code" maxlength="15" placeholder="Confirmation Code" required="required" />
<input type="button" value="Submit" onClick="search_code()" />
</form>
<div id="Promotion_validation_Status" />
函数GetXmlHttpObject(){
var xmlHttp=null;
试一试{
xmlHttp=新的XMLHttpRequest();
}
捕获(e){
//Internet Explorer
试一试{
xmlHttp=新的ActiveXObject(“Msxml2.xmlHttp”);
}
捕获(e){
xmlHttp=新的ActiveXObject(“Microsoft.xmlHttp”);
}
}
返回xmlHttp;
}
函数搜索_代码(){
var参数1=document.getElementById('code')。值;
if(xmlHttps1==null){
警告(“您的浏览器不支持AJAX!”);
返回;
}
var url=“ajax\u validate.php?para1=“+encodeURIComponent(parameter1)+”&search=search”;
xmlHttps1.onreadystatechange=结果\搜索\代码;
open(“GET”,url,true);
xmlHttps1.send(空);
}
函数结果搜索代码(){
if(xmlHttps1.readyState==4){
document.getElementById('Promotion\u validation\u Status')。innerHTML=“”;
document.getElementById('Promotion\u validation\u Status')。innerHTML=xmlHttps1.responseText;
}
}
var xmlHttps1=GetXmlHttpObject();
ajax_validate.php
<?php
if($_REQUEST['search']=='search'){
$promotion_code=mysql_real_escape_string($_REQUEST['para1']);
$sql="select count(*) from table where feild_name='".$promotion_code;
$res1=mysql_query($sql1);
$res1=mysql_fetch_array($res1);
if($res1['count(*)']>0){
echo "Sucess";
} else {
echo "Validation Failed";
}
}
?>
请不要这样做,尝试将所有代码放在数据库中&然后使用AJAX验证代码将是一个更好的主意。如果验证成功,请尝试将隐藏的输入值更改为其他值,以便进一步填充。像这样使用JS作为客户端验证是一个非常糟糕的主意。请使用服务器端验证
检查这段代码,如果您使用Jquery,它将缩短代码并使其更好。我只是使用了简单的Ajax
index.php
<script type="text/javascript">
function GetXmlHttpObject(){
var xmlHttp=null;
try{
xmlHttp=new XMLHttpRequest();
}
catch (e){
// Internet Explorer
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
function search_code(){
var parameter1= document.getElementById('code').value;
if (xmlHttps1==null){
alert ("Your browser does not support AJAX!");
return;
}
var url="ajax_validate.php?para1="+encodeURIComponent(parameter1)+"&search=search";
xmlHttps1.onreadystatechange=result_search_code;
xmlHttps1.open("GET",url,true);
xmlHttps1.send(null);
}
function result_search_code(){
if (xmlHttps1.readyState==4){
document.getElementById('Promotion_validation_Status').innerHTML="";
document.getElementById('Promotion_validation_Status').innerHTML=xmlHttps1.responseText;
}
}
var xmlHttps1=GetXmlHttpObject();
</script>
<form accept-charset="UTF-8" method="post" onSubmit="return validate()">
<input name="code" type="text" id="code" maxlength="15" placeholder="Confirmation Code" required="required" />
<input type="button" value="Submit" onClick="search_code()" />
</form>
<div id="Promotion_validation_Status" />
函数GetXmlHttpObject(){
var xmlHttp=null;
试一试{
xmlHttp=新的XMLHttpRequest();
}
捕获(e){
//Internet Explorer
试一试{
xmlHttp=新的ActiveXObject(“Msxml2.xmlHttp”);
}
捕获(e){
xmlHttp=新的ActiveXObject(“Microsoft.xmlHttp”);
}
}
返回xmlHttp;
}
函数搜索_代码(){
var参数1=document.getElementById('code')。值;
if(xmlHttps1==null){
警告(“您的浏览器不支持AJAX!”);
返回;
}
var url=“ajax\u validate.php?para1=“+encodeURIComponent(parameter1)+”&search=search”;
xmlHttps1.onreadystatechange=结果\搜索\代码;
open(“GET”,url,true);
xmlHttps1.send(空);
}
函数结果搜索代码(){
if(xmlHttps1.readyState==4){
document.getElementById('Promotion\u validation\u Status')。innerHTML=“”;
document.getElementById('Promotion\u validation\u Status')。innerHTML=xmlHttps1.responseText;
}
}
var xmlHttps1=GetXmlHttpObject();
ajax_validate.php
<?php
if($_REQUEST['search']=='search'){
$promotion_code=mysql_real_escape_string($_REQUEST['para1']);
$sql="select count(*) from table where feild_name='".$promotion_code;
$res1=mysql_query($sql1);
$res1=mysql_fetch_array($res1);
if($res1['count(*)']>0){
echo "Sucess";
} else {
echo "Validation Failed";
}
}
?>
请不要这样做,尝试将所有代码放在数据库中&然后使用AJAX验证代码将是一个更好的主意。如果验证成功,请尝试将隐藏的输入值更改为其他值,以便进一步填充。像这样使用JS作为客户端验证是一个非常糟糕的主意。请使用服务器端验证
检查这段代码,如果您使用Jquery,它将缩短代码并使其更好。我只是使用了简单的Ajax
index.php
<script type="text/javascript">
function GetXmlHttpObject(){
var xmlHttp=null;
try{
xmlHttp=new XMLHttpRequest();
}
catch (e){
// Internet Explorer
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
function search_code(){
var parameter1= document.getElementById('code').value;
if (xmlHttps1==null){
alert ("Your browser does not support AJAX!");
return;
}
var url="ajax_validate.php?para1="+encodeURIComponent(parameter1)+"&search=search";
xmlHttps1.onreadystatechange=result_search_code;
xmlHttps1.open("GET",url,true);
xmlHttps1.send(null);
}
function result_search_code(){
if (xmlHttps1.readyState==4){
document.getElementById('Promotion_validation_Status').innerHTML="";
document.getElementById('Promotion_validation_Status').innerHTML=xmlHttps1.responseText;
}
}
var xmlHttps1=GetXmlHttpObject();
</script>
<form accept-charset="UTF-8" method="post" onSubmit="return validate()">
<input name="code" type="text" id="code" maxlength="15" placeholder="Confirmation Code" required="required" />
<input type="button" value="Submit" onClick="search_code()" />
</form>
<div id="Promotion_validation_Status" />
函数GetXmlHttpObject(){
var xmlHttp=null;
试一试{
xmlHttp=新的XMLHttpRequest();
}
捕获(e){
//Internet Explorer
试一试{