我试图通过传递PHP变量来验证通过javascript输入登录。由于某种原因,我无法正确执行它。我很感激你的意见。这是代码:
PHP:
$personal = mysqli_query($connect,"SELECT * FROM basic ORDER BY user_id DESC ");
while($row = mysqli_fetch_array($personal)){
$user = $row['username'];
$user_password = $row['password'];
}
Javascript / jQuery:
function enter_log() {
var login_username = $("#username_field_log");
var pass_password = $("#pass_field_log");
var button = $("#enter_field_log");
var php = "<?= echo $user; ?>";
if ((login_username.val() == "") || (pass_password.val() == "")) {
$("#user_log_info").fadeIn('slow');
$("#user_log_info").text("Not a proper login input");
login_username.addClass("error");
pass_password.addClass("error");
return false;
}
else if ((login_username.val() != php ) || (pass_password.val() == "")) {
$("#user_log_info").fadeIn('slow');
$("#user_log_info").text("Not a proper login input");
login_username.addClass("error");
pass_password.addClass("error");
return false;
}
}
所以换句话说 - 当字段为空时代码应该返回false(并且它会这样)但是当输入正确时它不会返回TRUE(我的意思是当用户名是正确的时候)所以我假设PHP变量$user
未正确传递给javascript?
答案 0 :(得分:1)
验证不应该通过Javascript完成。出于各种原因,如果您在那里验证,我可以破解Firebug或Chrome并破解您的网页。您应该使用PHP代码进行验证,并确保正确清理输入。
关于PHP标签的使用:
var php = "<?php echo $user; ?>";
你应该如何编写代码。根据PHP手册
http://www.php.net/manual/en/language.basic-syntax.phpmode.php
1. <?php echo 'if you want to serve XHTML or XML documents, do it like this'; ?>
2. <script language="php">
echo 'some editors (like FrontPage) don\'t
like processing instructions';
</script>
3. <? echo 'this is the simplest, an SGML processing instruction'; ?>
<?= expression ?> This is a shortcut for "<? echo expression ?>"
4. <% echo 'You may optionally use ASP-style tags'; %>
<%= $variable; # This is a shortcut for "<% echo . . ." %>
第1项实际上是首选格式。
短标签(示例三)仅在通过short_open_tag php.ini配置文件指令启用时才可用,或者如果PHP配置了--enable-short-tags选项。
答案 1 :(得分:0)
应为var php = "<? echo $user; ?>";
或
var php = "<?= $user; ?>";
不需要echo和<?=
答案 2 :(得分:0)
我同意你不应该验证这样的事情。
使用JS验证提交表单以确保其完成并且所有部分都已完成,然后使用php或任何脚本语言进行服务器端验证。
如果你想要它,那么如果它失败了,那么JS会显示一条消息,而不是传递用户细节等,然后将一个简单的php布尔值传递给变量
例如
var userValid =
php $ valResult将是db check等给出的结果
然后使用这个js变量。
答案 3 :(得分:-1)
一个简单,可靠的PHP到Javascript编码器是json_encode。
var jsVal = <?php echo json_encode($phpVal); ?>; // note trailing semicolon!