Php 不能调用任何其他函数,然后死我的代码

Php 不能调用任何其他函数,然后死我的代码,php,html,ajax,Php,Html,Ajax,我正在使用ajax和php构建登录。我的代码工作得很好,直到我在php代码中调用另一个类为止。当死我的php代码时,我得到int,甚至放了一个var_转储。你可以在我的php代码中看到,我已经把它注释掉了,就像我真正想做的那样 视图: <body> <p>&nbsp;</p> <div id="content"> <h1>Login Form</h1> <form id="form1" name="fo

我正在使用ajax和php构建登录。我的代码工作得很好,直到我在php代码中调用另一个类为止。当死我的php代码时,我得到int,甚至放了一个var_转储。你可以在我的php代码中看到,我已经把它注释掉了,就像我真正想做的那样

视图:

<body>
<p>&nbsp;</p>
 <div id="content">
  <h1>Login Form</h1>
 <form id="form1" name="form1" action="stack.php"  method="post">
<p>
  <label for="username">Username: </label>
  <input type="text" name="username" id="username" />
</p>
<p>
  <label for="password">Password: </label>
  <input type="password" name="password" id="password" />
</p>
<p>
  <input type="button" id="login" name="login" value="submit"/>
   </p>
  </form>
   <div id="message"></div>
  </div>
    <script type="text/javascript">
       $(document).ready(function(){
       $("#login").click(function(){
       var action = $("#form1").attr('action');
       var form_data = {
         username: $("#username").val(),
         password: $("#password").val(), 
         is_ajax: 1
    };
    $.ajax({
        type: 'POST',
        url: action,
        data: form_data,
        success: function(data){
            if(typeof(data) != 'undefined' && (data == 'success' || data == 'error')){
                if(data == 'success'){
                    $("#form1").slideUp('slow', function() {

                        $("#message").html("<p class='success'>You have logged in
                                      successfully!</p>");
                    });
                } else if(data == 'error'){
                    $("#form1").slideUp('slow', function() {
                        $("#message").html("<p class='error'>Invalid username and/or
                         password.</p>");
                    });
                }
            } else {
                console.log("här");
                console.log(data);
                $("#message").html("<p class='error'>Error to connect to server</p>");   
            }
        }
    });
    return false;
});
});
   </script>
  </body>
 </html>
试一试

而不是

exit('success');
在函数的末尾,还应该处理非ajax登录

php应该类似于:-

$loginclass=new DologinHandler();
$loginclass->Login();

如果你文章中的代码都是你所写的PHP代码,那么它不会做任何事情。如果您的客户期望“成功”或“错误”,那么它得到一个空字符串可能就是您收到错误消息的原因

在PHP中,当您声明一个类时,代码仅在您实例化该类时执行。您可以通过将Waygood在其答案中编写的两行代码添加到stack.php文件的底部来实现这一点

<?php
/* All your PHP code */

$loginclass=new DologinHandler();
$loginclass->Login();

而且,为了获得良好的实践效果,如果上面编写的代码中没有附加任何内容,请去掉底部的?>,这样可以为您节省一些麻烦。但与这个问题无关。

如果你称这个类为-1,会发生什么。太模糊了。请添加您遇到的错误的信息。首先想到的是:您是否100%确定在尝试使用类UserHandler之前需要它?ajax实际上希望返回成功,然后您就登录了。但如果我只是给你输入这样一个var_dump。它会杀死整个代码。我必须调用用户处理程序来确定我对数据库的控制在哪里。它是一个用来告诉用户它是真是假的工具。@佩尔十Cate@MaxTorstensson使用var_dump查看变量/数组类型和值。您不能在ajax结果上使用var_dump,请让我知道您到底想做什么?我同意这是更好的代码,但它与此问题有何关系?这会有什么不同?我看不出为什么上面的代码不应该工作,而你的代码应该工作。不工作。如果设置echo success并返回true,则无法调用其他类和函数,或者var_dumpphp是stack.php。我收到了相同的错误消息:连接到服务器时出错您的意思是什么?登录到哪里?未阅读您的更新。如果你编辑你的帖子,我将撤销-1。
$loginclass=new DologinHandler();
$loginclass->Login();
<?php
/* All your PHP code */

$loginclass=new DologinHandler();
$loginclass->Login();