PHP
if (intval($_GET['subj']) == 0) { foreach($required_fields as $fieldname)
{
if(!isset($_POST[$fieldname]) || empty($_POST[ $フィールド名]) || intval($_POST[$fieldname]) {
$errors[] = $fieldname;
}
}
含まれているのは $_POST[$fieldname] が 0 より大きい数値であり、期待されているかどうか?
非常に感銘深い二位以上の回答。同様に、コードが例の結果とは異なります。これが原因です。
foreach($required_fields as $fieldname) {
if (!isset($_POST[$fieldname]) || (empty($_POST[$fieldname]) && $_POST[$fieldname] !=0)) {
}
}
この関数が意味するかどうか、結果 $_POST[$fieldname] が設定されていない、または $_POST[$fieldname] が空值および 0 である場合、一個の错误数组$errors[] = $fieldname が返されます。
しかし、実際には、その次のコードはすべて実行されます。了非法数据
另外昨天我说错了
empty($_POST[$fieldname]) && $_POST[$fieldname] !=0 表示的である
empty($_POST[$fieldname]) $_POST[$fieldname]空
&& 同時
$_POST[$fieldname] !=0 $_POST[$fieldname] 不等以下 0
那么这个表达式永远不会成立!
修正された問題をコピーしていませんか?
if (!isset($_POST[$fieldname]) || (empty($_POST[$fieldname]) || $_POST[$fieldname] ==0)) {
……
ビデオを見ています, コードをステップごとに書き留めて、間違っている場合はビデオで確認しましたが、それでも違いがわかりません。ご返信ありがとうございます。読みやすいように、上記のコードを再度フォーマットします。
問題は解決しました。上の二人のアドバイスに従ってください。
変更: if (!isset($_POST[$fieldname]) || (empty($_POST[$fieldname]) && $_POST[$fieldname] != 0)) {
$errors[] = $fieldname; if (!isset($_POST[$fieldname]) || empty($_POST[$fieldname]) || $_POST[$fieldname] == 0) {
$errors[] = $fieldname に変更します。 ; }
}
しかし、問題は、ビデオを見ているときに、なぜ元のコードが正常に実行できるのかということです。