如果用户在数据库中具有有效ID,我该如何注册?

时间:2015-01-02 06:09:19

标签: php mysql database validation

我不知道如何更好地提出这个问题,但如果我解释一下我的问题可能会有所帮助:

我在php上创建了一个注册页面,点击注册按钮后将其保存到数据库中但是我现在要做的就是在数据库中有一个学生ID,只允许用户输入有效的学生ID 。注册看起来像:

名字: 姓: 学生证:

我不知道我是否应该:

  1. 将预定的学生ID列表作为主键,让php比较学生ID,如果匹配没有第一个名字或姓氏的条目,它只会输入第一个名字和最后一个名字。名称。
  2. 有点如果我注册“Mark Go 201853”代码会查看学生表中是否有201853,如果它已经有名字,它会说“有这个ID的用户已经存在”但是如果没有名字和姓氏将把Mark Go放在名字“201853”的列中,名字和姓氏的行。

    1. 在数据库中有一个单独的有效学生ID列表,注册后,它会从该列表中选择一个学生ID并将其从有效的学生ID表中删除,并将其与名字一起输入到学生表中和姓氏

    2. 您的建议,如果我的想法不是这样做的。

    3. 我很抱歉,但是我尽力去解决这个问题,但是有点难,所以在阅读了一些相关的话题后,我想出了实现这个目标的想法,但如果你们能提出一个更好的方法,我会更乐意听到它。我不是要求任何代码或其他东西,我只是想先知道该做什么,所以我可以编写它,并可能再次询问我的进展。

2 个答案:

答案 0 :(得分:1)

通常会有一个确定用户的唯一列。它可能是用户名,电子邮件或电话号码等。名称可能类似,但用户名不能。因此,您必须向表中添加唯一列。如果出现新注册,请始终检查此唯一列是否有重复条目。

答案 1 :(得分:1)

除了Kiren的答案,它负责重复的ID案例,我建议你在PHP中添加一些服务器端逻辑,检查给定的学生ID是否是有效的提交。由于这种逻辑可能非常复杂,因此与使用学生ID白名单创建数据库相比,这是一种更强大的解决方案。修改代码以验证学生ID是否有效而不是重复添加到“良好ID”的白名单中更容易。

例如,您的PHP可以确保学生ID仅包含数字字符,并且小于数据库可存储的最大可能值。