gpt4 book ai didi

php - 我的 Android 无法连接到我的网络服务器

转载 作者:行者123 更新时间:2023-11-29 20:46:25 26 4
gpt4 key购买 nike

这是我的 Android 代码,使用 task1 连接到我的数据库。有人可以帮我解决我的问题吗?感谢大家。它在本地主机上也运行良好。 :)

安卓

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");
}
}

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

数据库配置.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";

}


}


?>

最佳答案

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

因此,将您的代码更改为:

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

至:

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

关于php - 我的 Android 无法连接到我的网络服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38413062/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com