当前位置: 首页 > news >正文

江西赣鄂皖路桥投资有限公司网站建设农产品网络营销论文

江西赣鄂皖路桥投资有限公司网站建设,农产品网络营销论文,办公室装修设计效果,做外贸的人经常用什么网站创建一个注册表单是非常容易的 - 它事实上意味着#xff0c;你只需要创建一个表单#xff0c;表单将更新一些User的模型对象(这个例子是一个Doctrine实体)并保存它。受欢迎的FOSUserBundle 提供了一个注册表单#xff0c;重置密码表单和其他用户管理功能。如果你先前没有一个…创建一个注册表单是非常容易的 - 它事实上意味着你只需要创建一个表单表单将更新一些User的模型对象(这个例子是一个Doctrine实体)并保存它。受欢迎的FOSUserBundle 提供了一个注册表单重置密码表单和其他用户管理功能。如果你先前没有一个User实体和能工作的登录系统你要先从怎样从数据库加载安全用户开始。你的User实体至少应该有以下字段username他是用来登录的除非你想用email来替代你的用户(在那种情况下这个字段就不是必要的了)。email这是一条不错的信息很值得收集。您也可以允许用户通过email登录。password编译的密码plainPassword这个字段不会被持久化(注意没有上面的ORM\Column)。他将临时存储注册表单的明文密码。此字段可以被验证然后被用于password字段的填充。添加了一些验证,你的类可能看起来像这样:1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495// src/AppBundle/Entity/User.phpnamespace AppBundle\Entity;use Doctrine\ORM\Mapping as ORM;use Symfony\Component\Validator\Constraints as Assert;use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;use Symfony\Component\Security\Core\User\UserInterface;/*** ORM\Entity* UniqueEntity(fieldsemail, messageEmail already taken)* UniqueEntity(fieldsusername, messageUsername already taken)*/class User implements UserInterface{/*** ORM\Id* ORM\Column(typeinteger)* ORM\GeneratedValue(strategyAUTO)*/private $id;/*** ORM\Column(typestring, length255, uniquetrue)* Assert\NotBlank()* Assert\Email()*/private $email;/*** ORM\Column(typestring, length255, uniquetrue)* Assert\NotBlank()*/private $username;/*** Assert\NotBlank()* Assert\Length(max4096)*/private $plainPassword;/*** The below length depends on the algorithm you use for encoding* the password, but this works well with bcrypt.** ORM\Column(typestring, length64)*/private $password;// other properties and methodspublic function getEmail(){return $this-email;}public function setEmail($email){$this-email $email;}public function getUsername(){return $this-username;}public function setUsername($username){$this-username $username;}public function getPlainPassword(){return $this-plainPassword;}public function setPlainPassword($password){$this-plainPassword $password;}public function setPassword($password){$this-password $password;}public function getSalt(){// The bcrypt algorithm doesnt require a separate salt.// You *may* need a real salt if you choose a different encoder.return null;}// other methods, including security methods like getRoles()}UserInterface要求要有一些其他的方法并且你的security.yml文件需要被正确配置来让User实体工作。更多完整的例子参见实体提供器文章。为什么限制4096密码 ¶注意plainPassword字段的最大长度是4096字符。为了安全起见(CVE-2013-5750)当编译它时Symfony限制明文密码长度到4096字符。添加此约束来确保如果有人尝试了一个超长的密码你的表单应该提示一个验证错误。你需要添加这个约束到你应用程序任何需要用户提交明文密码的地方(如修改密码表单)。唯一不需要你担心的就是你的登录表单因为symfony安全组件会替你处理。为实体创建一个表单 ¶下一步给User实体创建表单123456789101112131415161718192021222324252627282930313233// src/AppBundle/Form/UserType.phpnamespace AppBundle\Form;use Symfony\Component\Form\AbstractType;use Symfony\Component\Form\FormBuilderInterface;use Symfony\Component\OptionsResolver\OptionsResolver;use Symfony\Component\Form\Extension\Core\Type\EmailType;use Symfony\Component\Form\Extension\Core\Type\TextType;use Symfony\Component\Form\Extension\Core\Type\RepeatedType;use Symfony\Component\Form\Extension\Core\Type\PasswordType;class UserType extends AbstractType{public function buildForm(FormBuilderInterface $builder, array $options){$builder-add(email, EmailType::class)-add(username, TextType::class)-add(plainPassword, RepeatedType::class, array(type PasswordType::class,first_options array(label Password),second_options array(label Repeat Password),));}public function configureOptions(OptionsResolver $resolver){$resolver-setDefaults(array(data_class AppBundle\Entity\User,));}}这里有两个字段email, username 和 plainPassword(重复确认输入的密码)。探索更多关于表单组件的事情,请阅读表单指南。处理表单提交 ¶下一步你需要一个控制器去处理表单渲染和提交。如果表单被提交控制器执行验证并保存数据到数据库12345678910111213141516171819202122232425262728293031323334353637383940414243444546// src/AppBundle/Controller/RegistrationController.phpnamespace AppBundle\Controller;use AppBundle\Form\UserType;use AppBundle\Entity\User;use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;use Symfony\Bundle\FrameworkBundle\Controller\Controller;use Symfony\Component\HttpFoundation\Request;class RegistrationController extends Controller{/*** Route(/register, nameuser_registration)*/public function registerAction(Request $request){// 1) build the form$user new User();$form $this-createForm(UserType::class, $user);// 2) handle the submit (will only happen on POST)$form-handleRequest($request);if ($form-isSubmitted() $form-isValid()) {// 3) Encode the password (you could also do this via Doctrine listener)$password $this-get(security.password_encoder)-encodePassword($user, $user-getPlainPassword());$user-setPassword($password);// 4) save the User!$em $this-getDoctrine()-getManager();$em-persist($user);$em-flush();// ... do any other work - like sending them an email, etc// maybe set a flash success message for the userreturn $this-redirectToRoute(replace_with_some_route);}return $this-render(registration/register.html.twig,array(form $form-createView()));}}在安全配置中配置上面步骤3的编码器来定义用于编译密码的算法1234# app/config/security.ymlsecurity:encoders:AppBundle\Entity\User:bcrypt1234567891011xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:srvhttp://symfony.com/schema/dic/servicesxsi:schemaLocationhttp://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsdbcrypt123456// app/config/security.php$container-loadFromExtension(security, array(encoders array(AppBundle\Entity\User bcrypt,),));这个案例我们推荐使用bcrypt 算法。了解更多关于如何编码用户密码的细节请看安全章节。如果您决定不使用注释方式的路由(如上)那么你需要创建一个这个控制器的路由1234# app/config/routing.ymluser_registration:path: /registerdefaults:{ _controller:AppBundle:Registration:register }12345678910xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsdAppBundle:Registration:register12345678910// app/config/routing.phpuse Symfony\Component\Routing\RouteCollection;use Symfony\Component\Routing\Route;$collection new RouteCollection();$collection-add(user_registration, new Route(/register, array(_controller AppBundle:Registration:register,)));return $collection;下一步创建模板12345678910{# app/Resources/views/registration/register.html.twig #}{{ form_start(form) }}{{ form_row(form.username) }}{{ form_row(form.email) }}{{ form_row(form.plainPassword.first) }}{{ form_row(form.plainPassword.second) }}Register!{{ form_end(form) }}1234567891011?php echo $view[form]-start($form) ??php echo $view[form]-row($form[username]) ??php echo $view[form]-row($form[email]) ??php echo $view[form]-row($form[plainPassword][first]) ??php echo $view[form]-row($form[plainPassword][second]) ?Register!?php echo $view[form]-end($form) ?参见如何自定义表单渲染里面有更多细节。更新你的数据库结构 ¶如果你在这个教程中已经更新了User实体你必须要使用下面的命令去更新数据库结构1$ php bin/console doctrine:schema:update --force就是这样来到/register来尝试一下吧注册表单只有Email(没有 Username) ¶如果你想要你的用户通过email登录并不需要用户名那么你可以从你的User实体中彻底移除他。相反让getUsername()返回email属性1234567891011121314// src/AppBundle/Entity/User.php// ...class User implements UserInterface{// ...public function getUsername(){return $this-email;}// ...}下一步只更改你security.yml文件的providers 部分以便Symfony知道如何去通过email属性加载你的用户来登录。参见如何自定义表单渲染。添加一个“打上勾”的Checkbox ¶有时你想要一个“你接受这个条款和声明吗”的Checkbox出现在你的注册表单。唯一窍门让你要去添加这个字段到你的表单中而你永远不需要添加多余的termsAccepted属性到你的User实体。要做到这一点要添加一个termsAccepted字段到你的表单但设置它的 mapped 选项为false:1234567891011121314151617181920// src/AppBundle/Form/UserType.php// ...use Symfony\Component\Validator\Constraints\IsTrue;use Symfony\Component\Form\Extension\Core\Type\CheckboxType;use Symfony\Component\Form\Extension\Core\Type\EmailType;class UserType extends AbstractType{public function buildForm(FormBuilderInterface $builder, array $options){$builder-add(email, EmailType::class);// ...-add(termsAccepted, CheckboxType::class, array(mapped false,constraints new IsTrue(),)));}}constraints配置也被使用了它允许我们添加验证尽管没有User中没有termsAccepted属性。
http://www.pierceye.com/news/755059/

