Существует множество способов выполнить то, что вы хотели бы выполнить. Используете ли вы какие-либо рамки? Возможно, это было сделано для этого. Как правило, неплохо было полагаться на стандартные функции или библиотеки для проверки.
Если нет, вам придется сделать это самостоятельно и решить, когда вы хотите, чтобы он был серверным (php) или пользовательским (javascript). Независимо от того, вы должны проверить его на стороне сервера, чтобы поймать любые вредоносные сообщения.
Если мы идем с вашим примером, это может выглядеть так, чтобы проверить php на стороне сервера, который возвращает его результаты обратно пользователю. Имейте ввиду, что это на самом деле, на самом деле небезопасно, как это с помощью $ _GET, которые могут быть изменены и т.д.
<?php
$username = '';
$warning = '';
if(isset($_POST['submit'])){
if(!empty($_POST['username']) && strlen(trim($_POST['username'])) != 0){
$username = $_POST['username'];
if(strlen($username) > 8){
$warning = 'Only 8 characters allowed!';
}else{
header("Location: next_page.php");
}
}
else
{
$warning = 'Username is empty, please provide a valid name.';
}
}
?>
<form action="form.php" method="post">
<input type="text" name="username" value="<?php echo($username); ?>" />
<?php echo($warning); ?>
<input type="submit" name="submit" />
</form>
Этот фрагмент кода сохранит ввод в случае, если что не так, и только перенаправлять на следующую страницу, если данные были корректными. Пример использования JQuery может выглядеть следующим образом:
<html lang="en">
<head>
<meta charset="utf-8">
<title>event.preventDefault demo</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
<form action="form.php" method="post">
<input type="text" name="username" id="formUsername" />
<span id="warning"> </span>
<input type="submit" name="submit" />
</form>
<script>
$(document).ready(function() {
$("form").submit(function(event) {
var username = $("#formUsername").val().trim();
if(username.length > 0 && username.length < 9){
$("form").submit();
}
else if(username.length > 8)
{
$("#warning").text("More than 8 characters.");
event.preventDefault();
}
else{
$("#warning").text("Empty username?");
event.preventDefault();
}
});
});
</script>
</body>
</html>
HTML5 атрибут 'pattern' или вы можете использовать JS. Oh и 'submit' тип! – user5173426
Вы видите элемент формы с именем «submit» в любой форме? Нет? И я тоже. Как вы можете ожидать увидеть его в своем коде? –
Также похоже, что вы смешиваете javaScript и PHP (если только вы не написали свою собственную функцию alrt(), но на основе простоты этого вопроса я очень сомневаюсь в этом). –