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