当前位置: 首页 > 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.zqtcl.cn/news/755059/

相关文章:

  • 论坛网站建设流程wordpress速度优化插件
  • PHP套模板做网站建设银行保定分行网站
  • 怎样免费注册网站域名wordpress网站回调域
  • 东莞个人免费建网站乐清网约车事件
  • 备案查询网站网站的登录弹窗怎么做
  • 网站开发 mvc北京建设工程主管部门网站
  • 淮安建设机械网站制作代理公司注册需要多少钱
  • 站长收录茌平建设局网站
  • 如何进行网站开发开发区人才
  • 网站制作 视频网站维护的主要内容包括
  • 快速企业建站深圳网站关键词优化推广
  • 如何开网店详细步骤东莞市网络seo推广
  • 个人可以做哪些有意思的网站网站和网站的app
  • 北京高端网站开发公司网站建设后台实训体会
  • 青岛海川建设集团有限公司网站wordpress 变私有云
  • 网站备案人可以改吗石大网页设计与网站建设客观题
  • 宁波网站优化方案免费关键词挖掘工具
  • 网站制作想法免费做效果图网站
  • 晓风彩票网站建设软件微信上发的链接网站怎么做的
  • 关键词有哪几种台州优秀关键词优化
  • 盐田区住房和建设局网站软件开发文档怎么编写
  • 网站响应式建设seo排名优化怎样
  • 山东 网站备案德清县建设局网站
  • 中英语双语网站咋做提供网站建设设计外包
  • 云网站功能江门网站seo关键词排名优化
  • 潍坊网站建设外贸制作html网站
  • 网站友情链接怎么添加定制酒营销方案
  • 目前最流行网站开发软件泰州市建设工程招标网
  • 福州网站优化me域名网站
  • 网站 案例互联网外包公司值得去吗