我的android无法连接到我的网络服务器

时间:2016-07-16 16:16:00

标签: php android mysql

这是我的android代码,使用task1连接到我的数据库。任何人都可以帮我解决我的问题。感谢大家。它也适用于localhost。 :)

的Android

package com.example.kun.carkila;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.kosalgeek.genasync12.AsyncResponse;
import com.kosalgeek.genasync12.PostResponseAsyncTask;

import java.util.HashMap;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
final String LOG = "MainActivity";
Button btnLogin;
EditText etUsername,etPassword;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    etUsername = (EditText)findViewById(R.id.etUsername);
    etPassword = (EditText)findViewById(R.id.etPassword);
    btnLogin = (Button)findViewById(R.id.btnLogin);
    btnLogin.setOnClickListener(this);

}
@Override
public void onClick(View v) {
    HashMap postData = new HashMap();
    String username = etUsername.getText().toString();
    String password = etPassword.getText().toString();
    postData.put("username",username);
    postData.put("password", password);

    PostResponseAsyncTask task1 = new PostResponseAsyncTask(MainActivity.this, postData,
            new AsyncResponse() {
        @Override
        public void processFinish(String s) {
            try {
                if (s.contains("renterowner")) {
                    Toast.makeText(MainActivity.this, "Renter Login Successful!", Toast.LENGTH_SHORT).show();
                    Intent in = new Intent(MainActivity.this, ListActivity.class);
                    startActivity(in);

                } else if (s.contains("ownerrenter")) {
                    Toast.makeText(MainActivity.this, "Owner Login Successful!", Toast.LENGTH_SHORT).show();
                    Intent in = new Intent(MainActivity.this, ownerhome.class);
                    startActivity(in);
                } else {
                    Toast.makeText(MainActivity.this, "Login Failed!", Toast.LENGTH_SHORT).show();
                }

            }
        catch (Exception e) {
            System.out.print("Error: " + e.toString());
        }
        }
                });
    task1.execute("http://carkila.esy.es/index.php");
}
}

每当我在我的机器人上键入正确的登录信息时,它总是以我的else语句结束,但是当我使用http://carkila.esy.es/index.php登录我的网络时,它正在工作。

数据库的config.php

<?php
// define database related variables
$database = '*****';
$host = '*****';
$user = '*****';
$pass = '*****';

// try to conncet to database
$dbh = new PDO("mysql:dbname={$database};host={$host}", $user, $pass);
return $dbh;


try{
if(!$dbh){

  echo "unable to connect to database";
 }
}catch (PDOException $e){
echo $e->getMessage();
}

?>

的index.php

<?php 

$errors = array(
  1=>"Invalid user name or password, Try again",
  2=>"Please login to access this area"
);

$error_id = isset($_GET['err']) ? (int)$_GET['err'] : 0;

if ($error_id == 1) {
   echo $errors[$error_id];

   }elseif ($error_id == 2) {
   echo $errors[$error_id];
  }
?> 

<html>
<head><title>Login</title></head>
<body>

    <form action="authenticate.php" method="post">
        Username <input type="text" name="username" value="" placeholder="Enter Username" /><br/>
        Password <input type="password" name="password" value="" placeholder="Enter Password" /><br/>
        <input type="submit" name="btnSubmit" value="Login"/>
    </form>
</body>
</html>

authenticate.php

 <?php 
 require 'database-config.php';

 session_start();

 $username = "";
 $password = "";

 if(isset($_POST['username'])){
  $username = $_POST['username'];
 }
 if (isset($_POST['password'])) {
  $password = $_POST['password'];

 }


 $q = 'SELECT * FROM tbl_user WHERE username=:username AND password=:password';

 $query = $dbh->prepare($q);

 $query->execute(array(':username' => $username, ':password' => $password));


 if($query->rowCount() == 0){
 header('Location: index.php?err=1');
 }else{

 $row = $query->fetch(PDO::FETCH_ASSOC);

 session_regenerate_id();
 $_SESSION['sess_user_id'] = $row['userID'];
 $_SESSION['sess_username'] = $row['username'];
 $_SESSION['sess_userrole'] = $row['roles'];

 echo $_SESSION['sess_userrole'];
 session_write_close();

 if( $_SESSION['sess_userrole'] == "renter"){
 echo "owner";

 }else if ($_SESSION['sess_userrole'] == "owner"){
 echo"renter";

 }


 }


?>

1 个答案:

答案 0 :(得分:0)

您正在将请求发送到错误的页面。您的index.php不是负责处理POST数据的人,authenticate.php

所以,改变你的代码:

task1.execute("http://carkila.esy.es/index.php");

为:

task1.execute("http://carkila.esy.es/authenticate.php");
相关问题