我一直关注Android教程,它涉及将Android应用程序链接到您的数据库。除了登录部分之外,android位工作正常,我认为这是由PHP脚本中的问题引起的。这是PHP代码:
<?PHP
include_once("conn.php");
if (isset($_POST['txtUsername']) && isset($_POST['txtPassword']))
{
$username = $_POST['txtUsername'];
$password = $_POST['txtPassword'];
$query = "SELECT username, password FROM tbl_client " .
" WHERE username = '$username' AND password = '$password'";
$result = mysqli_query($conn, $query);
if ($result->num_rows > 0)
{
if (isset($_POST['mobile']) && $_POST['mobile'] == "android")
{
echo "success";
exit;
}
echo "login successful";
} //header("location: index.php"); //replace login.php with your url
else
{
echo "Login Failed <br/>";
}
}
Android代码位于
之下@Override
public void processFinish(String result) {
if (result.equals("success")){
Intent intent=new Intent(this,Homepage.class);
startActivity(intent);
}
else
{
Toast.makeText(Login.this,"Login Unsuccessful", Toast.LENGTH_SHORT).show();
}
}
使用isset时,成功位永远不会回显,而是直接跳转到登录成功。我需要这一点来回应,以便我的Android应用程序能够正确登录。
答案 0 :(得分:1)
if(isset($_POST['mobile']) && $_POST['mobile'] == "android")
{
echo "success";
exit;
}
isset($_POST['mobile']) && $_POST['mobile']
将其更改为此,以便您可以了解错误是否与参数
if(isset($_POST['mobile'])
{
if(($_POST['mobile'] == "android"))
{
echo "success";
exit;
}
}
else
{ echo "mobile parameter is not set";
答案 1 :(得分:0)
你确定mobile
真的是一个POST参数吗?因为如果您通过Android应用程序调用url:http://www.yoursite.xyz/login.php?mobile=android,那么它是一个GET参数,您可以在$ _GET超全局中找到它。