Это мой код проверки php!
<?php //------------------------------------------------------------------------------>PHP VALIDATION
$user="";
$pass="";
$nameErr="";
$passErr="";
//$pattern='/^[a-zA-Z0-9@_ ]*$/';
if($_SERVER['REQUEST_METHOD']=='POST')
{
if(empty($_POST['uname']))
{
$nameErr='Enter Your Name!';
}
else
{
$user = test_input($_POST['uname']);
if(!preg_match('/^[a-zA-Z0-9@_]*$/',$user))
{
$nameErr=' Re-Enter Your Name! Format Inccorrect!( only alpha, numbers,@_ are allowed)';
}
}
if(empty($_POST['pas']))
{
$passErr='Enter Your Password!';
}
else
{
$user = test_input($_POST['pas']);
if(!preg_match('/^[a-zA-Z0-9@_]*$/',$pass))
{
$passErr='Invalid Format! Re-Enter Password!';
}
}
}
function test_input($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
HTML:
<html>
<body>
<div id='shw'><?php echo $user;?></div>
<fieldset id='fld'>
<form method='post' name='f1' action='<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>'>
<table>
<tr>
<td>
User Name:<input type='text' id='uname' name='uname' class='uname' placeholder='USERNAME' autocomplete='off' autofocus maxlength='25'><span class='error'>*</span>
Password:<input type='password' id='pass' class='pass' name='pas' placeholder='PASSWORD' autocomplete='off'>
<input type='submit' name='submit' id='loggin' value='LOGIN' class='login' onclick='val()'>
</td>
</tr>
</table>
</form>
</fieldset>
<div class='errormsg' id='errmsg'><?php echo $nameErr;?></div>
</div>
</body>
</html>
Ям, имеющий problm в проверке, хочу показать имя пользователя после отправки. проблема в том, что мое имя пользователя, если оно работает, работает нормально, но оно пропускает часть пароля. iwant что он shud также проверяет поле пропуска тогда только показывает имя пользователя! пожалуйста помоги!
$user = test_input($_POST['pas']);
должен быть $pass = test_input($_POST['pas']);
Ваш текущий код набора $ пользователю в вас первый if..else
блок, он не то, что PHP пропускает свой второй, if...else
блок, это просто, что независимо от того, что этот блок будет делать, пока пользователь не уже установлен. Если вы не хотите отображать $ user, если пароль недействителен, просто установите $ user позже в свой код: $ nameErr = null; $ passErr = null;
if (empty($_POST['uname'])) {
$nameErr = 'Enter Your Name!';
} else {
$userTest = test_input($_POST['uname']);
if (!preg_match('/^[a-zA-Z0-9@_]*$/', $userTest)) {
$nameErr = ' Re-Enter Your Name! Format Inccorrect! (only alpha, numbers, @_ are allowed)';
} else {
$valid++;
}
}
if (empty($_POST['pas'])) {
$passErr = 'Enter Your Password!';
} else {
$pass = test_input($_POST['pas']);
if (!preg_match('/^[a-zA-Z0-9@_]*$/', $pass)) {
$passErr = 'Invalid Format! Re-Enter Password!';
} else {
$valid++;
}
}
if (is_null($nameErr) && is_null($passErr)) {
$user = $_POST['uname']
}
Здесь я просто проверяю, остаются ли значения $ nameErr и $ passErr в конце ваших тестов. Если оба значения равны нулю, вы можете установить $ user, так как ошибка не обнаружена.
var_dump($_POST);
в начале проверок, чтобы увидеть, что отправлено. Просто подсказка, имя функции для того, что они делают, потому что test_input не тестирует;)