Parse error: syntax error, unexpected '{' in 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>
On my first run of the file the in_array function doesnt seem to work.I mean functions like isset() are displayed in bold but it seems the in_array function is not detected. The browser displays the error as:
( ! ) Parse error: syntax error, unexpected '{' in C:wampwwwreg.php on line 15.
$requiredfields = ("firstname","lastname","password1","password2","gender");
This line is invalid. You should have the keyword array
before the (
.
In general, use a code editor that has bracket matching. This would help you find missing )}]
and extra ({[
more easily. Some even include HTML tag matching in a similar way.
http://notepad-plus-plus.org/ is a good example.
function setChecked($fieldname,$fieldvalue){
if((isset($_POST[$fieldname]) and ($_POST[fieldname] == $fieldvalue)){
The second (
in if((
needs to go away.
You also need to add array
in the $requiredfields = ...
line:
$requiredfields = array("firstname","lastname","password1","password2","gender");
As said previously : use && , ||
rather than and , or
. You need array('a', 'b', 'c')
, you need to be very careful with upper, lower case : $fieldname
is not the same as $fieldName
(n/N). There are a few other elements to check this should help :
<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>
Hope it helps.
链接地址: http://www.djcxy.com/p/69852.html上一篇: 意外的elseif