Как проверить связь между JS и PHP

PHP-код:

$dom = new DOMDocument;
$headtitle = "Register";
$errors = array();
if(isset($_POST['register'])){
    $username = preg_replace('/[^A-Za-z]/', '', $_POST['username']);
    $name = $_POST['name'];
    $lastname = $_POST['lastname'];
    $email = $_POST['email'];
    $password = $_POST['password'];
    $c_password = $_POST['c_password'];
    $birthday = $_POST['birthday'];
    $country = $_POST['country'];
    $gender = $_POST['gender'];
    $age = $_POST['age'];
    $level = $_POST['level'];
    $date = $_POST['date'];

    if(file_exists('users/' . $username . '.xml')){
        $errors[] = '  Username already exists';
    }
    if($username == ''){
        $errors[] = '  Username is missing. Try again.';
    }
    if($name == ''){
        $errors[] = '  Name is missing. Try again.';
    }
    if($lastname == ''){
        $errors[] = '  Lastname is missing. Try again.';
    }
    if($country == ''){
        $errors[] = '  Country is missing. Try again.';
    }
    if($gender == ''){
        $errors[] = '  Gender is missing. Try again.';
    }
    if($age == ''){
        $errors[] = '  Age is missing. Try again.';
    }
    if($email == ''){
        $errors[] = '  Email is missing. Try again.';
    }
    if($password == '' || $c_password == ''){
        $errors[] = '  Passwords are missing. Try again.';
    }
    if($password != $c_password){
        $errors[] = '  Passwords do not match';
    }
    if(count($errors) == 0){
        $xml = new SimpleXMLElement('<user></user>');
        $xml->addChild('name', ($name));
        $xml->addChild('lastname', ($lastname));
        $xml->addChild('password', md5($password));
        $xml->addChild('birthday', $birthday);
        $xml->addChild('country', $country);
        $xml->addChild('gender', $gender);
        $xml->addChild('age', $age);
        $xml->addChild('email', $email);
        $xml->addChild('level', $level);
        $xml->addChild('date', $date);
        $xml->asXML('users/' . $username . '.xml');
        header('Location: index.php');
        die;
    }
}

Код Javascript:

function vaildate() {
    if (document.getElementById('username').value.length <= 4) {
        document.getElementById('errors').innerHTML = "Username must me more than 4 words <br />";
        return false;
    }
    return true;
}

Теперь моя проблема заключается в том, что, когда я нажимаю кнопку отправки (которая содержит name="login" а также onclick="vaildate();") он извиняет только ошибки PHP и игнорирует ошибки JavaScript (при условии, что id="username" имеет менее 4 слов).

Мой вопрос: как я могу заставить работать ошибки JavaScript и PHP? не только PHP и система игнорирует Javascript.

Спасибо вам всем..

РЕДАКТИРОВАТЬ:

Также я получил этот код, чтобы повторить ошибки PHP

if(count($errors) > 0){
  echo '<font color="red"><ul>';
   foreach($errors as $e){
    echo '<li>' . $e . '</li>';
   }
  echo '</ul></font>';
}

2 ответа

Решение

Попробуй это:

onclick="return vaildate();"

Вам нужно возвращать функцию validate (возвращать true или false), а не просто вызывать ее.

Ваш Javascript и PHP, который вы показываете, выглядит хорошо. Чего у нас нет, так это фактической разметки страницы входа. Я подозреваю, что ваша разметка не соответствует коду, который вы имеете в своем Javascript.

Если бы вы могли также попытаться объяснить более конкретно, что вы подразумеваете под

Мой вопрос: как я могу заставить работать ошибки JavaScript и PHP? не только PHP и система игнорирует Javascript.

Использовали ли вы отладчик Javascript, чтобы увидеть, что часть вашего Javascript (возможно, в другом месте на странице) содержит ошибки?

Другие вопросы по тегам