【问题标题】:Custom email address with Bootstrap使用 Bootstrap 自定义电子邮件地址
【发布时间】:2017-05-20 16:36:56
【问题描述】:

我有一个注册表单,其中包含“用户名”、“电子邮件”、“密码”字段。 我希望只能使用带有“@mychoice.it”(这只是一个示例)的电子邮件。

hitoeveryone@mychoice.it -> ok
erika@mychoice.it -> ok
anthony@gmail.it -> NO!!

有可能吗?我正在使用引导程序和 PHP。

这是我的表格:

<form method="post" action="registration.php" >

        <div class="form-group" id="form-login" >
        <label for="exampleInputEmail1">Indirizzo Email</label>
        <input type="email" class="form-control" id="exampleInputEmail1" placeholder="nome.cognomeX@studio.unibo.it" name="Input_Email" required>
        </div>

        <div class="form-group"  id="form-login">
        <label for="exampleInputUsername1">Username</label> 
        <input type="name" class="form-control" id="exampleInputUsername1" placeholder="username" name="Input_Username" required>
        </div>

        <div class="form-group" id="form-login">
        <label for="exampleInputPassword1">Password</label>
        <input type="password" class="form-control" id="example_InputPassword1" name="Input_Password" placeholder="password" required>
        </div>

        <button type="submit" class="btn btn-default">Submit</button>
        <button type="reset" class="btn btn-default" value="Reset">Reset</button>

这是我用于注册的 PHP 脚本

<?php
session_start();
require 'connect.php';
if(isset($_POST['Input_Username'])) {
    $username = $conn->real_escape_string($_POST['Input_Username']);
}
if(isset($_POST['Input_Email'])) {
   $email = $conn->real_escape_string($_POST['Input_Email']);
}
if(isset($_POST['Input_Password'])) {
    $password = $conn->real_escape_string($_POST['Input_Password']);
}
$sql = "INSERT INTO utente (Email, Username, Password) VALUES ('$email', '$username', '$password')";
$result = $conn->query($sql);
$conn->close(); 
header("location:prova.php");  
?>

【问题讨论】:

  • 当然,这完全有可能。 php.net/preg_match
  • 旁注:您缺少对输入数据的任何形式的验证,您应该使用php.net/password_hash 对密码进行哈希处理,而不是将它们存储为纯文本。
  • 是的,我知道,稍后我会添加密码;)
  • 为什么是-2估值? :S
  • 我不知道,但我认为你的问题很有趣!

标签: php forms email field registration


【解决方案1】:
<?php
session_start();
require 'connect.php';
$allowed_domains = array("example.com","example2.com");
if(isset($_POST['Input_Username'])) {
    $username = $conn->real_escape_string($_POST['Input_Username']);
}
if(isset($_POST['Input_Email'])) {
   $email = $conn->real_escape_string($_POST['Input_Email']);
}
if(isset($_POST['Input_Password'])) {
$password = $conn->real_escape_string($_POST['Input_Password']);
}
$email = explode("@",$email);
if (in_array($email[1],$allowed_domains)) {
    $sql = "INSERT INTO utente (Email, Username, Password) VALUES ('$email', '$username', '$password')";
    $result = $conn->query($sql);
    $conn->close(); 
    header("location:prova.php");  
}else{
    DO SOMETHING ELSE HERE
}
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-27
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    • 2012-01-12
    相关资源
    最近更新 更多