【问题标题】:php ajax response textphp ajax 响应文本
【发布时间】:2017-03-06 16:53:28
【问题描述】:

我有这个 AJAX 注册表单,我想做一个像 that 这样的齿轮游戏

每当服务器注册时,我希望此栏变为绿色,所以我所做的就是回显我想调用的函数的名称,如下所示:

            echo "passed";
            if ($query = $sql->prepare("INSERT INTO business(password , username , bname) VALUES(? , ? , ?)")) {
                $query->bind_param("sss" , $password , $username , $bname );
                $query->execute();
            } else {
                printf("ErrorMessage: %s \n" , $sql->error);
            }

            if ($query2 = $sql->prepare("INSERT INTO user_business_data(email , firstname) VALUES(? , ? )")) {
                $query2->bind_param('ss' , $email , $firstname);
                $query2->execute();
            } else {
                printf('ErrorMessage: %s\n' , $sql->error);
            }
            $query3 = mysqli_query($sql ,"INSERT INTO user_time_stamp_business(time_stamp) VALUES (CURRENT_TIMESTAMP)");

            $query2->close();
            $query->close();
            $sql->close();
            if ($query && $query2) {
                sleep(3);
                echo "success";
                exit;
            } 

                            if (http.responseText == "passed") {
                            works();
                            document.getElementById("main-container").style.transform = "translateY(8%)";
                        } else if (http.responseText == "success") {
                            document.getElementById("alert").style.backgroundColor = "green";
                        }

问题在于它创建了一个长字符串,并且所有这些都聚集在一起,而不是单独“通过”并在之后“成功”

【问题讨论】:

  • 永远不要存储纯文本密码!请使用 PHP 的 built-in functions 来处理密码安全问题。如果您使用的 PHP 版本低于 5.5,您可以使用 password_hash() compatibility pack。在散列之前,请确保您 don't escape passwords 或对它们使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。
  • 在此之前它们已经过哈希了,不用担心......
  • 这只是我的一小段代码
  • 创建一个正确的响应返回,例如在 JSON 编码的数组中,并在返回时解析该数组以查找错误、成功或您需要的任何其他内容。
  • 你能举个例子吗?

标签: javascript php ajax


【解决方案1】:

您可以使用echo "passed",然后使用echo "\n" . "success";

之后,您将像这样拆分 http.responseText 变量:http.responseText.split("\n")
然后您可以获取返回数组的最后一项并将其用作您的最后一个脚本响应。

这个新变量应该有你需要的:

var status = http.responseText.split("\n").reverse()[0];

(见Javascript how to split newline

【讨论】:

  • 如何解决他们聚集在一起的问题?
  • 通过在每个状态后添加一个新行来修复它。 ("\n") 如果需要,可以使用任何其他分隔符!不要忘记更新.split(SELECTOR) javascript 函数
猜你喜欢
  • 1970-01-01
  • 2013-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-06
  • 1970-01-01
  • 2013-03-16
相关资源
最近更新 更多