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
使用regex'处理PHP表单;It’这是一片空白_Php_Regex_Validation - Fatal编程技术网

使用regex'处理PHP表单;It’这是一片空白

使用regex'处理PHP表单;It’这是一片空白,php,regex,validation,Php,Regex,Validation,我的逻辑是尝试验证这两个文本字段(具体如何验证,请检查错误字符串),并使用一个标志,如果关闭该标志,则会将用户的最新数据恢复到原始形式,并将其最新数据仍写入字段中,并将无线框选中为其最后选择(默认值应为红色) 只要我尝试加载entry.php,它就会显示为完全空白。php很好,但是每当你点击submit时,它不会去任何地方,只会在文本区域中缩进默认字符串(奇怪和随机?) 无限的荣誉和感谢大家提前 源代码: (Entry.php) <?php if($_POST){

我的逻辑是尝试验证这两个文本字段(具体如何验证,请检查错误字符串),并使用一个标志,如果关闭该标志,则会将用户的最新数据恢复到原始形式,并将其最新数据仍写入字段中,并将无线框选中为其最后选择(默认值应为红色)

只要我尝试加载entry.php,它就会显示为完全空白。php很好,但是每当你点击submit时,它不会去任何地方,只会在文本区域中缩进默认字符串(奇怪和随机?)

无限的荣誉和感谢大家提前

源代码:

(Entry.php)

<?php
        if($_POST){
            $rchecked = "";
            $ychecked = "";
            $bchecked = "";
            $errormsgs = [];
            $valid = true;

            if(!preg_match("/^[-a-zA-Z0-9' ]{1,50}$/", $_POST['btitle'])){
                $errormsgs += "Your a need to fill in a blog title
                 that is no longer than 50 characters with only these
                 acceptable characters: Upper/lower case letters, spaces,
                 hyphens, and digits!";
                $valid = false;
            }
            if(!preg_match("/^[-a-zA-Z0-9<>' ]{1,500}$/", $_POST['bentry'])){
                $errormsgs += "You blog entry can't be empty or filled with
                only spaces, and can only use upper or lower case letters,
                spaces, hyphens, single quote marks, <> and digits. Lastly, it
                can't exceed 500 characters in length.";
                $valid = false;
            }

            if($valid){
    ?>
                <table border="1">
                    <font color="<?php echo $_POST['color']; ?>">
                    <tr>
                    <td>Blog Title:</td>
                    <td><?php echo $_POST['btitle']; ?></td>
                    </tr>
                    <tr>
                    <td>Blog Post:</td>
                    <td><?php echo $_POST['bentry']; ?></td>
                    </tr>
                    </font>
                </table>
    <?php
            }
            else{
                    include('top.php');
                    function selected($rchecked, $ychecked, $bchecked){
                        if ($_POST['color'] == "") $rchecked = "checked";
                        if ($_POST['color'] == "Yellow") $ychecked = "checked";
                        if ($_POST['color'] == "Blue" ) $bchecked = "checked";
                    }            
                }
        }
    ?>

博文:
(top.php)


您的博客标题:

您的第一个错误在这里:

$errormsgs = []; // array


$errormsgs += "Your ...";
+=
操作数在数组上不起作用

$a += $b; 
同:

$a = $a + $b;
用于计算和其他用途

我想你的意思是要做以下事情:

$errormsgs = array();
$errormsgs[0] =  "Your ...";
$errormsgs[1] =  "Your ...";

如果您执行
$errormsgs[]=“text”它将简单地向数组中添加另一个值,并自动递增索引。在本例中,是以索引0开始的空数组,依此类推

你也可以只做
$errormsgs[0]=“text”
$errormsgs[“error_1”]=“text”如果需要显式数组键/索引

您的第二个错误

除非发布了帖子,否则不会显示任何内容,所以请更改

if($_POST){
    //Everything
}

免费额外小费:

尝试启用错误报告,以便可以看到错误而不是空白屏幕

你会得到类似于:


致命错误:第####行字体标记上不支持的操作数类型?“这是几年?”提米,他来自未来!:)哈哈哈,其实只是个学PHP的学生。我还没有在网页设计方面涉猎太多,所以我只是在这方面做一些尝试。我已经在其他一些问题中看到了这段代码@u_mulder是的,但这是一个完全不同的问题的更大代码的一部分。如果需要,这个逻辑会将两个字符串分成两个索引吗?errormsgs[0]和errormsgs[1]是的,在我的回答中添加了一些解释,祝你学习PHP好运!和psshh不使用字体标记;)你一定要接受这个答案幸运的是,它仍然为我画了一张空白,打开了错误,所有内容:\噢,所有内容都在
if($\u POST){}
之间,因此除非发布了帖子,否则它不会显示任何内容。增加了一个例子来回答这个问题
$errormsgs = array();
$errormsgs[] =  "Your ...";
$errormsgs[] =  "Your ...";
if($_POST){
    //Everything
}
// initialize variables
if($_POST){
    //Do all checks
}
//show form here