Ошибки при подключении через PHP и обработке входящих данных
Что я вижу перед собой: Warning: Undefined array key "password" in D:\Site\php\check.php on line 4
Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in D:\Site\php\check.php on line 4 Недопустимая длина пароля (минимум 5 символов)
- Почему только на password ругается?
- Что не так с trim? ему какие-то доп параметры надо передать? код:
<?php
$login = filter_var(trim($_POST['login']), FILTER_SANITIZE_FULL_SPECIAL_CHARS );
$name = filter_var(trim($_POST['name']), FILTER_SANITIZE_FULL_SPECIAL_CHARS );
$password = filter_var(trim($_POST['password']), FILTER_SANITIZE_FULL_SPECIAL_CHARS );
if(mb_strlen($login) < 5 || mb_strlen($login) > 32){
echo "Недопустимая длина логина (минимум 5 символов)";
exit();
}
else if(mb_strlen($name) < 3 || mb_strlen($name) > 32){
echo "Недопустимая длина имени (минимум 3 символа)";
exit();
}
else if(mb_strlen($password) < 5 || mb_strlen($password) > 32){
echo "Недопустимая длина пароля (минимум 5 символов)";
exit();
}
$user = 'root';
$pass = '';
$db = 'users';
$host = '127.0.0.1';
$charset = 'utf-8';
$pdo = new PDO("mysql:host=$host;dbname=$db;charset=$charset", $user, $pass);
$query = $pdo -> query("INSERT INTO `users` (`login`,`name`,`password`)
VALUES('$login','$name','$password')")
?>
Ответы (1 шт):
Почему только на password ругается?
Видимо потому, что только это поле и не существует в массиве. Смотри есть ли вообще на форме поле с таким именем.
Что не так с trim?
Банально для ответа на этот вопрос надо закинуть текст в переводчик - раз. Открыть документацию - два. Это два простых действия, которые необходимо сделать сразу, как видишь ошибку/предупреждение
Там будет сказано, что метод, в который можно было передавать null в качестве параметра - устарел, теперь можно передавать исключительно строки