相关文章:

  • 免费发布信息的网站平台怎么做网站统计
  • 制作网站的过程是对信息的龙海市住房和城乡建设局网站
  • 鱼台县建设局网站免费ppt模板制作软件
  • 质量好网站建设多少钱黄冈网站建设哪家快些
  • 使用阿里云部署wordpressseo搜索排名影响因素主要有
  • 大连制作网站建站教程图解
  • 百度的合作网站有哪些网站建设费用写创意
  • 建设个人网站ip护肤品网页设计图片
  • 德州网站建设优化金阳龙泉苑网站建设
  • 建站公司最新价格网站素材网
  • 高品质的网站开发公优酷网站谁做的
  • 广西兴业县建设局网站湖北天健建设集团有限公司网站
  • 学多久可以做网站 知乎中国100强企业名单公布
  • 江阴网站优化公司开源的 二次网站开发
  • 淄博网站建设相关文章wordpress登录网页
  • 做网站一般注册哪几类商标企业网站静态模板
  • 高端品牌网站建设(杭州)南昌地宝网分类信息网
  • 网站建设网站栏目结构图网站接入激励视频广告
  • 网站的icon图标做多大网站建设实训心得 总结
  • 做网站不错的公司讯美 深圳网站建设
  • 广东官网网站建设怎么样网站开发公司管理模式
  • 什么网站可以接单做设计html代码块
  • 网站建设贰金手指科捷6构建一个网站需要什么
  • wordpress 插件下载站seo网站布局
  • 公司网站建设费用会计入账招代理的网站建设公司
  • 查询网站入口中廉建设网站
  • 在市场部做网站多少工资微网站需要域名吗
  • 做网站有没有前景WordPress 长文 阅读
  • 按揭车在哪个网站可以做贷款网页素材制作
  • 做网站公司怎样wordpress 速度优化