Ошибка синтаксиса PHP в последней строке? - PullRequest
1 голос
/ 10 января 2012
<?php
if (!isset($_POST['ign'], $_POST['email'])) {
    if($_POST['ign'] && $_POST['email']){
    echo "Please fill out all of the fields!";
        die;
}

if (empty($_POST['ign']) || empty($_POST['email'])) { 
    echo ("Please enter all of the values!"); 
    die;
}

if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
    $email = $_POST['email'];
    echo ("Thanks, " . htmlentities($_POST['ign']) . ", you will recieve an email when the site is complete!");

}

else {
    echo "Your email was invalid!";
    die;
}
?>

Я получаю синтаксическую ошибку в последней строке, где?> Есть ..

Кроме того, просто случайное примечание, кто-нибудь может научить меня, как вставить это в мой код?

$valid = (bool)preg_match('/^[a-zA-Z0-9]{1,30}$/', $_POST['username']);

это просто

if ($valid == TRUE) {
////////
}

или объявляет, что переменная уже запущена?

Ответы [ 4 ]

5 голосов
/ 10 января 2012

У вас отсутствует окончательная скобка } в первом блоке if.

0 голосов
/ 11 января 2012

Вы можете взять код из вашего последнего вопроса, Подтвердить ошибку электронной почты , и добавить тест для длины имени пользователя и проверить, что имя пользователя является буквенно-цифровым, как это:

<?php
if (isset($_POST['ign'], $_POST['email'])) {//do the fields exist
    if($_POST['ign'] && $_POST['email']){ //do the fields contain data
        if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {//is the email address of valid form
            if(ctype_alnum($ign) && ($ign.length > 0) && ($ign.length <= 30)){//is ign alphanumeric and between 1 and 30 characters long
                echo ("Thanks, " . htmlentities($_POST['ign']) . ", you will recieve an email when the site is complete!");
            }
            else{
                echo ("Please enter a valid user name!");
            }
        }
        else{
            echo ("Please enter a valid email!");
        }
    }
    else {
        echo ("Please enter all of the values!");
    }
}
else {
    echo ("Error in form data!");
}
?>

Примечание: если мое предположение о том, что $_POST['ign'] - это то, что вы хотели сказать в строке (bool)preg_match('/^[a-zA-Z0-9]{1,30}$/', $_POST['username']), неверно ... опишите подробнее, что вам нужно, и я обновлю свой ответ.

0 голосов
/ 10 января 2012

Вы открываете две области (с {) вокруг линии if (!isset($_POST['ign'], $_POST['email'])), поэтому вам нужно закрыть висячую область там, где вам нужно.

0 голосов
/ 10 января 2012

Не следуя логике вашего сценария, у вас есть пять открытых фигурных скобок {и четыре закрытых фигурных скобки}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...