AJAX的路径问题

时间:2015-12-07 23:55:09

标签: php html ajax

好吧我有2个文件夹。这就是我的布局现在在我的服务器上的样子。

文件夹:

  • 的Ajax /

  • 处理器/

文件:

  • 的login.php

  • Carelogin.php

最初我没有处理器文件夹。所以我的carelogin.php下面有我的login.php文件,一切正常。

现在,因为我将login.php文件放入处理器文件夹并更改了我的ajax文件夹中的functions.js中的路径,所有内容都搞砸了。

这是我的ajax功能。

$(function() {
      $("#submit_login").click(function() {
        var username = $("input#username").val();
        if (username == "") {
           $('.errormess').html('Please Insert Your Username'); 
           return false;
        }
        var password = $("input#password").val();
        if (password == "") {
           $('.errormess').html('Please Insert Your Password'); 
           return false;
        }


        var dataString = 'username='+ username + '&password=' + password;
        $.ajax({
          type: "POST",
          url: '/processor/login.php',
          data: dataString,
          dataType: "html",
          success: function(data) {
          if (data == 0) {
          $('.errormess').html('Invalid username/password combination');
            } else {
                $('.errormess').html('<b style="color:green;">Thanks for loggin in</b>');   
                document.location.href = 'home.php';    
            }
          }
         });
        return false;
        });
    });

正如您所看到的,我已将其指向/processor/login.php并且它不再起作用。只是不断登录,就像它甚至不再检查login.php文件一样。即使有错误的信用,我现在仍然可以登录。

当我有那个url只是指向login.php时,一切都很完美。

这是我的carelogin.php

<!DOCTYPE html>
  <html>
  <head>

      <meta charset="UTF-8"/>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link type="text/css" rel="stylesheet" href="css/pagecss/logincss.css" />
          <script type="text/javascript" src="ajax/jquery.js"></script>
          <script type="text/javascript" src="ajax/functions.js"></script>


  </head>
  <body>
    <div class='container'>
        <img src='images/tigger.png' class='logo'/>
          <div class="login_form">
                <form method="POST" action="/processor/login.php">

    <input type="text" name="username" id="username" placeholder="Username" /><br />

    <input type="password" name="password" id="password" placeholder="Password" /><br />
    <input type="submit" id="submit_login" name="submit" class="inputbutton grey" value="Login" />
    <span class="login_loading"></span>
    <span class="errormess"></span>
    </form>
            <p class='version'>Version 1.6.1119.15 </p>
         </div>
    </div>
  </body>
  </html>

最后,这是我的login.php文件

<?php
    session_start();
    require 'connect.php';
    if(mysqli_connect_errno()) {
      echo 'Failed to Connect to MySQL' . mysqli_connect_errno();
    }
    if (isset($_POST)) { 
      $user = $_POST['username'];
      $pass =  md5($_POST['password']);
      $query = mysqli_query($conns, "SELECT * FROM tech WHERE username = '$user' and password = '$pass'") or die("Can not query the DB");
      $count = mysqli_num_rows($query);
      if($count == 1) {
      $_SESSION['username'] = $user;
        echo $user;
      }
    }
    ?>

2 个答案:

答案 0 :(得分:0)

我在你的文件夹列表中看到:

'Processor' 

在您的ajax调用中,您的网址指向:

'/processor/login.php'

请记住,PHP区分大小写

如果你的ajax cal在'Ajax文件夹'中,你可能需要这样做:

'../processor/login.php'

答案 1 :(得分:0)

添加:

else{
 echo $count;
}

后:

if($count == 1) {
   $_SESSION['username'] = $user;
   echo $user;
}

您的ajax条件将始终执行else语句,因为返回到您的ajax的值是用户的用户名。

也可以编辑:

<script type="text/javascript" src="ajax/jquery.js"></script>
<script type="text/javascript" src="ajax/functions.js"></script>

到此:

<script type="text/javascript" src="../ajax/jquery.js"></script>
<script type="text/javascript" src="../ajax/functions.js"></script>