不起作用:为空字段赋值 - php


Not working: Giving an empty field a value - php

http://pastebin.com/RE31BRSQ

当我做一个

if ( empty($_POST['name']) ) {
    $name = 'anon'; 
} else {
    $name = $_POST['name']; 
}

名称始终是匿名的,即使有人在字段中输入字符也是如此。

if ( empty($_POST['title']) ) {
} else {
    $title = sha1( $_POST['title'] );
}

我怎样才能让它在['title']前面插入一个!

不要依赖empty() .它可以转身咬你。请注意,像0这样的东西被认为是"空的",即使任何理智的人都不会。

我看不出您的第一个示例有什么问题,因此请确保您表单的"名称"字段实际上称为"名称"。这些键区分大小写,因此$_POST['Name']$_POST['nAmE']完全不同。

至于你的第二个例子,如果你的意思是!"not"运算符,你会这样做

if (!empty($_POST['title'])) {
   ...
}

1.) 您真的确定您的输入字段名为 name 吗?我还建议使用isset()

if ( isset($_POST['name']) && !empty($_POST['name']) )
{
  $name = $_POST['name'];
}
else
{
  $name = 'anon';
}

2.) 使用串联运算符(如果要在哈希之前在所有标题前面加上!):

$title = sha1( '!'.$_POST['title'] );