相关疑难解决方法(0)

4099
推荐指数
43
解决办法
281万
查看次数

资本在电子邮件地址中是否重要?

我父亲说资本(多年前)过去很重要的电子邮件地址,但现在不再了.我很确定他们从未这样做过,因为那些涉及DNS/MX变化的东西不会改变.特别是在线没有容易找到的记录.

email email-address capitalization

22
推荐指数
3
解决办法
4万
查看次数

从 Django 登录表单中的电子邮件中删除区分大小写

我创建了一个自定义 UserModel 并使用电子邮件作为主要的身份验证 ID 而不是用户名。

它区分大小写的问题,因为它将 test@gmail.com,Test@gmail.com 计为 2 个不同的帐户。

我需要强制它处理 1 个帐户,而忽略它是大写还是小写。

这是我的文件:

模型.py

class UserModelManager(BaseUserManager):
    def create_user(self, email, password, pseudo):
        user = self.model()
        user.name = name
        user.email = self.normalize_email(email=email)
        user.set_password(password)
        user.save()

        return user

    def create_superuser(self, email, password):
        '''
        Used for: python manage.py createsuperuser
        '''
        user = self.model()
        user.name = 'admin-yeah'
        user.email = self.normalize_email(email=email)
        user.set_password(password)

        user.is_staff = True
        user.is_superuser = True
        user.save()

        return user


class UserModel(AbstractBaseUser, PermissionsMixin):
    ## Personnal fields.
    email = models.EmailField(max_length=254, unique=True)
    name = models.CharField(max_length=16)
    ## [...] …
Run Code Online (Sandbox Code Playgroud)

python django

7
推荐指数
2
解决办法
5225
查看次数

为什么CSS中的文本转换在表单中提交时不保持转换(大写)?

所以,如果我有代码

.rsform-input-box {text-transform: uppercase;}
Run Code Online (Sandbox Code Playgroud)

在特定于我们底部的表单字段的网站http://www.thediabetesnetwork.com上,您会看到在键入时转换为大写,但在您键入的情况下导出数据.例如,如果我键入Shane,它在视觉上显示了SHANE.在提交时,它将恢复到数据库中的Shane(之前的某个时刻).

我的问题是为什么它会这样做以及围绕选项的工作是什么?我的另一个选择是

 function toUpCase()
{
document.getElementById("first").value=document.getElementById("first").value.toUpperCase();
document.getElementById("last").value=document.getElementById("last").value.toUpperCase();
document.getElementById("email").value=document.getElementById("email").value.toUpperCase();
}  
Run Code Online (Sandbox Code Playgroud)

html css forms validation

5
推荐指数
1
解决办法
5276
查看次数

将电子邮件存储为羽绒服的任何问题?

我不时会注意到用户的电子邮件是重复的.即使使用模型验证(应用程序级别)来检查唯一性.我怀疑这与并发问题有关.

我决定在数据库级别添加一个索引来解决这个问题.

无论如何,较低的指数可能是明智的.

即使我们保证在应用程序级别降低电子邮件.数据库提供了更强的一致性保证.

它可能永远不会重要,但让数据库强制执行它也不会受到伤害.

我可以提供许多额外的保护措施,以最大限度地提高从应用程序端输入大写字符的几率,但应用程序仍然无法控制从其他来源进入数据库的数据,并且所有代码都倾向于开发人员错误,维护成本等

class CreateUniqueIndexForUserEmails < ActiveRecord::Migration
  def up
    remove_index :users, :email

    execute <<-SQL
      CREATE UNIQUE INDEX index_users_on_lower_email ON users (LOWER(email));
    SQL
  end

  def down
    execute <<-SQL
      DROP INDEX index_users_on_lower_email;
    SQL

    add_index :users, :email
  end
end
Run Code Online (Sandbox Code Playgroud)

我还将此逻辑与user模型中的此代码块相结合:

def email=(value)
  write_attribute :email, value.downcase
end
Run Code Online (Sandbox Code Playgroud)

这确保FooBar@email.com重写为foobar@email.com(在应用程序级别).

我在线阅读了一篇RFC,主要来自Are电子邮件地址区分大小写的指针表明一些电子邮件服务器关心区分大小写.

即便如此,当我今天发送电子邮件时.我几乎不把心思放进肠衣里.事实上,我输入的电子邮件是羽绒服.电子邮件仍然可以发送

RFC是否值得高度考虑?即如果用户输入FooBar@email.com,app将电子邮件注册为foobar@email.com.这会对电子邮件"可传递性"产生任何影响吗?

如果没有,我应该考虑哪些其他问题?

ruby-on-rails

5
推荐指数
1
解决办法
76
查看次数

如何使用Laravel 5.5身份验证使电子邮件登录不区分大小写

在构建我的应用程序时,我通过运行使用了Laravel身份验证脚手架,php artisan make:auth这非常棒并且节省了我很多时间.

但是,我遇到的问题是用户无法登录,因为他们无法记住他们最初注册时用于电子邮件的情况.

例如,注册的用户Myemail@domain.com无法登录myemail@domain.com.

我从我的研究中了解到,在技术上,@之前的部分因规范而区分大小写,并且上面的两封电子邮件在理论上可能属于两个不同的人.在我的情况下,我不认为我有可能需要在登录时强制执行此操作.

我使用的是Postgres数据库,所以我希望只需更换电子邮件数据库中查找Auth::attempt()ilike替代的like,如果可能的.但是,我不能为我的生活找到它在源头的位置,因此不知道我将如何覆盖它.

Tl; dr如何覆盖Laravel的默认身份验证以不区分大小写的方式进行电子邮件查找?

我最终通过首先采用@btl建议并在email属性上实现mutator方法来解决问题.我不想要为现有用户更改所有电子邮件,感觉好像我遇到了一个问题,我想恢复区分大小写,我想要一个可以解决的问题很容易被撤消.

应用程序/ user.php的

public function getEmailAttribute($value) {
    return strtolower($value);
}
Run Code Online (Sandbox Code Playgroud)

应用程序/ HTTP /控制器/认证/ LoginController.php

protected function credentials()
{
    $username = $this->username();
    $credentials = request()->only($username, 'password');
    if (isset($credentials[$username])) {
        $credentials[$username] = strtolower($credentials[$username]);
    }
    return $credentials;
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,我无法弄清楚如何应用这个相同的逻辑,ForgotPasswordController.php但现在我会活着.无论现在如何,登录似乎都有效.

authentication laravel laravel-5 laravel-5.5

3
推荐指数
1
解决办法
3163
查看次数

如何将 Dart 列表中的所有字符串转换为小写?

我想检查 Dart 列表是否包含字符串,list.contains因此必须先将数组中的字符串转换为小写。

如何将列表中的所有字符串转换为小写?

例如:

[example@example.com, Example@example.com, example@Example.com, example@example.cOm, EXAMPLE@example.cOm]
Run Code Online (Sandbox Code Playgroud)

arrays dart flutter

1
推荐指数
1
解决办法
1098
查看次数