gpt4 book ai didi

Javascript 在 php 项目中不起作用,用户仍然被路由到 php 页面而不是保留在当前页面

转载 作者:行者123 更新时间:2023-11-28 16:01:18 24 4
gpt4 key购买 nike

这是我的index.html页面代码:-

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<HTML>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</meta>
<title>School</title>
<script type="text/javascript" src="script/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="my_script.js"></script>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>

<div style="margin:auto; width:1000px;">

<div class="flt topblock"> <a href="" class="flt1 tp_txtplay">Play School</a>
<br/><br/>
<div>

<form id='myform' method='post' action='welcome.php' >
<span class="flt1 lp_txtlog">Email ID</span>
<input name="username" type="text" id="username" class="flt lp_textbox" />
<br />
<span class="flt1 lp_txtlog2">Password</span>

<input name="password" type="password" id="password" class="flt lp_textbox2" />
button id="submit" class='flt lp_button'>Login</button>
</form>
<div id="ack"></div>
</div>
</div>
</div>
</body>
</html>

这是 my_script.js 代码:-

$("button#submit").click(function() {
if ($("#username").val() == "" || $("#password").val() == "")
$("div#ack").html("Please enter both username and password");
else
$.post($("#myForm").attr("action"),
$("#myForm :input").serializeArray(),
function(data) {
$("div#ack").html(data);
});

$("#myForm").submit(function() {
return false;
});

});

下面是我的welcome.php代码:-

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<?php
$con = mysql_connect('localhost', 'root', 'Wahegurug@9');
mysql_select_db('test', $con);
if (!$con) {
die('Could not connect: ' . mysql_error());
}

$sql = "SELECT * FROM user ";

$res = mysql_query($sql);
if ($row = mysql_fetch_array($res)) {
if ($row['Username'] == $_POST['username']) {
if ($row['Password'] == $_POST['password']) {
echo'login successful';
} else {
echo'login failed';
}
}
}
?>
</body>
</html>

详细信息是:- 我在 Netbeans 7.3 中制作了这个项目并使用 xampp 服务器。我创建了一个简单的登录页面,并尝试使用 javascript 来防止输入错误凭据时提交页面。

在 my_script.js 中,我使用带有 id ack 的 div 向用户显示成功或错误消息。

我的问题是,即使输入了错误的凭据,用户仍然被重定向到welcome.php(我的表单的目标)。如何防止这种情况发生?

最佳答案

您需要做的是阻止默认操作。

改变

$("button#submit").click( function() {

$("button#submit").click( function(event) {
event.preventDefault();

此外,您还在这里显式调用提交函数:

$("#myForm").submit(function() {
return false;
});

也尝试删除此代码,它可能会在 $.post 调用完成之前解决

最后,你的 jquery 代码应该包装在 document.ready block 中......

  $(document).ready(function(){
$("button#submit").click(function(event) {
event.preventDefault();
if ($("#username").val() == "" || $("#password").val() == "")
$("div#ack").html("Please enter both username and password");
else
$.post($("#myForm").attr("action"),
$("#myForm :input").serializeArray(),
function(data) {
$("div#ack").html(data);
});

});
});

至于您的welcome.php页面,这可能会更好地为您服务。

  <?php
$con = mysql_connect('localhost', 'root', 'Wahegurug@9');
mysql_select_db('test', $con);
if (!$con) {
die('Could not connect: ' . mysql_error());
}

$sql = "SELECT * FROM user where Username = '".mysql_real_escape_string($_POST["username"])."'";

$res = mysql_query($sql);
if ($row = mysql_fetch_array($res)) {
if ($row['Password'] == $_POST['password']) {
echo'login successful';
return;
}
}
echo'login failed';
?>

这只会获取并检查相关用户的密码,并且在所有情况下都会返回失败。另外,我删除了框架页面标记,因为它被注入(inject)到现有页面中。

关于Javascript 在 php 项目中不起作用,用户仍然被路由到 php 页面而不是保留在当前页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16890231/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com