PHP,回声';1';或不回显指定的值
我已经创建了一个简单的表单验证,PHP代码在PHP,回声';1';或不回显指定的值,php,forms,Php,Forms,我已经创建了一个简单的表单验证,PHP代码在值属性中使用时自动键入表单,名称和注释显示正确,除了电子邮件(input type=“text”)。我是否正确编写了代码,或者我的代码是否有任何代码气味 编辑:我的问题不是,我没有收到一个主要的,它是 我得到一个值1或该值被清除。 PHP代码:- <?php if($_SERVER['REQUEST_METHOD']=='POST') { $error=""; if(strlen ( $_POST['name'] ) <
值
属性中使用时自动键入表单,名称和注释显示正确,除了电子邮件
(input type=“text”)。我是否正确编写了代码,或者我的代码是否有任何代码气味
编辑:我的问题不是,我没有收到一个主要的,它是
我得到一个值1或该值被清除。
PHP代码:-
<?php
if($_SERVER['REQUEST_METHOD']=='POST') {
$error="";
if(strlen ( $_POST['name'] ) < 5 ) {
$error = "Please type more than 4 characters<br/>";
}
if ( $_POST['email']="" || !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL) ){
$error.= "Please type a valid Email<br/>";
}
if(strlen($_POST['comment']) < 4){
$error.= "Please type more than 4 characters";
}
if( !empty($error) ){
$result = "<div class='alert alert-danger'>$error</div>";
}
else {
if( mail('jokersspirit@gmail.com','test message',"Name:".$_POST['name'].
"Email:".$_POST['email'].
"Comment:".$_POST['comment']) ){
$result = "<div class='alert alert-success'>Your form has been submitted</div>";
}
else{
$result = "<div class='alert alert-success'>Error occurred
while submitting your form please try again later</div>";
}
}
}
?>
您的错误在这里
if ( $_POST['email']="" || !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL) ){
替换为:
if ( $_POST['email']=="" || !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL) ){
(=
替换为=
)
如果没有它,您的$\u POST['email']
将是一个空字符串。在检查电子邮件时,您似乎在使用赋值运算符(=)而不是相等运算符(=)。这将导致$_POST['email']变量被分配给一个空字符串。只需将写着“$\u POST['email']=”
的部分改为“$\u POST['email']=”
侧注:您的邮件很可能会变成垃圾邮件和/或被标记为垃圾邮件。没有正确使用附加标题。@Fred ii-没有,我使用xampp,这是编写代码的有效方法,还是可以改进我的代码?请参阅手册和示例#2。另外,在mail()
中放置POST数组的方式容易出现XSS注入;不太好。非常抱歉,我在家学习,没有人指出。谢谢你,我保证下次我会非常谨慎,永远不会破坏这个社区。
if ( $_POST['email']=="" || !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL) ){