android php 实现登录
实现 Android 与 PHP 的登录功能
Android 端实现
在 Android 应用中,使用 Retrofit 或 Volley 库发送 HTTP 请求到 PHP 后端。以下是一个使用 Retrofit 的示例:

// 定义 API 接口
public interface ApiService {
@FormUrlEncoded
@POST("login.php")
Call<LoginResponse> loginUser(
@Field("username") String username,
@Field("password") String password
);
}
// 创建 Retrofit 实例
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://your-server-address/")
.addConverterFactory(GsonConverterFactory.create())
.build();
ApiService apiService = retrofit.create(ApiService.class);
// 发送登录请求
Call<LoginResponse> call = apiService.loginUser(username, password);
call.enqueue(new Callback<LoginResponse>() {
@Override
public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) {
if (response.isSuccessful()) {
// 登录成功处理
} else {
// 登录失败处理
}
}
@Override
public void onFailure(Call<LoginResponse> call, Throwable t) {
// 网络错误处理
}
});
PHP 后端实现
在服务器端创建一个 PHP 文件(如 login.php)处理登录请求:

<?php
header("Content-Type: application/json");
$username = $_POST['username'];
$password = $_POST['password'];
// 数据库连接
$conn = new mysqli("localhost", "db_username", "db_password", "db_name");
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// 查询用户
$stmt = $conn->prepare("SELECT * FROM users WHERE username = ?");
$stmt->bind_param("s", $username);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows > 0) {
$user = $result->fetch_assoc();
if (password_verify($password, $user['password'])) {
// 登录成功
echo json_encode(["status" => "success", "message" => "Login successful"]);
} else {
// 密码错误
echo json_encode(["status" => "error", "message" => "Invalid password"]);
}
} else {
// 用户不存在
echo json_encode(["status" => "error", "message" => "User not found"]);
}
$stmt->close();
$conn->close();
?>
安全注意事项
使用 HTTPS 协议加密通信数据,防止中间人攻击。在 PHP 端对输入数据进行验证和过滤,防止 SQL 注入。存储密码时使用 password_hash() 函数进行哈希处理。
数据库准备
创建 users 表存储用户信息:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL
);
测试流程
在 Android 应用中输入用户名和密码,点击登录按钮。观察网络请求是否成功发送到 PHP 后端,并检查返回的响应是否符合预期。可以使用 Postman 等工具单独测试 PHP 接口功能是否正常。






