php - isset() 问题? jQuery Ajax PHP 登录

标签 php jquery ajax

我的代码应该引用login_process.php页面,我相信它是,但它没有返回任何内容。无论是错误消息还是成功消息。我不知道出了什么问题,并尝试了一些不同的方法来使其正常工作。当我在 isset($_POST['login']) 之外回显某些内容时,它会显示。但里面什么也没有显示。这就是让我相信这是一个问题的原因......但我不太确定。

PHP 代码:

<?php 
ob_start();
require 'db.php';
if(isset($_POST['login'])) {

    $date = date("F j, Y, g:i a"); 

    $username = $_POST['username'];
    $password = sha1($_POST['password']);
    // VARS
    $username = stripslashes($username);
    $username = strip_tags($username);
    $username = mysql_real_escape_string($username);

    $password = stripslashes($password);
    $password = strip_tags($password);
    $password = mysql_real_escape_string($password);

    // SELECT DB
    $sql = "SELECT * FROM `users` WHERE `username` = '$username' AND `password` = '$password'";
    $result = mysql_query($sql) or die ( mysql_error() );

    if (mysql_num_rows($result) != 0) {
         session_start();
         $row = mysql_fetch_array($result);
         $_SESSION['loggedIn'] = "true";
         $_SESSION['username'] = $username;
         $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
         header("refresh: 2; bet_gg.php");

         echo '<div class="alert success hideit" style="width: 50%;">
         <p> Success.  You will be redirected.</p>
         <span class="close"></span></div>';


    } else {
         $_SESSION['loggedIn'] = "false";



                 echo ' 
        <div class="alert error hideit" style="width: 50%;">
        <p>There was an error with your log-in.</p>
        <span class="close"></span>
        </div><!-- End error -->';



         }
    }

   ?>

HTML 代码:

    <form action="login_process.php" method="POST" id="myForm">   
    <div class="two-thirds column">
      <div class="who">
        <h2 class="title">Log-In<span class="line"></span></h2>
       <div class="form-box">
        <label>Username <small>(required)</small></label>
        <input type="text" name="username" class="text">
      </div><!-- End Box -->
      <div class="form-box">
        <label>Password <small>(required)</small></label>
        <input type="password" name="password" class="text">
      </div><!-- End Box -->
      <div class="form-box">
        <button type="submit" clas="button medium color sub" name="login" class="button medium color sub" value="Log-In">Log-In</button>
      </div><!-- End Box -->
        <br /><br />
      </div>
    </div><!-- End who we are -->
    <span id="result"></span>
   </form>

jQuery 代码:

    $("#sub").click( function() {
 $.post( $("#myForm").attr("action"), 
         $("#myForm :input").serializeArray(), 
         function(info){ $("#result").html(info); 
   });
});

$("#myForm").submit( function() {
  return false; 
});

最佳答案

我没有看到#sub,但明显的提交按钮有name="login"。根据 documentation

No submit button value is serialized since the form was not submitted using a button

改为检查 isset($_POST['username'])

关于php - isset() 问题? jQuery Ajax PHP 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17507945/

相关文章:

php - 如何智能地比较两个表?

javascript - 如何将公历和伊斯兰历合二为一 (javascript)

php - 我们可以使用 post 方法传递数组值吗

php - 获取存储在 mySQL 上的完整 XML 结构

php - 基于另一个列值设置新列值的 MySQL 脚本

php - WordPress php glob();不工作?

jquery - 如何使用 jQuery 在 mouseout 上关闭列表菜单

javascript - 如何等待来自 ajax() 成功数据的图像加载?

javascript - 通过 AJAX 发送数据到 MySQL

jQuery跨域ajax : callback when executed