[英]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.