Android登录和注册用户名密码并连云数据库MySQL详细代码步骤
时间: 2023-06-13 12:05:29 浏览: 55
以下是Android登录和注册的基本步骤,包括与MySQL数据库的连接和相关的查询操作。
1. 创建一个Android项目,并添加以下依赖项:
```
implementation 'com.android.volley:volley:1.1.1'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
```
2. 在布局文件中添加控件,如EditText、Button等,用于输入用户名和密码以及提交表单。
3. 在MainActivity.java中实现以下方法:
- registerUser():用于将用户注册信息插入到数据库中。
```java
private void registerUser() {
final String name = editTextName.getText().toString().trim();
final String email = editTextEmail.getText().toString().trim();
final String password = editTextPassword.getText().toString().trim();
StringRequest stringRequest = new StringRequest(Request.Method.POST, REGISTER_URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(MainActivity.this, response, Toast.LENGTH_LONG).show();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this, error.toString(), Toast.LENGTH_LONG).show();
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put(KEY_NAME, name);
params.put(KEY_EMAIL, email);
params.put(KEY_PASSWORD, password);
return params;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
```
- loginUser():用于验证用户登录信息并从数据库中检索数据。
```java
private void loginUser() {
final String email = editTextEmail.getText().toString().trim();
final String password = editTextPassword.getText().toString().trim();
StringRequest stringRequest = new StringRequest(Request.Method.POST, LOGIN_URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if (response.trim().equals("success")) {
openProfile();
} else {
Toast.makeText(MainActivity.this, "Login failed", Toast.LENGTH_LONG).show();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this, error.toString(), Toast.LENGTH_LONG).show();
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put(KEY_EMAIL, email);
params.put(KEY_PASSWORD, password);
return params;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
```
- openProfile():用于打开成功登录后的用户资料页面。
```java
private void openProfile() {
Intent intent = new Intent(this, ProfileActivity.class);
intent.putExtra(KEY_EMAIL, editTextEmail.getText().toString().trim());
startActivity(intent);
}
```
4. 在PHP服务器上创建以下文件:
- config.php:用于配置数据库连接信息。
```php
<?php
define('DB_USER', "your_username"); // Your database user name
define('DB_PASSWORD', "your_password"); // Your database password (mention your db password here)
define('DB_DATABASE', "your_database_name"); // Your database name
define('DB_SERVER', "localhost"); // db server (Mostly will be 'local' host)
?>
```
- db_connect.php:用于连接数据库。
```php
<?php
class DB_CONNECT {
function __construct() {
$this->connect();
}
function __destruct() {
$this->close();
}
function connect() {
require_once __DIR__ . '/config.php';
$con = mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD) or die(mysqli_error());
$db = mysqli_select_db($con, DB_DATABASE) or die(mysqli_error()) or die(mysqli_error());
return $con;
}
function close() {
mysqli_close();
}
}
?>
```
- register.php:用于处理用户注册信息。
```php
<?php
require_once __DIR__ . '/db_connect.php';
$db = new DB_CONNECT();
if (isset($_POST['name']) && isset($_POST['email']) && isset($_POST['password'])) {
$name = $_POST['name'];
$email = $_POST['email'];
$password = $_POST['password'];
$result = mysqli_query($con, "INSERT INTO users(name, email, password) VALUES('$name', '$email', '$password')");
if ($result) {
echo "success";
} else {
echo "error";
}
} else {
echo "required fields missing";
}
?>
```
- login.php:用于验证用户登录信息并从数据库中检索数据。
```php
<?php
require_once __DIR__ . '/db_connect.php';
$db = new DB_CONNECT();
if (isset($_POST['email']) && isset($_POST['password'])) {
$email = $_POST['email'];
$password = $_POST['password'];
$result = mysqli_query($con, "SELECT * FROM users WHERE email = '$email' AND password = '$password'");
if (mysqli_num_rows($result) > 0) {
echo "success";
} else {
echo "error";
}
} else {
echo "required fields missing";
}
?>
```
以上是Android登录和注册用户名密码并连云数据库MySQL的详细代码步骤。需要注意的是,为了保证安全性,密码应该进行加密处理。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)