gpt4 book ai didi

php - 如何为iOS应用程序设置数据库?

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

我目前正在制作一个 iOS 应用程序,用户必须登录或创建帐户(然后登录)。为此,我需要以某种方式连接到数据库。该数据库是 SQL 类型,并在 XAMPP 中使用 phpmyadmin 创建。目前它只包含一张名为“user”的表,其属性为“id”、“email”和“password”。我创建了两个名为signin.php 和signup.php 的PHP 脚本,并将其放置在c:\xampp\htdoc 目录中,以便我可以通过localhost 加载脚本。以下是注册脚本:

<?php

$email = $_GET['email'];
$password1 = $_GET['password1'];

$con=mysqli_connect("localhost","root","<mypassword>","app_db");

if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$sql = "INSERT INTO user (email, password) VALUES ('$email', '$password')";

if ($con->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}

mysqli_close($con);

?>

要创建新帐户,请在浏览器中编写以下内容: http://localhost/signup.php?email=youremail@something.com.dk&password=123456

我的问题是,这是否是正确的方法?我真的很难用谷歌搜索正确的东西,因为我不知道要搜索什么。我非常感谢您的帮助,如果列出的信息不充分,请告诉我。

最佳答案

首先:

您“必须”使用 https 而不是 http,否则您的客户密码将在没有任何保护的情况下在互联网上传播。

另外:目前,您的用户可以在您的服务器上进行 SQL 注入(inject)。使用此代码:

if($stmt = $mysqli->prepare("INSERT INTO user (email, password) VALUES (?, ?)"))
{
$stmt->bind_param('ss',$email,$password); // the variables are of type string->s and they are ordered in the way the questionmarks are in the query!
$stmt->execute();
$affected_rows = $stmt->affected_rows;
$stmt->close();

if($affected_rows == 1)
{
echo "New record created successfully";
}
}

此外,您可能不应该在“普通测试”中回显响应,而应返回一些机器可读的内容(例如 json),以便您的应用程序可以向用户显示有用的结果。

关于php - 如何为iOS应用程序设置数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30829300/

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