jquery将用户重定向到特定页面


jquery redirect user to specific page

我希望将用户重定向到特定的用户页面。我有一张桌子用户名密码重定向

我似乎无法编写重定向代码,以便 windows.location 重定向到数据库中登录的特定用户的链接。

数据连接.php

 <?PHP
    @mysql_connect("localhost","root","")
    or die("could not connect to mysql");
    @mysql_select_db("login")or die("no database");
    ?>

索引.php

<html> 
<head> 
<title>Animated Login</title>
<script type="text/javascript" src="http://ajax.googleapis.com/
ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="login.css">
<script type="text/javascript">
$(function() {
$(".center").animate({
   opacity: 100.0,
   left: '+=800',
   height: 'toggle'
   }, 5000, function(){
});
$(".sign_b_btn").live("click",function() {
var u=$("#u").val();
var p=$("#p").val();
if(u==""){
$("#u").css("border-color","red");
$("#un").css("color","red");
$(".error").show().html("Please enter your username.");
$("#p").css("border-color","#606060");
$("#up").css("color","#333333");
}else if(p==""){
$("#u").css("border-color","#606060");
$("#un").css("color","#606060");
$(".error").show().html("Please enter your password.");
$("#p").css("border-color","red");
$("#up").css("color","red");
}else{
dataString = 'u=' + u + '&p=' + p;
$.ajax({
type: "POST",
url: "login_php.php",
data: dataString,
cache: false,
success: function(html){
if(html == "" ){
$(".error").show().html("The email or password you entered ois incorrect.");
$("#p,#u").css("border-color","red");
$("#up,#un").css("color","red");
}else if(html == "1"){
$(".error").fadeOut(1000);
$("#u").css("border-color","#606060");
$("#un").css("color","#333333");
$("#p").css("border-color","#606060");
$("#up").css("color","#333333");
$(".center").animate({
   opacity: 0.25,
   left: '+=900',
   height: 'toggle'
   }, 5000, function() {
$(".done").slideDown(200).html("Welcome "+u); 
setTimeout(function(){
var u=$("#u").val("");
var p=$("#p").val(""); 
window.location="home.php";
}, 5000);
});
}
}
});
}
}); 
});
</script>
</head>
<body>
<div class="main">
<div class="done"></div>
<div class="center">
<div class="title">Login</div>
<div class="error"></div>
<div class="input"><div class="left" id="un">Username:</div><div class="right">
<input type="text" class="log" id="u"></div><div class="c"></div></div>
<div class="input"><div class="left" id="up">Password:</div><div class="right">
<input type="password" class="log" id="p"></div><div class="c"></div></div>
<div class="sign_b_btn"><div class="sign_btn">Sign In</div></div>
</div>
</div>
</body>
</html>

连接.php

<?PHP 
include('dataconnect.php');//Your connection to your database
//Get posted values from form
$u=$_POST['u'];
$p=$_POST['p'];
//Strip slashes
$u = stripslashes($u);
$p = stripslashes($p);
//Strip tags 
$u = strip_tags($u);
$p = strip_tags($p);
$p=md5($p);
$check = mysql_query("SELECT * FROM user WHERE user ='$u' 
AND pass='$p'")or die(mysql_error());
$check = mysql_num_rows($check);
if($check !== "0"){
$results = mysql_query("SELECT * FROM user WHERE user ='$u'") or die(mysql_error());
while ($row = mysql_fetch_assoc($results)) {
    $user=$row['user'];
    session_register('user'); 
    $_SESSION['user'] = $user;
echo"1";
} 
}
?>

在你的jQuery中,你要发布到login_php.php。 你的意思是发帖到connect.php吗?

无论哪种方式,您可能想做的只是返回您要重定向到的链接,而不是 1,如果请求为空,您将继续执行您正在做的事情(抛出和错误),如果它不为空,您将有一个有用的值。

尝试将connect.php更新为以下内容:

<?PHP 
include('dataconnect.php');//Your connection to your database
//Get posted values from form
$u=$_POST['u'];
$p=$_POST['p'];
//Strip slashes
$u = stripslashes($u);
$p = stripslashes($p);
//Strip tags 
$u = strip_tags($u);
$p = strip_tags($p);
$p=md5($p);
$check = mysql_query("SELECT * FROM user WHERE user ='$u' 
AND pass='$p'")or die(mysql_error());
$check = mysql_num_rows($check);
if($check !== "0"){
$results = mysql_query("SELECT user, redirect FROM user WHERE user ='$u'") or die(mysql_error());
while ($row = mysql_fetch_assoc($results)) {
    $user=$row['user'];
    session_register('user'); 
    $_SESSION['user'] = $user;
    echo $row['redirect'];
} 
}
?>

这假定您的重定向列位于用户表中。 如果是这种情况,那么它应该将用户的重定向值返回到您的 jQuery ajax 请求者。 然后你可以在Index.php的 ajax 回调函数的 else if 语句中使用它:

else if(html != ''){
var redirect_url = html;
$(".error").fadeOut(1000);
$("#u").css("border-color","#606060");
$("#un").css("color","#333333");
$("#p").css("border-color","#606060");
$("#up").css("color","#333333");
$(".center").animate({
   opacity: 0.25,
   left: '+=900',
   height: 'toggle'
   }, 5000, function() {
$(".done").slideDown(200).html("Welcome "+u); 
setTimeout(function(){
var u=$("#u").val("");
var p=$("#p").val(""); 
window.location=redirect_url;
}, 5000);
});
}

除了你的问题,我强烈建议你研究SQL注入。 就目前而言,您的connect.php脚本容易受到SQL注入的影响。 基本上,您需要转义$u$p变量。 使用类似mysql_real_escape_string的东西来执行此操作。

在这里我编辑了我的帖子试试这个......

while ($row = mysql_fetch_assoc($results)) {
$link=$row['redirect'];
} 
header('Location: "$link"');