用于查询从app inventor发送的用户输入的php脚本是什么?创建此登录页面的块是什么?

用于查询从app inventor发送的用户输入的php脚本是什么?创建此登录页面的块是什么?,php,mysql,app-inventor,Php,Mysql,App Inventor,我已经在App Inventor中设置了提交数据的块,因为以前我这样做了,而且它工作了,但是在检索数据时它也工作了,除非我意识到我已经获取了表中的所有数据并将其传递到TinyDB,然后从TinyDB比较与用户输入匹配的文本字符串 是的,这允许我创建一个登录页面,但我是通过AppInventor而不是MySQL来比较数据的。因此,我所做的是尝试将字符串从App Inventor发送到php文件中,然后假设它将查询哪个将发送用户id、用户名和密码,其中用户名和密码将与App Inventoruser

我已经在App Inventor中设置了提交数据的块,因为以前我这样做了,而且它工作了,但是在检索数据时它也工作了,除非我意识到我已经获取了表中的所有数据并将其传递到TinyDB,然后从TinyDB比较与用户输入匹配的文本字符串

是的,这允许我创建一个登录页面,但我是通过AppInventor而不是MySQL来比较数据的。因此,我所做的是尝试将字符串从App Inventor发送到php文件中,然后假设它将查询哪个将发送用户id、用户名和密码,其中用户名和密码将与App Inventoruser的$\u GET请求匹配

最后的结果是,查询的数据将作为一行字符串发送给App Inventor,然后我可以使用TinyDB存储用户id,以便在下一页上调用id,然后根据我的应用程序需要查询用户数据

这是密码

//Details in asterisk to hide.
<?php
define('DB_SERVER', '******');
define('DB_USERNAME', '*******');
define('DB_PASSWORD', '*******');
define('DB_DATABASE', '*******');
$db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);






$query = "SELECT user_id, username, user_password FROM User_Login WHERE                                                        username='$username' AND user_password='$password'",
$username = mysqli_real_escape_string($db,$_GET['username']),
$password = mysqli_real_escape_string($db,$_GET['password']);

// Perform Query
$result = mysqli_query($db,$query);

// Check result
// This shows the actual query sent to MySQL, and the error. Useful for     debugging.
if (!$result) {
$message  = 'Invalid query: ' . mysqli_error($db) . "\n";
$message .= 'Whole query: ' . $query;
die($message);
}

// Use result
// Attempting to print $result won't allow access to information in the   resource
// One of the mysql result functions must be used

while ($row = mysqli_fetch_assoc($result)) {
echo $row['$username'];
echo $row['username'];
echo $row['user_password'];
}

// Free the resources associated with the result set
// This is done automatically at the end of the script
mysqli_free_result($result);
?>

这是我的一个数据库php搜索文件。你可以随便拿,想用就用。我加入了一些评论,以帮助澄清。欢迎大家把它做得更好。当我需要进行search.php时,我会使用它作为模板

<?php

    mysql_connect("localhost", "root", "12450") or die("Error connecting to database: ".mysql_error());
    /*
        localhost - it's location of the mysql server, usually localhost
        root - your username
        third is your password

        if connection fails it will stop loading the page and display an error
    */

    mysql_select_db("myDatabase") or die(mysql_error());
    /* tutorial_search is the name of database we've created */

     ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Search Results</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>

<body>

<div data-role="page" id="SearchResultsPage" data-theme="b" data-add-back-btn="true">
    <div data-role="header">
        <h1>Search Results</h1>
    </div>

<?php

    $query = $_GET['query']; 
    // gets value sent over search form

    $min_length = 3;
    // you can set minimum length of the query if you want

    if(strlen($query) >= $min_length){ // if query length is more or equal minimum length then

        $query = htmlspecialchars($query); 
        // changes characters used in html to their equivalents, for example: < to &gt;

        $query = mysql_real_escape_string($query);
        // makes sure nobody uses SQL injection

        $raw_results = mysql_query("SELECT * FROM emplist
            WHERE (`lfname` LIKE '%".$query."%') OR (`id` LIKE '%".$query."%')") or die(mysql_error());

        // * means that it selects all fields, you can also write: `id`, `title`, `text`
        // articles is the name of our table

        // '%$query%' is what we're looking for, % means anything, for example if $query is Hello
        // it will match "hello", "Hello man", "gogohello", if you want exact match use `title`='$query'
        // or if you want to match just full word so "gogohello" is out use '% $query %' ...OR ... '$query %' ... OR ... '% $query'

        if(mysql_num_rows($raw_results) > 0){ // if one or more rows are returned do following

            while($results = mysql_fetch_array($raw_results)){
            // $results = mysql_fetch_array($raw_results) puts data from database into array, while it's valid it does the loop

                echo "<h4><p>".$results['lfname']."</h4>"." ".$results['phonenum']." <br> MCI #".$results['id']." <br> ".$results['state']." ".$results['zip']."</p>";
                // posts results gotten from database
            }

        }
        else{ // if there is no matching rows do following
            echo "No results found";
        }

    }
    else{ // if query length is less than minimum
        echo "ERROR Minimum length is ".$min_length;
    }

?>

</body>

<div data-role="content"></div> 
        <input type="button" name="bIndex" value="Back" onclick="location.href='Index.php'">
<div data-role="footer" data-theme="b">
        <h4>____?____?____?___?____ &copy; 2016</h4>
</div>


</html>

那是一场灾难。您将sql与php混合在一起,这是不可能的。不能在字符串中运行php代码,更不用说生成有效的sql代码了。“sql也完全崩溃了,”Learnaboutstatements for说。即使是这样也不安全!永远不要存储纯文本密码!请使用PHP来处理密码安全性。如果您使用的PHP版本低于5.5,则可以使用密码\u散列。在散列之前,请确保您在它们上安装或使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。实际上,我对php是新手。我不介意sql注入,因为这是我最后一年的项目,只需要让它工作起来。。那么,有没有办法修改代码,让它显示我需要的内容?谢谢:DInvalid查询:您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以了解在第1行“用户密码”附近使用的正确语法。整个查询:从用户登录中选择用户id、用户名、用户密码,其中“用户名”=,“用户密码”=,