验证用户名和密码后在表中插入数据

我有一个php文件,可检索4个参数:用户名,密码,条形码,计数。 我想插入用户名条形码并在检查用户名和密码是否彼此匹配(从另一个表“用户”中)后计入表“ users_products”

因此代码将类似于:

interface Comparable<T> { compareTo(that: Comparable<T>): number; } class ShellSort { static sort<T>(arr: Comparable<T>[]): void { let h: number = 0; while (2 * h + 1 <= arr.length) h = 2 * h + 1; while (h >= 1) { for (let i = 0; i < arr.length; i++) { for (let j = i; j >= h && arr[j].compareTo(arr[j - h]) < 0; j -= h) { const _ = arr[j]; arr[j] = arr[j - h]; arr[j - h] = _; } } console.log(h) console.log(arr) console.log(arr.map(item => item.str)); h = (h - 1) / 2 } } } class SortableString implements Comparable<string>{ constructor(public str: string) { }; compareTo(that: SortableString): number { return this.str.charCodeAt(0) - that.str.charCodeAt(0); } } function sortableStringFactory(str: string): SortableString { return new SortableString(str); } const arr = new Array(11); arr[0] = sortableStringFactory("S"); arr[1] = sortableStringFactory("O"); arr[2] = sortableStringFactory("R"); arr[3] = sortableStringFactory("T"); arr[4] = sortableStringFactory("E"); arr[5] = sortableStringFactory("X"); arr[6] = sortableStringFactory("A"); arr[7] = sortableStringFactory("M"); arr[8] = sortableStringFactory("P"); arr[9] = sortableStringFactory("L"); arr[10] = sortableStringFactory("E"); ShellSort.sort(arr); // arr.forEach(num => console.log(num.number)) // 1 2 3 4 5

此代码无法正常工作,我想这甚至不是真正的语法,但我认为每个人都能理解我想要的内容。谢谢您的帮助。

imagin_0707 回答:验证用户名和密码后在表中插入数据

您可以从“用户”表中进行“选择”以填充users_products,以强制用户存在以使查询返回结果。这称为"insert...select" syntax,我认为它是sql标准的一部分,并且在mysql中受支持。

INSERT INTO users_products (username,barcode,count) 
SELECT username,'barcode','count' 
FROM users 
WHERE username = 'username' AND password = 'password';

这将选择username列和users中的一些静态定义的字段,然后将包括静态值的数据插入users_products中。插入的行数将告诉您用户名和密码是否匹配。

'username''password''barcode''count'假定是用户提供的,应插入到准备好的语句中,以避免SQL注入漏洞。

在现实世界中,让用户名和密码成为用户会话的主要标识符并不常见。通常在登录时提供用户名和密码或其他凭据,创建用户会话,将会话cookie返回给用户,并且该cookie用于引用服务器端的会话数据。用数字ID列写这种数据比使用字符串写效率更高,并且可以最大程度地减少通过网络发送的密码。当然,我这么说是无视您的实际操作。

另一件事:不要以纯文本形式存储密码。而是存储密码的加密版本,并将相同的密码应用于用户提供的任何密码以进行验证。存储纯文本密码的数据库中的SQL漏洞是当今在线安全问题的重要组成部分。

本文链接:https://www.f2er.com/3165909.html

大家都在问