私は基本的にOOPで遊んでいて、サニタイズしてさらに検証を実行する際に問題が発生し始めたときに、入力を検証してサニタイズする方法を作成していました。私が探しているのは、投稿された$_POST['name']
データを取得し、入力をサニタイズして数字を削除し、残っているデータがどちらでもないnull
か数字であるかを検証することです。
しかし、サニタイズされた入力をに保存$sanitised
できません。空のようですが、置き換えると
$sanitised=$fv->noNumbers($_POST['name']);
と
$sanitised=preg_replace('/[0-9]/', '', $_POST['name']);
$sanitised
すべてが正常に機能するので、この変数で何かを台無しにしていると思います。
私は学びたいので、これに対する解決策または「あなたはばかで、それをすべて間違ってやっている」のどちらかが大いにありがたいです。
<?php
class formSanitise {
public function noNumbers($value) {
$value = preg_replace('/[0-9]/', '', $value);
}
public function isEmpty($value) {
return (!isset($value) || trim($value) == '') ? true : false;
}
public function isAlpha($value) {
return preg_match('/[^a-z]/i', $value) ? false : true;
}
?>
Processor.php
<?php
include('class.formSanitise.php');
$fv = new formSanitise();
$sanitised= $fv->noNumbers($_POST['name']);
if ($fv->isEmpty($sanitised)) {
$fv->addError('Name', 'Please enter something');
}
if (!$fv->isAlpha($sanitised)) {
$fv->addError('Name', 'Please enter your name');
}
?>