2013-11-11 7 views
1

Я хочу, чтобы пользователи были перенаправлены на определенные пользовательские страницы. У меня есть таблица с именем пароль перенаправлятьjquery перенаправить пользователя на конкретную страницу

Я не могу написать код для перенаправления, так что 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"; 
} 
} 
?> 
+1

http://stackoverflow.com/questions/503093/how-can-i-make-a-redirect-page-in-jquery-javascript –

+0

http://stackoverflow.com/questions/12859942/why-shouldnt -i-use-mysql-functions-in-php – steven

+0

Это не помогает. Мои ссылки перенаправления находятся в базе данных, я хочу перенаправить туда ссылки. – user2978016

ответ

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

Это предполагает, что ваш столбец редирект в таблице пользователей. Если это так, то он должен вернуть значение перенаправления пользователя вашему реквесту jQuery ajax. Затем вы можете использовать его в else if утверждении АЯКС функции обратного вызова вашей Index.php «s:

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.

+0

СПАСИБО много :) Да, я неправильно написал connect.php. – user2978016

0

Здесь я Editted мой пост попробовать это ............

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

Я хочу вытащить ссылки из базы данных. Он хранится в столбце перенаправления. Я пытаюсь настроить многопользовательский логин, например, как facebook или flickr. – user2978016

+0

Это перенаправление непосредственно, как только я нажимаю кнопку отправки. Я хочу, чтобы мой код jquery перенаправлялся esp. в этом разделе window.location = "home.php"; – user2978016

Смежные вопросы