Как проверить связь между 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 (возможно, в другом месте на странице) содержит ошибки?