【问题标题】:Handle HTML <input> Attribute [duplicate]处理 HTML <input> 属性
【发布时间】:2016-12-06 02:18:29
【问题描述】:

我正在编写基本的用户注册页面, 我的注册页面包含:用户邮箱、密码、套餐类型。 计划类型有三种计划。 三个计划是:基本、银和黄金。

register_main.php是存放Mysql中的用户信息。

我遇到的问题是当我点击基本或银或黄金计划时,页面将转到 register_main page 。 我只想将用户信息发送到服务器,当他们点击登录时。

谁能帮我解决这个问题?

HTML 代码:

    <html>
        <head>
                <title>Register</title>
                <meta charset="UTF-8">
                <!-- Include JS File Here -->
                <script src="Script/register_validate.js">
                <script type="text/javascript"
                    src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
                <script type="text/javascript"
                    src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js"></script>
                </script>
        </head>
<body>
        <form name="registerform" action="register_main.php" method="post" onsubmit="return validate()">
              <p id="benefits_text" class="white size_8">Benefits:</p>
              <input id="type_basic" type ="image" name="basicPlan" " src="basic.png">
              <input id="type_silver" type ="image" name="silverPlan" " src="silver.png">
              <input id="type_gold" type ="image" name="goldPlan" " src="gold.png">
              <div id="userinfo_content">
                   <p id="email_text" class="white size_8">Email Address</p>
                   <input id="email_input" name="userEmail" type="text"class="sign_input">
                   <p id="password_text" class="white size_8">Password</p>
                   <input id="password_input" name="password" type="password">
                   <p id="confirmPW_text" class="white size_8">Confirm Password</p>
                   <input id="confirmPW_input" name="confirm_password" type="password">
                  <input id="btn_signin" type ="image" alt ="submit" src="signin.png">
              </div>
    </form></body>
    </html>

register_main.php

include ("config.php");
require ("encrypt.php");
session_start ();

if ($_SERVER ["REQUEST_METHOD"] == "POST") {

    // Get userEmail from client side and create a legal SQL string that you can use in an SQL statement.
    $user_emailaddress = mysqli_real_escape_string ( $db, $_POST ['userEmail'] );
    // Get password from client side and create a legal SQL string that you can use in an SQL statement.
    $user_password = mysqli_real_escape_string ( $db, $_POST ['password'] );
    // Get planType from client side and create a legal SQL string that you can use in an SQL statement.
    $user_planType = mysqli_real_escape_string ( $db, $_POST ['planType'] );
    // Create user.
    // Note user Id is generated when a new record is inserted into a table.
    $sql = "INSERT INTO admin (emailAddress,passcode,planType) VALUES ('$user_emailaddress','$user_Newpassword','$user_planType')";
    $result = mysqli_query ( $db, $sql );


    // if create user a successfully, jump to welcome page.
    // otherwise print error information
    if ($result ) {
        echo "New record created successfully";
        $_SESSION ['login_user'] = $user_emailaddress;
        header ( "location: welcome.php" );
    } else {
        echo "Error: " . $sql . "<br>" . mysqli_error ( $db );
    }
    // Close Database
    mysqli_close ( $db );
}
?>

【问题讨论】:

  • 你的验证函数在哪里?
  • 我编辑了我的问题。
  • 您的 Javascript 验证代码中有 event.preventDefault()return false 吗?取决于您如何编码,您可能需要它们阻止您在验证之前发送表单。
  • 简单:你在echo "New record created successfully"; $_SESSION ['login_user'] = $user_emailaddress; header ( "location: welcome.php" );的标题之前输出,PHP的错误报告会告诉你。
  • 永远不要存储纯文本密码!请使用 PHP 的 built-in functions 来处理密码安全问题。如果您使用的 PHP 版本低于 5.5,您可以使用 password_hash() compatibility pack。在散列之前,请确保您 don't escape passwords 或对它们使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。

标签: javascript php html


【解决方案1】:

您的表单的问题是 type="image" 的输入标记在单击时充当提交按钮。查看此链接:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/image

我猜在您的用例中,您希望这些图像充当可用计划类型的选择按钮。所以我认为你可以用单选按钮替换图像标签,或者用三个计划替换选择输入。

【讨论】:

  • 你说得有道理,但这并不是他们代码中唯一的问题。即使作为输入,他们的代码仍然会失败。
  • @Henrique 谢谢,我将类型更改为收音机。如何在我的 php 文件中传递单选按钮值?
  • @awd 对不起,awd,但我不知道 php 可以在代码方面为您提供帮助。但是应该有一些在php或一些php框架中的内置函数来从你收到的post请求中获取表单字段。
  • @Fred-ii- 我明白这一点,但我刚刚解决了他在问题中报告的问题。当然,当他们在这里发布问题时,每个人都希望他们的所有问题都得到解决,但是当您发布指向特定问题并明确说:“谁能帮我解决这个问题?”时,我猜一个答案可以解决只有这个特定的问题是有效的。
  • 很高兴看到您的回答被接受。但是,对于该问题的未来读者来说,它并不能完全解决问题。 @HenriqueVieira
猜你喜欢
  • 2010-10-14
  • 2019-08-29
  • 2010-10-01
  • 2012-08-03
  • 2017-11-12
  • 2022-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多