Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的基本表单验证不需要';行不通_Php_Forms_Validation - Fatal编程技术网

PHP中的基本表单验证不需要';行不通

PHP中的基本表单验证不需要';行不通,php,forms,validation,Php,Forms,Validation,我是php的初学者,我不知道为什么这段代码不能正常工作,而它应该正常工作,我正在尝试做一个简单的用户验证: $user=$_POST['user']; $message=$_POST['message']; if ( !isset($user) || !isset($message) || $user == ' ' || $message == ' ') echo " please fill a valid user and message"; 谢谢对$\u

我是php的初学者,我不知道为什么这段代码不能正常工作,而它应该正常工作,我正在尝试做一个简单的用户验证:

$user=$_POST['user'];            
$message=$_POST['message'];

if ( !isset($user) || !isset($message) || $user == ' ' || $message == ' ')    
echo " please fill a valid user and message";
谢谢

对$\u POST数组执行isset()检查以确保不会收到大量“未定义索引”警告是有意义的

也许这样的东西对你有用

$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;  
基本上,如果$\u POST数组定义了一个“user”项,它会将$user设置为$\u 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>

这部分代码
$user=''| |$message=''
正在检查空格,而不是预期的“空”。只需使用
empty()
或更好的三元运算符。您还应该发布与此相关的HTML表单,避免猜测。有一种方法可以进一步缩短此表单无需检查isset(),然后检查empty(),empty确实如此Hanks Fred,Tom将编辑我的答案并添加一些详细信息,特别是关于此示例中isset()和empty()的用法
if (empty($_POST['user']) || empty($_POST['message'])) echo " please fill a valid user and message";