Php 如果用户在数据库中具有有效id,如何注册用户?

Php 如果用户在数据库中具有有效id,如何注册用户?,php,mysql,database,validation,Php,Mysql,Database,Validation,我不知道如何更好地提问,但如果我解释我的问题,可能会有所帮助: 我在php上创建了一个注册页面,单击“注册”按钮后,它会将其保存到数据库中,但我现在想做的是在数据库中设置一个学生id,并且只允许用户输入有效的学生id。注册如下所示: 名字: 姓氏: 学生证: 我不知道我是否应该: 把一个预先确定的学生id列表作为主键,让php比较学生id,如果它是一个匹配项,没有输入名字或姓氏,它只会将它输入到名字和姓氏中 有点像如果我注册“Mark Go 201853”,代码将查看学生表中是否有一个20185

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

我在php上创建了一个注册页面,单击“注册”按钮后,它会将其保存到数据库中,但我现在想做的是在数据库中设置一个学生id,并且只允许用户输入有效的学生id。注册如下所示:

名字: 姓氏: 学生证:

我不知道我是否应该:

  • 把一个预先确定的学生id列表作为主键,让php比较学生id,如果它是一个匹配项,没有输入名字或姓氏,它只会将它输入到名字和姓氏中 有点像如果我注册“Mark Go 201853”,代码将查看学生表中是否有一个201853,如果它已经有一个名字,它将显示“具有此id的用户已经存在”,但如果没有名字和姓氏,它将把Mark Go放在emp id“201853”列的名字和姓氏下

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

  • 如果我的想法不合适,你的建议


  • 我很抱歉,但我尽了最大努力用谷歌搜索这个问题,但这有点难,所以在阅读了一些稍微相关的主题后,我就想出了一些实现这个目标的想法,但如果你们能建议一个更好的方法,我会非常高兴听到它。我没有要求任何代码或其他东西,我只是想知道首先要做什么,以便我可以编写代码,并可能在这里再次询问我的进度。

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

    除了Kiren的答案(它处理重复ID的情况)之外,我建议您在PHP中添加一些服务器端逻辑,以检查给定的学生ID是否是有效的提交。由于此逻辑可以根据需要进行复杂化,因此这是一个比使用学生ID白名单创建数据库更健壮的解决方案。修改代码以验证学生ID是否有效比反复添加到“好ID”白名单要简单一些


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

    唯一列(也是我的主键)是“学生ID”列。我现在的问题是我有一个有效ID的列表,我应该确保只允许该列表中的有效ID注册。现在我的问题是我应该把清单放在哪里?我是否将它放在一个单独的表中,在php从中获取ID后,该表将删除ID?或者我是否立即将列表放在学生表上,让php比较申请人是否输入了有效的id,并检查名字和姓氏中是否有值,如果没有,则将申请人的名字和姓氏放在学生表中?最好将id放在单独的表中。使用后,将其标记为已使用(为此添加一个标志列)。将ID保存在单独的表中允许您独立管理(CRUD)。非常感谢!!我没有想过要创建一个使用过的列,但是你的想法比删除列更有意义,有了这个,我可以创建一个简单的php,让管理员从新注册的学生那里获得有效的ID,并有效地管理他们!再次感谢,我想我会这样做。这看起来是一个很好的方法,我是否将逻辑放在注册php本身上,使用| | s检查它们是否可以注册?然而,我有点担心,当一个新的有效id出现时,因为每次学生注册时我都需要在代码中输入它。请不要忘记接受答案,如果它对你有帮助的话:)很遗憾,我不能检查两个答案,但我对jpp的答案投了赞成票。再次感谢所有帮助过我的人