Форма не отображается?

1

Мне нужна помощь, и я надеюсь, что один из вас ответит за меня. У меня есть задание для курса PHP. Для этого задания нам было поручено создать форму с 4 полями ввода (включая кнопку сброса и отправки). Поля должны быть помечены как имя, адрес, адрес электронной почты и номер телефона. Теперь, когда я пишу код в Dreamweaver, я не получаю никаких синтаксических ошибок, но всякий раз, когда я запускаю скрипт с помощью Wamp, форма не отображается. Любая помощь будет оценена, поскольку это то, что нужно сделать для нашего среднего возраста.

<?php
function validateInput($data, $fieldName) {
    global $errorCount;
    if (empty($data)) {
        echo "\"$fieldName\" is a required field. <br />\n";
        ++$errorCount;
        $retval = "";
    } else { //Only clean up the input if it isn't // empty
    $retval = trim($data);
    $retval = stripslashes($retval);
    }
    return($retval);
}
function validateEmail ($data, $fieldName) {
    global $errorCount;
    if (empty($data)) {
        echo "\"$fieldName\" is a required field.<br />\n";
        ++$errorCount;
        $retval = "";
    } else { // Only Clean up the input if it isn't // empty
    $retval = trim($data);
    $retval = stripslashes($retval);
    $pattern = "/^[\w-]+(\.[\w-]+)*@" .
    "[\w-]+(\.[\w-]+)*" .
    "(\. [[a-z]]{2,})$/i";
    if (preg_match($pattern, $retval)==0) {
        echo "\"$fieldName\" is not a valid e-mail address.<br />\n";
        ++$errorCount;
    }
    }
    return($retval);
}
function displayForm($Sender, $Email, $Address, $Phone) {
?>
<h2 style= "text-align:center">Contact Us</h2>
<form name="contact" action="contact_us.php" method="post">
<p>Your Name: <input type="text" name="Sender" value="<?php
echo $Sender; ?>" /> </p>
<p>Your E-mail: <input type="text" name="Email" value="<?php echo $Email; ?>" /></p>
<p>Address: <input type="text" name="Address" value="<?php echo $Address; ?>" /></p>
<p>Phone #: <input type="number" name="Phone" value="<?php echo $Phone; ?>"<br /> 
</p>
<p><input type="reset" value="Clear Form" />&nbsp; &nbsp;<input type="submit" name="Submit" value="Send Form" /></p>
</form>
<?php
}
$ShowForm = TRUE;
$errorCount = 0;
$Sender = "";
$Email = "";
$Address = "";
$Phone = "";
if (isset($_POST['Submit'])) {
    $Sender = 
    validateInput($_POST['Sender'], "Your Name");
    $Email = 
    validateEmail($_POST['Email'], "Your E-mail");
    $Subject = 
    validateInput($_POST['Address'], "Your Address");
    $Message = 
    validateInput($_POST['Phone'],"Your number");
    if ($errorCount==0)
    $ShowForm = FALSE;
    else
    $ShowForm = TRUE;
}
if ($ShowForm == TRUE) {
    if ($errorCount>0) // if there were errors echo "<p>Please re-enter the form information below.</p>\n"; 
    displayForm($Sender, $Email, $Address, $Phone);
}
else {
    $SenderAddress= "$Sender <$Email>";
    $Headers= "From: $SenderAddress\nCC:
    $SenderAddress\n";
    // Substitute your own email address for // [email protected]
    $result = mail ("[email protected]",
    $Subject, $Message, $Headers);
    if ($result)
    echo "<p>Your message has been sent. Thank you, " . $Sender . ".</p>\n";
    else
    echo "<p>There was an error sending your message, " .
    $Sender . ".</p>\n";
} ?>
Теги:
forms

2 ответа

0
Лучший ответ

Вы ничего не видите, потому что вы не вызываете функцию displayForm(), которую вы просто создаете.

поэтому поставьте этот displayForm(); до конца вашего тега php и посмотреть, что произойдет.

0
if ($ShowForm == TRUE) {
    if ($errorCount>0) // if there were errors echo "<p>Please re-enter the form information below.</p>\n"; 
    displayForm($Sender, $Email, $Address, $Phone);
}

Похоже, ваша форма настроена только для отображения, когда $ShowForm == TRUE && $errorCount > 0. Поскольку ваши значения по умолчанию: $ShowForm = TRUE and $errorCount = 0 ваша форма никогда не будет отображаться.

Вот почему использование фигурных скобок на вашем ifs при увеличении размера файла очень помогает при устранении неполадок.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню