Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript &引用;电子邮件是必需的;PHP注册脚本中出现错误_Javascript_Php_Jquery_Sql_Registration - Fatal编程技术网

Javascript &引用;电子邮件是必需的;PHP注册脚本中出现错误

Javascript &引用;电子邮件是必需的;PHP注册脚本中出现错误,javascript,php,jquery,sql,registration,Javascript,Php,Jquery,Sql,Registration,我目前正在编写一个脚本来执行基本的用户注册 当用户到达登录页时,我有一个JS脚本,可以从URL识别他们的电子邮件,并将其填充到电子邮件输入框中(该框已禁用)。之后,用户只需输入密码即可创建帐户。然而,PHP抛出错误“Email是必需的”,即使它是由JS脚本填充的 我已经尝试将输入框的状态更改为disabled(已禁用)到enabled(已启用),但这没有多大帮助。我已附上以下过程中涉及的文件。任何帮助都将不胜感激 fillEmail.js $(document).ready(function()

我目前正在编写一个脚本来执行基本的用户注册

当用户到达登录页时,我有一个JS脚本,可以从URL识别他们的电子邮件,并将其填充到电子邮件输入框中(该框已禁用)。之后,用户只需输入密码即可创建帐户。然而,PHP抛出错误“Email是必需的”,即使它是由JS脚本填充的

我已经尝试将输入框的状态更改为disabled(已禁用)到enabled(已启用),但这没有多大帮助。我已附上以下过程中涉及的文件。任何帮助都将不胜感激

fillEmail.js

$(document).ready(function() {
var link = window.location.href;

var emailIndex = link.indexOf("email");

if(emailIndex != -1) {
link = link.substring(emailIndex + 6);
} else {
    link = "";
}

document.getElementById("email").value = link;
//$('#email').attr('disabled', 'disabled');});
register.php

<?php include('server.php') ?>

<!DOCTYPE html>
<html>
<head>
  <title>Register</title>
  <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
  <div class="header">
    <h2>Register</h2>
  </div>

  <form method="post" action="register.php">
    <?php include('errors.php'); ?>
    <div hidden class="input-group">
      <label>Username</label>
      <input type="text" name="username" value="user">
    </div>
    <div class="input-group">
      <label>Email</label>
      <input type="email" name="email" id="email" value="<?php echo $email; ?>" disabled>
    </div>
    <div class="input-group">
      <label>Password</label>
      <input type="password" name="password_1">
    </div>
    <div class="input-group">
      <label>Confirm password</label>
      <input type="password" name="password_2">
    </div>
    <div class="input-group">
      <button type="submit" class="btn" name="reg_user">Register</button>
    </div>
  </form>
</body>
<script
  src="https://code.jquery.com/jquery-3.4.1.js"
  integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU="
  crossorigin="anonymous">
</script>
<script type='text/javascript' src="fillEmail.js"></script>
</html>

登记
登记
用户名
电子邮件

为了提交值,该字段不能被禁用

简单的解决方案,创建另一个字段作为(隐藏),这些都是提交的

<input type="email" id="email" value="<?php echo $email; ?>" disabled>
<input type="hidden" name="email" value="<?php echo $email; ?>">

为了提交值,不能禁用字段

简单的解决方案,创建另一个字段作为(隐藏),这些都是提交的

<input type="email" id="email" value="<?php echo $email; ?>" disabled>
<input type="hidden" name="email" value="<?php echo $email; ?>">

根据我的评论,您可以简单地使用
只读
而不是
禁用
来实现类似的效果。另外,请使用准备好的语句来防止SQL注入
mysqli\u real\u escape\u string
是不够的

根据我的评论,您可以简单地使用
只读
而不是
禁用
来实现类似的效果。另外,请使用准备好的语句来防止SQL注入
mysqli\u real\u escape\u string
不够

在点击注册按钮之前进入页面,进入“检查元素”,检查它是否确实将电子邮件的值输入到输入的值属性中。提示:表单中禁用的元素将不会提交!禁用的输入永远不会提交如果您要提交电子邮件,请使用隐藏的输入字段,并保持禁用的输入不变(或将其删除),请不要使用MD5对密码进行哈希/保存。使用
password\u hash()
。在点击注册按钮之前进入页面后,进入“检查元素”,检查它是否将电子邮件的值输入到输入的值属性中。提示:表单中禁用的元素将不会提交!禁用的输入永远不会提交如果您要提交电子邮件,请使用隐藏的输入字段,并保持禁用的输入不变(或将其删除),请不要使用MD5对密码进行哈希/保存。使用
密码\u hash()
。您也错过了他们对MD5的使用。您也错过了他们对MD5的使用。