解析错误:语法错误,在C:\ wamp \ www \ reg.php中出现意外的'{'
<html>
<head>
<title>
Registration
</title>
</head>
<?php
if(isset($_POST['submit buttton'])){
processForm();
}else{
displayForm();
}
/*check out this function. Here in array doesnot work*/
function validateField($fieldname,$missingfield){
if(in_array($fieldname,$missingfield)){
echo 'class = "error"';
}
}
function setValue($fieldname){
if(isset($_POST[$fieldname])){
echo $_POST[$fieldname];
}
}
function setChecked($fieldname,$fieldvalue){
if((isset($_POST[$fieldname]) and ($_POST[fieldname] == $fieldvalue)){
echo 'checked = "checked"';
}
}
function setSelected( $fieldName, $fieldValue ) {
if ( isset( $_POST[$fieldName] ) and $_POST[$fieldName] == $fieldValue ) {
echo ' selected="selected"';
}
}
function processForm(){
$requiredfields = ("firstname","lastname","password1","password2","gender");
$missingfields = array();
foreach($missingfields as $missingfield){
if((!isset($_POST[$requiredfield]) or $_POST[$requiredfield]){
$missingfields[] = $requiredfield ;
}
}
if ( $missingFields ) {
displayForm( $missingfields );
} else {
displayThanks();
}
}
function displayForm($missingfields){
<?php
<h1>Membership Form</h1>
<?php if ( $missingFields ) { ?>
<p class="error">There were some problems with the form you submitted.
Please complete the fields highlighted below and click Send Details to
resend the form.</p>
<?php } else { ?>
<p>Thanks for choosing to join The Widget Club. To register, please
fill in your details below and click Send Details. Fields marked with an
asterisk (*) are required.</p>
?>
<?php } ?>
<form action="registration.php" method="post">
<div style="width: 30em;">
<label for="firstName"<?php validateField( "firstName",
$missingFields ) ?>>First name *</label>
<input type="text" name="firstName" id="firstName"
value="<?php setValue( "firstName" ) ?>" />
<label for="lastName"<?php validateField( "lastName",
$missingFields ) ?>>Last name *</label>
<input type="text" name="lastName" id="lastName" value=
"<?php setValue( "lastName" ) ?>" />
<label for="password1"<?php if ( $missingFields ) echo
' class="error"’ ?>>Choose a password *</label>
<input type="password" name="password1" id="password1" value="" />
<label for="password2"<?php if ( $missingFields ) echo
' class="error"’ ?>>Retype password *</label>
<input type="password" name="password2" id="password2" value="" />
<label<?php validateField( "gender", $missingFields ) ?>>Your
gender: *</label>
<label for="genderMale">Male</label>
<input type="radio" name="gender" id="genderMale" value=
"M"<?php setChecked( "gender", "M" )?>/>
<label for="genderFemale">Female</label>
<input type="radio" name="gender" id="genderFemale" value=
"F"<?php setChecked( "gender", "F" )?> />
<label for="favoriteWidget">What’s your favorite widget? *</label>
<select name="favoriteWidget" id="favoriteWidget" size="1">
<option value="superWidget"<?php setSelected( "favoriteWidget",
"superWidget" ) ?>>The SuperWidget</option>
?>
</html>
在我第一次运行该文件时,in_array函数似乎不起作用。我的意思是像isset()这样的函数以粗体显示,但似乎in_array函数未被检测到。 浏览器显示错误为:
(!)解析错误:语法错误,在第15行的C: wamp www reg.php中出现意外的'{'。
$requiredfields = ("firstname","lastname","password1","password2","gender");
此行无效。 (
之前应该有关键字array
。
通常,使用具有括号匹配的代码编辑器。 这会帮助你找到缺失)}]
和extra ({[
更容易。有些甚至包括类似HTML标签匹配。
http://notepad-plus-plus.org/就是一个很好的例子。
function setChecked($fieldname,$fieldvalue){
if((isset($_POST[$fieldname]) and ($_POST[fieldname] == $fieldvalue)){
第二个(
在if((
需要离开。
您还需要在$requiredfields = ...
行中添加array
:
$requiredfields = array("firstname","lastname","password1","password2","gender");
如前所述:使用&& , ||
而不是and , or
。 你需要array('a', 'b', 'c')
,你需要非常小心大小写: $fieldname
与$fieldName
(n / N)不一样。 还有一些其他元素可以帮助你:
<html>
<head>
<title>Registration</title>
<style type="text/css">.error{color:#F00}</style>
</head>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
processForm();
}
else {
displayForm();
}
function validateField($error)
{
if($error)
{
return 'class="error"';
}
}
function setValue($fieldname)
{
if(isset($_POST[$fieldname]))
{
return $_POST[$fieldname];
}
}
function setChecked($fieldname,$fieldvalue)
{
if(isset($_POST[$fieldname]) && $_POST[$fieldname] == $fieldvalue)
{
return ' checked="checked"';
}
}
function setSelected( $fieldname, $fieldvalue )
{
if ( isset( $_POST[$fieldname] ) && $_POST[$fieldname] == $fieldvalue )
{
return ' selected="selected"';
}
}
function processForm()
{
$requiredfields = array("firstName", "lastName", "password1", "password2", "gender");
$missingfields = array();
$missingfields['title'] = false;
foreach($requiredfields as $requiredfield)
{
if(!isset($_POST[$requiredfield]) || empty($_POST[$requiredfield]))
{
$missingfields[$requiredfield] = true;
$missingfields['title'] = true;
}
else {
$missingfields[$requiredfield] = false;
}
}
if ($missingfields['title'])
{
displayForm( $missingfields );
}
else {
echo displayThanks();
}
}
function displayThanks()
{
return '<h1>Everything is OK !</h1>';
}
function displayForm($missingfields)
{
?>
<h1>Membership Form</h1>
<?php if ($missingfields['title']) { ?>
<p class="error">There were some problems with the form you submitted.
Please complete the fields highlighted below and click Send Details to
resend the form.</p>
<?php } else { ?>
<p>Thanks for choosing to join The Widget Club. To register, please
fill in your details below and click Send Details. Fields marked with an
asterisk (*) are required.</p>
<?php } ?>
<form action="registration.php" method="post">
<div style="width: 30em;">
<label for="firstName"<?php echo validateField( $missingfields['firstName'] ) ?>>First name *</label>
<input type="text" name="firstName" id="firstName" value="<?php echo setValue( "firstName" ) ?>" />
<br>
<label for="lastName"<?php echo validateField( $missingfields['lastName'] ) ?>>Last name *</label>
<input type="text" name="lastName" id="lastName" value="<?php echo setValue( "lastName" ) ?>" />
<br>
<label for="password1"<?php echo validateField( $missingfields['password1'] ); ?>>Choose a password *</label>
<input type="password" name="password1" id="password1" value="" />
<br>
<label for="password2"<?php echo validateField( $missingfields['password2'] ); ?>>Retype password *</label>
<input type="password" name="password2" id="password2" value="" />
<br>
<label<?php echo validateField( $missingfields['gender'] ) ?>>Your gender: *</label>
<label for="genderMale">Male</label>
<input type="radio" name="gender" id="genderMale" value="M" <?php echo setChecked( "gender", "M" )?>/>
<label for="genderFemale">Female</label>
<input type="radio" name="gender" id="genderFemale" value="F" <?php echo setChecked( "gender", "F" )?> />
<br>
<label for="favoriteWidget">What’s your favorite widget? *</label>
<select name="favoriteWidget" id="favoriteWidget" size="1">
<option value="superWidget"<?php echo setSelected( "favoriteWidget", "superWidget" ) ?>>The SuperWidget</option>
</select>
<br>
<input type="submit" value="Sign up">
</div>
</form>
<?php } ?>
</html>
希望能帮助到你。
链接地址: http://www.djcxy.com/p/69851.html上一篇: Parse error: syntax error, unexpected '{' in C:\wamp\www\reg.php