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

时间:2013-11-11 05:56:36

标签: php jquery redirect

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

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

dataconnect.php

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

的index.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>

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 * 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";
} 
}
?>

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

在你的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'];
} 
}
?>

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

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的内容来执行此操作。