【发布时间】: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