php - 为什么这不会向数据库提交值?

标签 php mysql html css

JS: 用于客户端验证email字段

的JS
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"> </script>
<script type="text/javascript" src="src/js/validate.js"> </script> 
   <script type="text/javascript">
    $.validator.setDefaults({
        submitHandler: function() { alert("submitted!"); }
    });

    $().ready(function() {
        // validate alphaRegister form on keyup and submit
        $("#alphaRegister").validate({
            rules: {
                email: {
                    required: true,
                    email: true
                }
            },
            messages: {
                email: "*"
            }
        });
    });
    </script>

HTML 表格

    <form id="alphaRegister" action="src/php/newSubscriber.php" method="post">
        <input type="email" name="email" id="cemail" value="" class="required" />
        <div style="float:right; margin:0 5px 2px 0;"><input type="submit" id="submit" name="submit" value="" /></div>
    </form>

当我输入 validname@adomain.com 时,它只会显示 submitted!!

PHP 文件 处理 html 输入的文件

 <?php
$host="localhost"; // Host name 
$username="myuser"; // Mysql username       
    $username2="root"; #localhost
$password="mypass"; // Mysql password  
    $password2=""; #localhost
$db_name="mydbname"; // Database name 
$tbl_name="mydbtblname"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username2", "$password2")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot connect to database");

/* Obliterate bad input */
$goodEmail = mysql_real_escape_string($_POST['email']);

$sql= "INSERT INTO alphaSubscribers (alphaSEmAddr) VALUES('$goodEmail')";

$result = mysql_query($sql);
if (!$result) {
    die('Invalid Email, please retry.');
}
else {
    header( 'Location: /index.php' ) ;
    echo "<meta HTTP-EQUIV='REFRESH' content='0; url=/index.php'>";
}

?>

有人看到我哪里做错了吗?

最佳答案

您正在通过 GET 发送表单,但要测试 POST 参数。将您的表单标签更改为

<form id="alphaRegister" action="src/php/newSubscriber.php" method="post">

同时移除 javascript submitHandler,否则表单可能根本无法提交:

$.validator.setDefaults({
    submitHandler: function() { alert("submitted!"); } // <= remove that line
});

关于php - 为什么这不会向数据库提交值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9056746/

相关文章:

php - 在 PHP 中使用 'global'

php - 从 twitter bootstrap 模式中加载一个 php 页面

mysql - 列中未知类型 '245

mysql - 将数据库时间戳与当前时间进行比较

python - 当前交易发生错误。在 'atomic' block 结束之前不能执行查询

html - 是否有类似黑莓的条件注释来验证网络应用程序中的特定元标记?

php - 奏鸣曲管理员 : how validate remove action?

php - 数组值的处理方式与手动输入不同

html - 使用 AngularJS 和 HTML 5 验证 URL

javascript - 如何通过 <a> 使用 Jquery 获取 div 中第一个子项的值