PDO中的preg_replace

时间:2013-10-17 18:42:51

标签: php pdo

我正在使用preg_replace函数来确保输入的所有数据都是数字。

看起来像这样:

$name = $_POST['name'];
if( isset( $name ) ) $name = stripslashes( strip_tags( $name ) );
$name = preg_replace('/[^0-9]/', '', $name);
if (isset($name)){
if(!preg_match('/^[0-9]+$/', $name)){
    echo '<br>Invalid data';
} else {
$stmt = $db->prepare("INSERT INTO categories(post_topic) VALUES(:name)");
$stmt->bindValue(':name', $name, PDO::PARAM_STR);
$stmt->execute();
}
}

但是当页面首次加载时,即使$ name未设置,它也会显示无效数据。我如何才能使错误消息仅在值中包含无效字符时显示?

1 个答案:

答案 0 :(得分:0)

您需要检查POST是否确实发生过。现在你的代码无条件运行:

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    .... do your stuff here ...
}
相关问题