0

http://pastebin.com/RE31BRSQ

当我做一个

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

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

还,

if ( empty($_POST['title']) ) {

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

我怎样才能使它有一个!插入的前面['title']

4

2 回答 2

1

不要依赖empty()。它可以转身咬你。请注意,即使任何理智的人都不会这样做,但诸如此类的东西0都被认为是“空的”。

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

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

if (!empty($_POST['title'])) {
   ...
}
于 2012-05-01T18:56:23.240 回答
0

1.) 你真的确定你的输入字段被命名了name吗?我还建议使用isset()

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

2.) 使用连接运算符(如果你想在所有标题前面加上一个!散列):

$title = sha1( '!'.$_POST['title'] );
于 2012-05-01T18:56:14.700 回答