我是一名PHP初學者,我不知道爲什麼這段代碼不工作,但它應該,我試圖做一個簡單的用戶驗證:PHP中的基本表單驗證不起作用
$user=$_POST['user'];
$message=$_POST['message'];
if (!isset($user) || !isset($message) || $user == ' ' || $message == ' ')
echo " please fill a valid user and message";
謝謝
我是一名PHP初學者,我不知道爲什麼這段代碼不工作,但它應該,我試圖做一個簡單的用戶驗證:PHP中的基本表單驗證不起作用
$user=$_POST['user'];
$message=$_POST['message'];
if (!isset($user) || !isset($message) || $user == ' ' || $message == ' ')
echo " please fill a valid user and message";
謝謝
它情理之中的事isset()函數檢查$ _POST陣列上,以確保你不會得到很多的「未定義指數」的警告。
也許這樣的事情會爲你工作
$user = isset($_POST['user']) ? $_POST['user'] : null;
$message = isset($_POST['message']) ? $_POST['message'] : null;
if (empty($user) || empty($message)) echo " please fill a valid user and message";
既然你是新來的PHP - 讓我解釋一下這個部分:
$user = isset($_POST['user']) ? $_POST['user'] : null;
它,基本上說來$用戶設置$ _POST ['user']如果$ _POST數組已經定義了'user'項目。否則 - $ user變量被設置爲null。每當您不確定具有某個索引的元素是否在數組中定義時,通常最好檢查isset()。
,當然,如果你的HTML格式是正確的做
下面這隻會工作的形式爲樣本,你可以使用
<form action="/test.php" method="POST">
<input type="text" name="user" placeholder="Enter your username here">
<input type="text" name="message" placeholder="Enter your message here">
<input type="submit" value="send">
</form>
請務必將其替換test.php的你腳本名稱
請讓我知道這對你的作品
至於下一步 - 我建議你檢查出this nice article解釋不同在空()和isset()函數之間使用用例。
最終,我們可以用這樣的事情結束了
if (empty($_POST['user']) || empty($_POST['message'])) echo " please fill a valid user and message";
有一種方法可以縮短這個更多 –
沒有必要檢查isset()然後empty(),空都做 – Tom
謝謝弗雷德,湯姆,將編輯我的答案並添加一些細節,特別是關於isset()和empty()此示例中的用法 –
http://php.net/manual/en/function.error-reporting.php –
和代碼'$這部分用戶= =''|| $ message =='''正在檢查空間而不是預期的「空」。只需使用'empty()'或更好,一個三元運算符。你也應該發佈你的HTML表單,並保持猜測。 –