Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP 2.4:不需要的预填充表单数据_Php_Forms_Cakephp_Textfield_Autofill - Fatal编程技术网

CakePHP 2.4:不需要的预填充表单数据

CakePHP 2.4:不需要的预填充表单数据,php,forms,cakephp,textfield,autofill,Php,Forms,Cakephp,Textfield,Autofill,我有一个表单可以添加新用户。只有已登录的管理员才能访问此表单。不幸的是,管理员的用户名和密码被填入表单字段中,这些字段应该是完全清楚的。一件非常奇怪的事情是:用户名被打印到生日字段中 我真的无法解释它是如何工作的。我在WWW上找不到任何有同样问题的人的帖子——我只找到了关于所需预填表单数据的问题和答案 这是视图/Users/add.ctp <h1>Add a new Member</h1> <?php echo $this->Form->create('

我有一个表单可以添加新用户。只有已登录的管理员才能访问此表单。不幸的是,管理员的用户名和密码被填入表单字段中,这些字段应该是完全清楚的。一件非常奇怪的事情是:用户名被打印到生日字段中

我真的无法解释它是如何工作的。我在WWW上找不到任何有同样问题的人的帖子——我只找到了关于所需预填表单数据的问题和答案

这是视图/Users/add.ctp

<h1>Add a new Member</h1>
<?php echo $this->Form->create('User', array('url' => BASE_URL.'/users/add', 'action'=>'post')); ?>
<table class="form">
     <tr><td>Username:</td><td><?php echo $this->Form->input('User.username', array('label' => false, 'div' => false, 'value' => ''));?></td></tr>
     <tr><td>Name:</td><td><?php echo $this->Form->input('User.name', array('label' => false, 'div' => false, 'value' => ''));?></td></tr>
     <tr><td>Lastname:</td><td><?php echo $this->Form->input('User.lastname', array('label' => false, 'div' => false, 'value' => ''));?></td></tr>
     <tr><td>E-Mail:</td><td><?php echo $this->Form->input('User.email', array('label' => false, 'div' => false, 'value' => ''));?></td></tr>
     <tr><td>Birthday:</td><td><?php echo $this->Form->input('User.birth', array('label' => false, 'div' => false, 'value' => ''));?></td></tr>
     <tr><td>Password:</td><td><?php echo $this->Form->input('User.password', array('label' => false, 'div' => false, 'value' => ''));?></td></tr>
</table>

<?php 
     echo $this->Form->submit('Submit', array('formnovalidate' => true));
     echo $this->Form->end();
?>
顺便说一句:保存效果很好。 当然,管理员是对象用户,要添加的新成员也是对象用户。我想,问题就在这里,但我真的不知道。。。我整天都在想这个问题:(有人知道该怎么办吗


提前感谢。

检查您的
$this->data

CakePHP使用在那里找到的数据自动完成表单,因为它猜测这是用户已经提交的数据

在您的示例中,如果您在
$this->data['User']['birth']
中有一些值,它应该在生日输入中显示该值。

不是您的浏览器?(第一次键入时保存的用户名/密码)

所以,您可以打开自动完成

<?php echo $this->Form->create('User', array('url' => BASE_URL.'/users/add', 'action'=>'post', 'autocomplete' => 'off')); ?>


这个选项=>'autocomplete'=>'off'

哦,天哪……你明白了!我太蠢了!非常感谢你!我想我完全集中在这个问题上了,为什么用户名出现在生日字段,而不是用户名字段。这就是为什么我没有看到显而易见的事情。非常感谢你的帮助。@Snoops很高兴这有帮助你。这是很正常的错误,总是发生在我身上。不是这样,我先检查了这个。但是非常感谢你的提示。
$this->data
不是你想要检查的变量。看看
$this->request->data
,因为它是请求的一部分。不是控制器的一部分。'url'和'action'一起没有意义:),另外,url不应该声明得那么复杂,使用控制器和操作键的数组语法就足够了。放下那些“有价值”的东西,它也会在失效时破坏你的表格。坏主意。尽量简单(你输入的越少越好)。谢谢你的评论。我知道cakePHP允许以更舒适的方式生成表单。但我仍然需要“url”的东西,因为域重定向存在一个非常恼人的问题,不幸的是,这不是由htaccess造成的,而是由iFrame造成的。。。如果我不这样声明url,表单将不会保存任何内容,不会给出任何失败消息,但只会再次加载表单。。。到目前为止,我还没有采取任何措施来反对它,必须使用我所拥有的:'(然后你可以放弃行动。将两者都放在那里是没有用的,因为至少其中一个没有做它应该做的事情,并且只会继续让每个人感到困惑:)
<?php echo $this->Form->create('User', array('url' => BASE_URL.'/users/add', 'action'=>'post', 'autocomplete' => 'off')); ?>