php错误表格上的错误



我有以前用来从用户那里收集信息并在.txt文档中存储信息的PHP代码。

谁能告诉我怎么了?

谢谢

将代码编辑为我认为错误指向

.php文件vv

<?php
if(isset($_POST['Name']) && isset($_POST['Email']) && isset($_POST['PNumber']) && isset($_POST['PostC']) {
    $data = $_POST['Name'] . '-' . $_POST['Email'] . '-' . $_POST['PNumber'] . '-' . 
$_POST['PostC'] . "n";
    $ret = file_put_contents('mydata.txt', $data, FILE_APPEND | LOCK_EX);
    if($ret === false) {
        die('There was an error writing this file');
    }
    else {
        echo "$ret bytes written to file";
    }
}
else {
   die('no post data to process');
}
$location = "index.html";
header( "Location: $location" );

HTML VVVV

 <script>
$(function() {
    $("#Subscribe").validate({
        rules: {
            Name: {
                required: true,
                minlength: 2,
                maxlength: 23,
                },
            Email: {
                required: true,
                email: true
                },
            PNumber: {
                required: false,
                number: true
                 },
            PostC: {
                required: false,
                 }
    }});
});
                    </script>
<form id="Subscribe" method="POST" action="subscribe.php">
<p class="subBox"><span>(Required) Name: &nbsp; &nbsp;</span><input id="Name" type="text" name="Name" size="20"></p>
<p class="subBox"><span>(Required) Email: &nbsp; &nbsp;</span><input id="Email" type="text" name="Email" size="20"></p>
<p><span>(Optional) Number: </span><input id="PNumber" type="text" name="PNumber" size="20"></p>
<p><span>(Optional) Postcode: </span><input "PostC" type="text" name="PostC" size="20"></p>
<p class="Submit"><span><input type="submit" value="Subscribe" name="Submit"></span></p>
</form>

它应该像以前一样将输入的文本存储到mydata.txt文件中,但给出了错误:

PHP解析错误:语法错误,意外'&amp;''(t_boolean_and(在 (为安全删除(/subscribe.php在第2行

注意:我已经复制了以前工作的内容,但是这次我更改了选项

在第2行中的条件

中的条件

if(iSSET($ _ post ['name'](_post ['postc']((

正如许多这里所说的那样,您的方括号似乎有问题。如果您写出很多条件的陈述时,您应该首先问自己这是否是最好的设置(根据我的经验,在很多情况下,如果经常指出错误,或者很容易简化(。如果不是这种情况(有时您确实必须吮吸它并写出所有条件(,则应该将其分解出来,以便更容易阅读,更容易查看括号"平衡"的位置,更易于调试。我会写这样的陈述:

if(//opening bracket
   isset($_POST['Name']) 
   && isset($_POST['Email']) 
   && isset($_POST['PNumber']) 
   && isset($_POST['PostC']) )//extra incorrect bracket which is now easy to spot
 )//closing bracket - in line with the opening bracket {
//do some stuff
}

如果您的条件更复杂,这将帮助您进一步,例如:

if( 
    (//first set of conditions
      isset(condition_1)
      && isset(condition_2)
    ) &&
    (//second set of conditions
      isset(condition_3) 
      || isset(condition_4)
    )
  )

通过这样做,您可以轻松地看到您的状况平衡的位置(即开放匹配的近距离(。请记住,您不会因为将所有条件在一行上获得所有条件而赢得任何奖品,并且较少的代码行不等于更有效的代码,如您的示例所示。

也值得注意的是,您无需每次编写isset,使用isset您可以说isset($var1,$var2,$var3),这与编写所有&& issset'S。

相同

我希望这对您的未来编码有帮助,并将帮助您更快地调试

相关内容

最新更新