繁体   English   中英

PHP返回中的框

[英]Boxes in PHP Return

我正在使用通过不同开关运行的登录表单,因此可以在同一页面上使用这些功能。

<?php require_once($_SERVER['DOCUMENT_ROOT']."/config.php");
 if(isset($_POST['process'])) {
     print_r($_POST);
        switch($_POST['process']) {
            case "login":
            echo "Boxes";
            break;
            case "register":
            Register($_POST['user'],$_POST['password'],$_POST['newsletter']);
            break;
            case "forgot_pw":
            ForgotPassword($_POST['user']);
            break;

        }
}
else { ?>
                    <h1>Login</h1><br>
                  <form id="login" action="<?php echo $_SERVER['PHP_SELF']; ?>">
                  <input type="hidden" name="process" id="process" value="login">
                  <p class="error"></p>
                    <input type="text" name="user" id="user" placeholder="Username">
                    <input type="password" name="pass" id="pass" placeholder="Password">
                    <input type="submit" name="login" class="login loginmodal-submit" value="Login">
                  </form>
<script>
    $("#login").submit(function(e) {
        e.preventDefault();
        var continuescript = true;
        var username = $("#user").val();
        var password = $("#pass").val();
        if(username == "") { var continuescript = false; $(".error").html("<i class='fa fa-cross'></i> Username Cannot Be Empty");
            $("#user").css("border-color", "#FF3D3D"); }
        if(password == "") { var continuescript = false; $(".error").append("<p><i class='fa fa-cross'></i> Password Cannot Be Empty</p>"); 
            $("#pass").css("border-color", "#FF3D3D"); }
        if(continuescript == true) {
             $.ajax({
                type: "POST",
                url: $("#login").attr("action"),
                data: $("#login").serialize(),
                cache: false,
                success: function(data) {
                    alert(data);
                }
            });
        }
    });
</script>
<?php } ?>

除了在返回值周围返回小框if(data == "thisdata")这会影响if(data == "thisdata")返回值if(data == "thisdata")的问题之外,该返回值工作正常。 有人知道这些盒子是什么或为什么出现吗? 在此处输入图片说明

这些小框是因为最后一个?>之后文件中有一些控制字符。 通常建议您不要以?>结尾脚本。 不需要它,并且如果后面有不可见的字符,它们将在返回的数据中发送,并导致类似的问题。

因此,删除该标签及其后的所有内容。 文件末尾应为

<?php }

我不确定这些行应该在else { ?>else { ?><?php } ?> ,它们可能是导致编码问题的原因,但也可能与您的html缺少所有<!DOCTYPE html><head><body>等...

我对这样的东西使用的逻辑是这样的:

<?php require_once($_SERVER['DOCUMENT_ROOT'] . "/config.php");

$command = isset($_POST['process']) ? $_POST['process'] : NULL;

switch ($command) {
    case "login":
        echo "Boxes";
        // do some operations, redirect etc...
        exit; // exit instead of break so the rest of the page is not served
    case "register":
        Register($_POST['user'], $_POST['password'], $_POST['newsletter']);
        // do some operations, redirect etc...
        exit;
    case "forgot_pw":
        ForgotPassword($_POST['user']);
        // do some operations, redirect etc...
        exit;
};
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<h1>Login</h1><br>

<form id="login" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <input type="hidden" name="process" id="process" value="login">

    <p class="error"></p>
    <input type="text" name="user" id="user" placeholder="Username">
    <input type="password" name="pass" id="pass" placeholder="Password">
    <input type="submit" name="login" class="login loginmodal-submit" value="Login">
</form>
<script>
    $("#login").submit(function (e) {
        e.preventDefault();
        var continuescript = true;
        var username = $("#user").val();
        var password = $("#pass").val();
        if (username == "") {
            var continuescript = false;
            $(".error").html("<i class='fa fa-cross'></i> Username Cannot Be Empty");
            $("#user").css("border-color", "#FF3D3D");
        }
        if (password == "") {
            var continuescript = false;
            $(".error").append("<p><i class='fa fa-cross'></i> Password Cannot Be Empty</p>");
            $("#pass").css("border-color", "#FF3D3D");
        }
        if (continuescript == true) {
            $.ajax({
                type: "POST",
                url: $("#login").attr("action"),
                data: $("#login").serialize(),
                cache: false,
                success: function (data) {
                    alert(data);
                }
            });
        }
    });
</script>
</body>
</html>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM