我正在进行登录会话,我想在同一页面上显示错误,例如 - “无效密码”或“用户不存在”
继承我的代码:
<?php
session_start();
mysql_connect('mysql.database.com','user','database')or die ('Connection Failed: '.mysql_error());
mysql_select_db('database')or die ('Error when selecting Database: '.mysql_error());
function remove($mensaje)
{
$nopermitidos = array("'",'\\','<','>',"\"");
$mensaje = str_replace($nopermitidos, "", $mensaje);
return $mensaje;
}
if(trim($_POST["usuario"]) != "" && trim($_POST["password"]) != "")
{
$usuario = strtolower(htmlentities($_POST["usuario"], ENT_QUOTES));
$password = $_POST["password"];
$result = mysql_query('SELECT password, usuario FROM usuarios WHERE usuario=\''.$usuario.'\'');
if($row = mysql_fetch_array($result)){
if($row["password"] == $password){
$_SESSION["k_username"] = $row['usuario'];
header( 'Location: diseno.php' ) ;
}else{
echo '<p class="message2">Invalid password</p>';
}
}else{
echo '<p class="message2"User does not exist</p>';
}
mysql_free_result($result);
}else{
echo '<p class="message2">Must enter a user and password</p>';
}
mysql_close();
?>
<SCRIPT LANGUAGE="javascript">
location.href = "index.php";
</SCRIPT>
正如您所看到的那样,这是我对登录表单的验证和操作。我想在同一页面中显示它,而不是在新页面中回显错误。我尝试使用javascript,但我使用它并不起作用。
var page = document.URL = "http://www.mysite.com/login.php"
page.getElementById( 'wrongpassword' ).style.display = 'block';
我要显示的所有div在login.php
文件中都设置为无。
有人可以帮助我吗?
答案 0 :(得分:1)
实现此目的的最简单方法是处理登录,然后包含显示正常页面的PHP代码。我不确定你是如何设计你的网站的,但最后包括index.php可能会有所帮助。现在,您正在使用JS重定向,它不会为您提供所需的结果。
我喜欢设置包含消息的$ message变量,而不是回显消息。渲染主页面时,只需在适当的位置回显该变量(如果已设置)。
答案 1 :(得分:0)
如果你想在不改变页面的情况下改变这样的css样式,你必须使用javascript(用于更改css)+ ajax(用于获取登录结果)。
答案 2 :(得分:0)
为了做到这一点,你可以简单地使用JQuery。我已经在我的网站上完成了它,所以我可以说它确实有效。
启动会话,检查值并在javascript的全局变量中指定值或仅在那里打印
例如
<?php
session_start();
//checking ur values
echo "<script src=\"js/jquery-1.8.3.min.js\"></script>
<script type=\"text/javascript\">
$(document).ready(function(){
//you can assign values here or print error messages to any div
('.div_class').html("unuthorised user");
});
</script>";
?>
这里我使用了下载的JQuery文件 http://jquery.com/download/
您可以选择其他明智的方法来使用此JQuery文件的在线版本。其语法是
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
如果有任何关于上述代码的进一步查询/问题,请随时返回。