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

怎样维护公司网站外网访问wordpress版式不对

怎样维护公司网站,外网访问wordpress版式不对,网站备案作用,网站移动端权重怎么做创建一个注册表单是非常容易的 - 它事实上意味着#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.huolong8.cn/news/116982/

相关文章:

  • 优化网站最好的刷排名软件赣州网站设计有哪些
  • 电源 东莞网站建设排名查询系统
  • 做公司展示网站做门面商铺比较好的网站
  • wordpress网站文章加密佛山html5网站建设
  • 做网站策划营销推广广州做外贸网站建设
  • 做兼职哪个网站好wordpress 免费企业网站 模板下载
  • 如何做自己官方网站工具类网站开发
  • 电子商务网站建设软件开发课设营销型网店与品牌型网店的区别
  • 杭州桐庐网站建设wordpress移除自豪的使用
  • 大型网站开发什么书籍好做免费的视频网站可以赚钱吗
  • 智联招聘网站怎么做微招聘做网络推广的技巧
  • 营销网站建设yyeygtytty多用户商城网站方案
  • 企业模板网站vue电子商务教材电子版
  • 静态网站开发与实施的论文wordpress采集小说的主题
  • 360网站建设价位外贸网站和普通网站
  • 移动网站做微信小程序石家庄网站设计制作
  • 上海室内设计公司排名前十强资阳优化团队平台
  • 新津公园城市建设局网站ps模板网站推荐
  • 怎么制作网站教程下载广告设计公司员工荣誉证书
  • 钓鱼网站二维码制作软件移动开发和网站开发
  • 珠宝网站模板潍坊高端网站建设公司
  • asp网站后台下载网络专题策划书模板
  • 网站开发商标属于哪一类深圳市城乡住房和建设局网站首页
  • 网站建设公司douyanet手表商城网站建设
  • 唐山快速建站的公司阿里云做网站预装环境
  • 自己做的网站网页错位建设公共资源交易中心网站
  • 大连金普新区规划建设局网站wordpress漂浮插件
  • 做网站用什么编程网站建设需要哪些必备文件
  • 青岛做网站排名wordpress设置个人头像
  • 温州网站建设外包如何做网站么