Warning: Undefined array key "name" in C:\Users\navig\OneDrive\Рабочий стол\Frontend\api.php on line 2 и так по line 4 and 6
<?php
$name = filter_var(trim($_POST['name']),
FILTER_SANITIZE_STRING);
$email = filter_var(trim($_POST['Email']),
FILTER_SANITIZE_STRING);
$password = filter_var(trim($_POST['password']),
FILTER_SANITIZE_STRING);
if(mb_strlen($name) < 3 || mb_strlen($name) > 50) {
echo "name password";
exit();
}
if(mb_strlen($email) < 5 || mb_strlen($email) > 40) {
echo "name password";
exit();
}
if(mb_strlen($password) < 5 || mb_strlen($password) > 50) {
echo "2 to 6 characters";
exit();
}
$mysql = new mysqli("Register-log", "root", "", "Register-log");
$mysql->query('INSERT INTO `users` (name, email, password)
VALUES($name,$email $password)');
//закрытие БД
$mysql->close();
?>
html
<!-- forma входа-->
<div class="form-box">
<form action="api.php" class="form form_signin" method="post">
<h3 class="form__title">sign in</h3>
<p>
<input type="text" class="form__input" placeholder="name">
</p>
<p>
<input type="password" class="form__input" placeholder="password">
</p>
<p>
<button class="form__btn send-button">sign in</button>
</p>
<p>
<a href="#" class="form__fogot">restore password</a>
</p>
</form>
<!-- Block регистрация -->
<form action="api.php" class="form form_signup" method="post">
<h3 class="form__title">Registration</h3>
<p>
<input type="text" class="form__input" placeholder="name">
</p>
<p>
<input type="email" class="form__input" placeholder="Email">
</p>
<p>
<input type="password" class="form__input" placeholder="password">
</p>
<p>
<button class="form__btn form__btn_signup send-button">Registration</button>
</p>
</form>
</div>
</article>
Ответы (2 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Не знаю почему вы не воспользовались переводчиком... Там пишет:
Неопределенный ключ массива "имя"
Что говорит явно о том, что нет такого ключа. Когда его не может быть? Если рассудить чисто логически - наверное тогда, когда форма не отправлена.
Автор решения: Red
→ Ссылка
У вас не приходит один из $_POST['']
при использование входных данных надо проверять на существование.
$name = filter_var(trim($_POST['name']),
FILTER_SANITIZE_STRING);
Заменяйте на подобное.
if(isset($_POST['name'])){
$name = filter_var(trim($_POST['name']),
FILTER_SANITIZE_STRING);
}else{
$name = "";
}