我的登录表单仅在chrome中执行。它无法在IE和Firefox中运行。它知道这是正确的用户名,但它不会重定向到页面。我用ajax和joomla。 这是我的代码:
<script>
function Send()
{
jQuery.post("index.php?option=com_market&view=login&format=raw",
{Username:jQuery("#username").val(),Pass:jQuery("#password").val()},
function(data)
{
jQuery("#loginValid").html(data);
});
}
</script>
<form name="loginForm" id="loginForm" method="post">
<label>Username:</label><input type="text" name="username" id="username" /><br />
<label>Password:</label><input type="password" name="password" id="password" /><br />
<input type="button" onclick="Send();" value="login" name="loginSubmit" id="login" />
</form>
地址中的代码:index.php?option = com_market&amp; view = login&amp; format = raw
<?php
session_start();
if(isset($_POST['Username'])) {
$Username=$_POST['Username'];
$db = JFactory::getDBO();
$pass = md5($_POST['Pass']);
$query ="select id from sb5qt_market_users where username='$Username' and password='$pass'";
$db->setQuery($query);
$db->query();
$rows = $db->getNumRows();
$result = $db->loadResult();
if ($rows == 0) {
echo "invalid username or password";
} else {
$_SESSION['id']=$result;
echo '<META http-equiv="refresh" content="0;URL=http://example.com/profile">';
}
}
?>
答案 0 :(得分:1)
对我而言似乎是一种奇怪的重定向方式,而且我并不感到惊讶的是浏览器遇到了麻烦。
你可以试试这个:
PHP中的
if($rows == 0)
{
echo json_encode(array("error" => "invalid username or password", "redirect" => ""));
}
else
{
$_SESSION['id']=$result;
echo json_encode(array("error" => "", "redirect" => "http://example.com/profile"));
}
然后在你的Javascript中... ...
jQuery.ajax({
url: 'index.php?option=com_market&view=login&format=raw',
data: 'Username=' + jQuery("#username").val() + "&Pass=" + jQuery("#password").val(),
type: 'post',
dataType: 'json',
success: function(data)
{
if (data['error']) {
jQuery("#loginValid").html(data['error']);
}
if (data['redirect']) {
location.href = data['redirect'];
}
}
});
我还没有测试过这些,但你可以看到我得到的东西......
答案 1 :(得分:1)
尝试添加event.preventDefault()或返回false;在按钮的单击方法上。像这样:
<script>
function Send()
{
jQuery.post("index.php?option=com_market&view=login&format=raw",
{Username:jQuery("#username").val(),Pass:jQuery("#password").val()},
function(data)
{
jQuery("#loginValid").html(data);
});
}
$("#login').click(function(){
return false;
});
</script>