我正在将HTML表单(使用JavaScript验证表单)中的发布数据提交到php脚本
几个小时前,我意识到我正在发送空数据,所以我解决了这个问题,即使我正在发送它,现在我仍然没有在服务器端收到过帐数据。
当我在服务器端回显post变量时,我可以看到在删除回显时所回显的变量,它始终告诉我“无登录信息”。我试图评论/取消评论回声几次,它一直显示相同的问题。似乎有些缓存。
我试图使用clearstatcache()禁用缓存;和
header("Content-Type: text/html");
header("Expires: 0");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
它不起作用。也许这是html表单方面的某种缓存,显然它一直在发送错误(空)数据。
当我删除“无登录信息”部分时,它告诉我“用户不存在”,就像登录信息确实丢失一样。
我需要补充一点,这段代码已经运行了好几年了。除了用于防止缓存的第一行之外,我没有更改它(但这是在问题出现之后)。新的代码是html表单,它称为此php代码。 部分php代码如下
<?php
clearstatcache();
header("Content-Type: text/html");
header("Expires: 0");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
include("conexion/conexion.php");
//$form_password=$_GET['form_password'];
//$form_email=$_GET['form_email'];
$form_password=$_POST['form_password'];
$form_email=$_POST['form_email'];
//echo "form_password=$form_password";
//echo "form_email=$form_email";
function autentificar(){
global $form_email,$form_password;
echo "form_password=$form_password";
echo "form_email=$form_email";
//exit();
$mensaje=1;
if($form_email=='' || $form_password=='')
{
$mensaje="No login information";
//echo "form_password=$form_password";
//echo "form_email=$form_email";
}
else
{
$con=openDB();
if(!$con)
{
$mensaje="Database connection not opened";
//exit();
}
else
{
$query="SELECT USERCODE,NAME,AES_DECRYPT(UNHEX(PASSWORD),UNHEX(SHA2('xxxxx',512))) ,USERTYPE,BALANCE,ACTIVELESSONSTATUS,ACTIVELESSONCODEVAR FROM USERS WHERE EMAIL='$form_email'";
//echo "query=$query";
//exit();
//$query="SELECT * FROM usuario ";
$resultado=genesis_exec($con,$query);
//$resultado=mysql_query($query,$con);
if(!$resultado)
{
$mensaje="Error en la sentencia SQL";
echo "Sentencia: $query <br>";
echo "Error: ".mysql_error();
closeDB($con);
exit();
}
else
{
$fila=genesis_fetch_row($resultado);
if(!$fila)
{
$mensaje="User does not exist";
}
else
{
$user=genesis_result($resultado,1);
$name=genesis_result($resultado,2);
$p=genesis_result($resultado,3);
$type=genesis_result($resultado,4);
$balance=genesis_result($resultado,5);
$status=genesis_result($resultado,6);
$lesson=genesis_result($resultado,7);
if($p!=$form_password)
{
$mensaje="Incorrect password";
/*echo "user=$user";
echo "name=$name";
echo "p=$p";
echo "type=$type";
echo "$mensaje";
exit();*/
}
else
{
//AQUI ABRE LA SESION
//para abrir sesion y usar Header no se debe haber hecho ninguna salida
session_start(); //aqui se abre la sesion por primera vez
$SESION=session_id();
$query="UPDATE USERS SET SESSIONID='$SESION' WHERE USERCODE='$user'";
$resultado=genesis_exec($con,$query);
//Aqui registra las variables de sesion
$_SESSION['TIPO_USUARIO']=$type; //usar esto si register_globals=off
$_SESSION['COD_USUARIO']=$user; //usar esto si register_globals=off
$_SESSION['NOMBRE_USUARIO']=$name;
$_SESSION['BALANCE']=$balance;
$_SESSION['ACTIVE_LESSONSTATUS']=$status;
$_SESSION['LESSON_CODEVAR']=$lesson;
$mensaje=1; //solo devuelve 1 si el usuario se autentificó con éxito
if($pagina=="" && $type=="STUDENT") $pagina="lesson.htm"; //valor por defecto
if($pagina=="" && $type!="STUDENT") $pagina="opportunities.htm"; //valor por defecto
}
}
}
genesis_commit($con);
closeDB($con);
}
}
return $mensaje;
}//fin autentificar()
部分客户端代码如下
<form id="sky-form" class="sky-form" method="post" onsubmit="return validate()" action="login.php">
<header>Login form</header>
<fieldset>
<section>
<div class="row">
<label class="label col col-4">E-mail</label>
<div class="col col-8">
<label class="input">
<i class="icon-append icon-user"></i>
<input type="email" name="form_email" id="form_email">
</label>
</div>
</div>
</section>
<section>
<div class="row">
<label class="label col col-4">Password</label>
<div class="col col-8">
<label class="input">
<i class="icon-append icon-lock"></i>
<input type="password" name="form_password" id="form_password">
</label>
<div class="note"><a href="#sky-form2" class="modal-opener">Forgot password?</a></div>
</div>
</div>
</section>
<!--
<section>
<div class="row">
<div class="col col-4"></div>
<div class="col col-8">
<label class="checkbox"><input type="checkbox" name="remember" checked><i></i>Keep me logged in</label>
</div>
</div>
</section>
-->
</fieldset>
<footer>
<div class="fright">
<a href="register.html" class="button button-secondary">Register</a>
<button type="submit" class="button">Log in</button>
</div>
</footer>
</form>
并且验证功能在后面
<script type="text/javascript">
function validate()
{
//alert('validate');
if(document.getElementById("form_email").value=='')
{
alert('Enter the email');
return false;
}
if(document.getElementById("form_password").value=='')
{
alert('Enter the password');
return false;
}
//alert(document.getElementById("form_email").value);
//alert(document.getElementById("form_password").value);
return true;
}
</script>
我需要说的是,实际上由于表单和javascript的问题而没有发送数据时,一切都开始了。但是我现在有信心发送数据,因为当我在服务器端回显发布数据时,当我不回显数据时它显示数据,它说“没有登录信息”
重要更新:我从服务器上删除了文件login.php,但仍从服务器收到消息“没有登录信息”。到底是怎么回事 ?请帮助
答案 0 :(得分:0)
我必须将两个文件合并到一个文件中,并且现在可以正常工作