因此,在提交表单类i <- 3
do.call(grid.arrange, plist)
时,会触发对for(i in 1:2) {
nam <- paste("p", i, sep = "")
coln <- colnames(result[i+4])
assign(
nam, ggplot(result,aes_(x=~disp,y=as.name(coln), group=~gear, color=~gear)) +
geom_line() +
geom_point() +
scale_colour_distiller(palette = "Dark2", direction=-1, guide="legend") +
scale_y_continuous(name=coln) +
scale_x_continuous(name="x")
)
}
plist <- mget(paste0("p", 1:2))
do.call(grid.arrange, plist)
.login
ajax
内部login.php
内部login.php
的调用,以致welcome.php
来确保加密的密码与数据库中的密码匹配,并且输入的用户名存在于数据库中。提及我的ajax
调用是否成功尝试运行也是有帮助的,但是没有重定向到我的welcome.php
。所以,我对你们所有人的问题是,我是否会以正确的方式解决这个问题?
$('.login').on('submit', function(){
// serialize the form
var formData = $(this).serialize();
$.ajax({
type : 'POST',
url : 'login.php',
data : formData,
success: function() {
alert("Success");
},
error: function(xhr) {
alert("fail");
}
})
.done(function (data) {
})
.fail(function (error) {
console.log(data);
});
return false;
});
<html>
<body>
<?php
require 'connect.php';
if((isset($_POST['user-login']) && !empty($_POST['user-login']))||
(isset($_POST['pass-login']) && !empty($_POST['pass-login']))){
$sth = $dbh->prepare('SELECT name FROM test_table WHERE name=?;');
$passLogin = $_POST['pass-login'];
$nameLogin = $_POST['user-login'];
$sth->execute(Array($nameLogin));
if(password_verify($passLogin, $hashed_password) && $sth->rowCount() > 0) {
header("Location:welcome.php");
exit;
}
}
else{
echo 'error';
}
?>
</body>
</html>
*****************************************************************
<html>
<body>
<?php
echo 'welcome';
?>
</body>
</html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" type="text/javascript">
<form class = "login">
<label for="user-login">Username</label>
<input id="user-login" name="user-login"></br>
<label for="pass-login">Password</label>
<input id="pass-login" name="pass-login"></br>
<input type="submit" name= "submit" value="submit" id = "submit">
<a id = "register-a">Register Now</a>
</form>
答案 0 :(得分:0)
您需要使用javascript重定向您的网页。 Ajax请求无法从服务器端重定向用户浏览器。我建议如果您的登录成功,请传回成功标记,以便处理您的ajax success()
函数,然后使用window.location.href
进行重定向。
如果您不知道,只需要抬头,您的脚本将始终返回成功。即使你echo 'error';
。您需要实际形成一个失败的HTTP状态代码,以便执行错误函数,或者在代码中出现错误!
答案 1 :(得分:-1)
Ajax的目的是在不离开当前页面的情况下发出HTTP请求。浏览器似乎没有重定向,因为结果返回到Ajax处理程序,它对它们没有任何作用(您的done
函数为空)。
您的目标似乎是发出HTTP请求,然后显示欢迎页面。
您不应该使用Ajax。只需使用常规表单提交。
如果提交的数据存在问题(大部分时间都没有,那么就不适合应用Ajax),然后重新显示表单。
答案 2 :(得分:-1)
这是可能的,但是你永远不会到达重定向呼叫,因为
if语句中的$hashed_password
未定义。
这将抛出错误消息,但您需要使用chrome inspector&gt;等工具。网络&gt; login.php查看响应。
希望这有助于将来调试:)