2013-11-02 3 views
0

Я очень новичок в PHP и почему-то попал в курс продвинутого уровня. Мой преподаватель не будет предлагать никакой помощи, поскольку это продвинутый курс. Я напишу свой код ниже в надежде, что кто-то может по крайней мере указать мне в правильном направлении для исправления. Это только первая часть задания, но не стоит идти дальше, если я не могу заставить эту часть работать. Я считаю, что я проверил все фигурные скобки и цитаты, но я наверняка мог пропустить что-то или ?????.Ошибка PHP-анализа: синтаксическая ошибка, неожиданный конец файла

<!DOCTYPE HTML> 
<html> 
<head> 
<style> 
.error {color: #FF0000;} 
</style> 
</head> 
<body> 

<?php 
// define variables and set to empty values 
$name1Err = $name2Err = $dobErr = $stateErr = $zipErr = ""; 
$name1 = $name2 = $dob = $state = $zip = ""; 

if ($_SERVER["REQUEST_METHOD"] == "POST") 
{ 
    if (empty($_POST["name1"])) 
    {$name1Err = "First Name is required";} 
    else 
    { 
    $name1 = test_input($_POST["name1"]); 
    // check if name only contains letters and whitespace 
    if (!preg_match("/^[a-zA-Z ]*$/",$name1)) 
     { 
     $name1Err = "Only letters and white space allowed"; 
     } 
    } 

    if (empty($_POST["name2"])) 
    {$name2Err = "Name is required";} 
    else 
    { 
    $name2 = test_input($_POST["name2"]); 
    // check if name only contains letters and whitespace 
    if (!preg_match("/^[a-zA-Z ]*$/",$name2)) 
     { 
     $name2Err = "Only letters and white space allowed"; 
     } 
    } 

    if (empty($_POST["dob"])) 
    {$dobErr = "Date Of Birth is required";} 
    else 
    { 
    $dob = test_input($_POST["dob"]); 
    // check if date of birth format is valid 
    if (!preg_match("/^[0-9]{1,2}\-[0-9]{1,2}\-[0-9]{4}$/",$dob)) 
     { 
     $dobErr = "Invalid date format"; 
     } 
    } 

    if (empty($_POST["state"])) 
    {$stateErr = "2 Digit State Abbreviation is required";} 
    else 
    { 
    $state = test_input($_POST["state"]); 
    // match two uppercase letters with definite (one or more) whitespace on either side) 
    if (!preg_match("/\s+[A-Z]{2}\s+/ ",$state)) 
     { 
     $stateErr = "Invalid State Abbreviation"; 
    } 
    } 

    if (empty($_POST["zip"])) 
    {$zipErr = "Zip Code is required";} 
    else 
    { 
    $zip = test_input($_POST["zip"]); 
    // Validates Zip Code (5 digits plus optional -4) 
    if (!preg_match("^\d{5}(-\d{4})?$",$zip)) 
     { 
     $zipErr = "Only letters and white space allowed"; 
     } 
    } 


function test_input($data) 
{ 
    $data = trim($data); 
    $data = stripslashes($data); 
    $data = htmlspecialchars($data); 
    return $data; 
} 
?> 

<p><span class="error">* required field.</span></p> 
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
    First Name: 
    <input type="text" name="name1"> 
    <span class="error">* <?php echo $name1Err;?></span> 
    <br><br> 
    Last Name: 
    <input type="text" name="name2"> 
    <span class="error">* <?php echo $name2Err;?></span> 
    <br><br> 
    Date Of Birth: 
    <input type="text" name="dob"> 
    <span class="error"><?php echo $dobErr;?></span> 
    <br><br> 
    State: 
    <input type="text" name="state"> 
    <span class="error">* <?php echo $stateErr;?></span> 
    <br><br> 
    Zip Code: 
    <input type="text" name="zip"> 
    <span class="error">* <?php echo $zipErr;?></span> 
    <br><br> 
    <input type="submit" name="submit" value="Submit"> 
</form> 

<?php 
echo "<h2>Your Input:</h2>"; 
echo $name1; 
echo "<br>"; 
echo $name2; 
echo "<br>"; 
echo $dob; 
echo "<br>"; 
echo $state; 
echo "<br>"; 
echo $zip; 
?> 
</body> 

</html> 
+0

Проверьте ваши открытия/закрытия скобки в ваших двух участков кода, убедитесь, что они выстраиваются в линию. – Joe

+1

Занятие №1: выберите согласованный стиль для фигурных скобок и отступов и придерживайтесь его. Это значительно уменьшает эти ошибки. – deceze

+0

Возможный дубликат [Ссылка - Что означает эта ошибка в PHP?] (Http://stackoverflow.com/questions/12769982/reference-what-does-this-error-mean-in-php) – HamZa

ответ

4

Вам не хватает, чтобы закрыть окно if...

if ($_SERVER["REQUEST_METHOD"] == "POST") 
{ 
    // your code 
} 
^^^ 

лучше использовать текстовый редактор, чтобы избавиться от этого типа синтаксических ошибок

+1

спасибо .. это действительно помог мне –

Смежные вопросы