<?php
if (!isset($_POST['ign'], $_POST['email'])) {
if($_POST['ign'] && $_POST['email']){
echo "Please fill out all of the fields!";
die;
}
if (empty($_POST['ign']) || empty($_POST['email'])) {
echo ("Please enter all of the values!");
die;
}
if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
$email = $_POST['email'];
echo ("Thanks, " . htmlentities($_POST['ign']) . ", you will recieve an email when the site is complete!");
}
else {
echo "Your email was invalid!";
die;
}
?>
我在最后一行收到语法错误?&gt;是..
另外,只是一个随机的旁注,任何人都可以教我如何将其插入到我的代码中吗?
$valid = (bool)preg_match('/^[a-zA-Z0-9]{1,30}$/', $_POST['username']);
只是
if ($valid == TRUE) {
////////
}
或者声明该变量已经在运行吗?
答案 0 :(得分:5)
您在第一个}
区块中缺少结束大括号if
。
答案 1 :(得分:0)
如果不遵循脚本的逻辑,则有五个开括号{和四个闭括号}
答案 2 :(得分:0)
您在{
行周围打开两个范围(if (!isset($_POST['ign'], $_POST['email']))
),因此您需要在需要的地方关闭悬空范围。
答案 3 :(得分:0)
您可以从上一个问题Validate Email Error获取代码,并添加用户名长度的测试,并检查用户名是否为字母数字,如下所示:
<?php
if (isset($_POST['ign'], $_POST['email'])) {//do the fields exist
if($_POST['ign'] && $_POST['email']){ //do the fields contain data
if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {//is the email address of valid form
if(ctype_alnum($ign) && ($ign.length > 0) && ($ign.length <= 30)){//is ign alphanumeric and between 1 and 30 characters long
echo ("Thanks, " . htmlentities($_POST['ign']) . ", you will recieve an email when the site is complete!");
}
else{
echo ("Please enter a valid user name!");
}
}
else{
echo ("Please enter a valid email!");
}
}
else {
echo ("Please enter all of the values!");
}
}
else {
echo ("Error in form data!");
}
?>
注意:如果我假设$_POST['ign']
是您在(bool)preg_match('/^[a-zA-Z0-9]{1,30}$/', $_POST['username'])
行中的意思,那就错了...发布您需要的更多详细信息,我会更新我的答案。