Javascript PHP注册表单不处理AJAX数据

Javascript PHP注册表单不处理AJAX数据,javascript,php,jquery,ajax,forms,Javascript,Php,Jquery,Ajax,Forms,我可能很愚蠢,但我正在尝试使用对PHP页面的AJAX调用来处理注册表单。我的PHP页面本身工作得很好,但是当我试图通过AJAX将表单数据发布到PHP页面时,什么都没有发生 这是我的AJAX调用: $(document).ready(function ($) { $("#register").submit(function(event) { event.preventDefault(); $("#message").html('')

我可能很愚蠢,但我正在尝试使用对PHP页面的AJAX调用来处理注册表单。我的PHP页面本身工作得很好,但是当我试图通过AJAX将表单数据发布到PHP页面时,什么都没有发生

这是我的AJAX调用:

$(document).ready(function ($) {    

$("#register").submit(function(event) {
            event.preventDefault();
                $("#message").html('');
                var values = $(this).serialize();
                    $.ajax({
                    url: "http://cs11ke.icsnewmedia.net/DVPrototype/external-data/register.php",
                    type: "post",
                    data: values,
                    success: function (data) {
                    $("#message").html(data);
                    }
                    });
                }); 

});
表格如下:

<div id="registerform">
    <form method='post' id='register'>
        <h3>Register</h3>
        <p>Fill in your chosen details below to register for an account</p>
        <p>Username: <input type='text' name='username' value='' /><br />
           Password: <input type='password' name='password' ><br />
           Repeat Password: <input type='password' name='repeatpassword'></p>
           <input name='submit' type='submit'  value='Register' >
           <input name='reset' type='reset' value='Reset'><br /><br />
     </form>      
           <div id="message"></div>                          
</div>

登记
在下面填写您选择的详细信息以注册帐户

用户名:
密码:
重复密码:



这是我的PHP页面:

<?php function clean_string($db_server = null, $string){
        $string = trim($string);
        $string = utf8_decode($string);
        $string = str_replace("#", "&#35", $string);
        $string = str_replace("%", "&#37", $string);
        if (mysqli_real_escape_string($db_server, $string)) {
            $string = mysqli_real_escape_string($db_server, $string);
        }
        if (get_magic_quotes_gpc()) {
            $string = stripslashes($string);
        }
        return htmlentities($string);
    }

    function salt($string){
        $salt1 = 'by*';
        $salt2 = 'k/z';
        $salted = md5("$salt1$string$salt2");
        return $salted;
    }
?>

<?php
//form data                             
$submit = trim($_POST['submit']);
$username = trim($_POST['username']);
$password = trim($_POST['password']);
$repeatpassword = trim($_POST['repeatpassword']);
// create variables
$message = '';
$s_username = '';

    //connect to database


注意:这与其说是一个答案,不如说是一个注释,但因为它包含代码,所以更具可读性。

==编辑==

我检查了你的代码,你的表单没有指定id

第一:使用您的控制台…您是否在控制台中看到XMLHTTPREQUEST? 回答/标题等是什么?我怎么强调都不过分:使用你的控制台,在这里报告

接下来是过于复杂的ajax调用…将其简化为:

$('#register').submit(function(){
    $('#message').html('');

    $.post("http://cs11ke.icsnewmedia.net/DVPrototype/external-data/register.php",
        $(this).serialize(),
        function(response){
            console.log(response);
            $('#message').html(response);
        }
    );

    return false;
});
在PHP中,将此项放在顶部,以检查是否有任何内容通过:

die(json_encode($_POST));

请使用Firebug或任何其他工具进行检查ḱ 如果调用AJAX脚本,它的答案是什么?如果脚本中有任何错误,我的表单没有向数据库提交数据。 这是PHP代码:

<?php require 'core.inc.php'; ?>
<?php require 'connection.inc.php'; ?>
<?php 

if(isset($_POST['username']) && isset($_POST['password']) && 
    isset($_POST['password_again']) && isset($_POST['firstname']) && 
    isset($_POST['surname'])){

  $username = $_POST['username'];
  $password = $_POST['password'];
  $hashed_password = sha1($password);
  $password_again = sha1('password again');
  $username = $_POST['firstname'];
  $password = $_POST['surname'];

  //check if all fields have been filled
  if(!empty($username)&& !empty($password) && !empty($password_again) && 
      !empty($firstname)&& !empty($surname)){

    if($password != $password_again){
      echo 'Passwords do not match.';
    } else {    
      //check if user is already registered;
      $query = "SELECT username FROM user WHERE username = {$username} ";
      $query_run = mysqli_query($connection, $query);

      if (mysqli_num_rows ($query_run)==1){

        echo 'User Name '.$username.' already exists.';
      } else {
        //register user
        $query = "INSERT INTO `user` VALUES ('', '".$username."', 
        '".$password_hashed."','".$firstname."','".$surname."',)";

      }

      if($query_run = mysqli_query($connection, $query)){
        header('Location: reg_succed.php');
      } else {
        echo 'Sorry we couldn\'t register you at this time. try again later';
      }
    }

  }

} else {
  echo 'All fields are required';
}   

?>

<h2>Create New User</h2>

<form id="form" action="<?php echo $current_file ?>" method="POST">
<fieldset title="Login details" id="frame"> 
<legend>USER LOGIN DETAILS</legend>
<label>User Name:</label><br/>
<input type="text" name = "username" id = "username" value="<?php if(isset($username)){ echo $username; } ?>"  maxlength="50" placeholder="Enter your Username" required/><br/>

<label>First Name:</label><br/>
<input type="text" name="firstname" id = "firstname" value="<?php if(isset($firstname)){ echo $firstname;} ?>" maxlength="50" placeholder="Enter your Firstname" required/><br/>                    
<label>Surname:</label><br/>
<input type="text" name="surname" id="surname" value="<?php if(isset($surname)) {echo $surname;} ?>" maxlength="50" placeholder="Enter your Surname" required/><br/>

<label>Password:</label><br/>
<input type="password" name="password" id="password"   maxlength="50" placeholder="Enter your Password" required/><br/>

<label>Password Again:</label><br/>
<input type="password" name="password_again" id="password again"  maxlength="50"  placeholder="Enter your Password" required/><br/>

<input type="submit" name = "register" id = "register" value="Register">
</fieldset>
</form>

connection code
<?php
require_once("constants.php");

// 1. Create a database connection
$connection = mysqli_connect(DB_SERVER,DB_USER,DB_PASS, DB_NAME);
if (!$connection) {
    die("Database connection failed: " . mysqli_error($connection));
}

// 2. Select a database to use 
$db_select = mysqli_select_db($connection, DB_NAME);
if (!$db_select) {
    die("Database selection failed: " . mysqli_error($connection));

}
?>

core.inc.php code
<?php
ob_start();
session_start();
$current_file = $_SERVER['SCRIPT_NAME'];

if(isset( $_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER'])){
$http_referer = $_SERVER['HTTP_REFERER'];
}



?>


请修改上述PHP代码并删除数据库凭据(最好尽快更改,因为您刚刚在网上发布了数据库设置)!这同样适用于你用来加密的盐。谢谢,真是个白痴。@kathryn:register.php是同一个来源吗?或者您正在使用localhost进行测试?另外,您是否使用了任何php框架?@Kathryn,您的请求是否得到了提高如果它在同一个组织中,为什么您必须放置url“”“您不能使用:”external data/register.php“如果文件夹结构不正确,我只是想先让它工作一下,#registerlogin是另一个页面
<?php require 'core.inc.php'; ?>
<?php require 'connection.inc.php'; ?>
<?php 

if(isset($_POST['username']) && isset($_POST['password']) && 
    isset($_POST['password_again']) && isset($_POST['firstname']) && 
    isset($_POST['surname'])){

  $username = $_POST['username'];
  $password = $_POST['password'];
  $hashed_password = sha1($password);
  $password_again = sha1('password again');
  $username = $_POST['firstname'];
  $password = $_POST['surname'];

  //check if all fields have been filled
  if(!empty($username)&& !empty($password) && !empty($password_again) && 
      !empty($firstname)&& !empty($surname)){

    if($password != $password_again){
      echo 'Passwords do not match.';
    } else {    
      //check if user is already registered;
      $query = "SELECT username FROM user WHERE username = {$username} ";
      $query_run = mysqli_query($connection, $query);

      if (mysqli_num_rows ($query_run)==1){

        echo 'User Name '.$username.' already exists.';
      } else {
        //register user
        $query = "INSERT INTO `user` VALUES ('', '".$username."', 
        '".$password_hashed."','".$firstname."','".$surname."',)";

      }

      if($query_run = mysqli_query($connection, $query)){
        header('Location: reg_succed.php');
      } else {
        echo 'Sorry we couldn\'t register you at this time. try again later';
      }
    }

  }

} else {
  echo 'All fields are required';
}   

?>

<h2>Create New User</h2>

<form id="form" action="<?php echo $current_file ?>" method="POST">
<fieldset title="Login details" id="frame"> 
<legend>USER LOGIN DETAILS</legend>
<label>User Name:</label><br/>
<input type="text" name = "username" id = "username" value="<?php if(isset($username)){ echo $username; } ?>"  maxlength="50" placeholder="Enter your Username" required/><br/>

<label>First Name:</label><br/>
<input type="text" name="firstname" id = "firstname" value="<?php if(isset($firstname)){ echo $firstname;} ?>" maxlength="50" placeholder="Enter your Firstname" required/><br/>                    
<label>Surname:</label><br/>
<input type="text" name="surname" id="surname" value="<?php if(isset($surname)) {echo $surname;} ?>" maxlength="50" placeholder="Enter your Surname" required/><br/>

<label>Password:</label><br/>
<input type="password" name="password" id="password"   maxlength="50" placeholder="Enter your Password" required/><br/>

<label>Password Again:</label><br/>
<input type="password" name="password_again" id="password again"  maxlength="50"  placeholder="Enter your Password" required/><br/>

<input type="submit" name = "register" id = "register" value="Register">
</fieldset>
</form>

connection code
<?php
require_once("constants.php");

// 1. Create a database connection
$connection = mysqli_connect(DB_SERVER,DB_USER,DB_PASS, DB_NAME);
if (!$connection) {
    die("Database connection failed: " . mysqli_error($connection));
}

// 2. Select a database to use 
$db_select = mysqli_select_db($connection, DB_NAME);
if (!$db_select) {
    die("Database selection failed: " . mysqli_error($connection));

}
?>

core.inc.php code
<?php
ob_start();
session_start();
$current_file = $_SERVER['SCRIPT_NAME'];

if(isset( $_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER'])){
$http_referer = $_SERVER['HTTP_REFERER'];
}



?>