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

下一篇: 解析错误:语法错误,在C:\ wamp \ www \ reg.php中出现意外的'{'