Так что я пытаюсь создать форму, которая позволит людям, которые имеют свое имя, введенное как регистр Name_Lastname. Но ее не работает, им с помощью 2 поля ввода для именипроверка правильности имени
Имя: Фамилия:
, а затем я использую Sprintf смешивать эти два в Name_Lastname, и это работает прекрасно, но потом, когда я хочу, чтобы проверить, введенное имя имеет недопустимые функции проверки символов, не работает, даже если мое имя правильно, это показывает, что это не так.
Функция должна запретить регистрации, если пользователь не имеет ничего, кроме первого из имени и фамилии капитала, и _, пример: Joan_Mackey = Valid
joan_Mackey = invalid
joan0_Mackey = invalid
Joan92_Mackey = invalid
но не работает, вот код
if(isset($_POST['register_button']))
{
$name = clear($_POST['firstname']);
$lastname = clear($_POST['lastname']);
$createdname = sprintf("%s_%s", $name, $lastname);
$ime = mysqli_real_escape_string($con, $createdname);
$email = clear($_POST['email']);
$pass = clear($_POST['password']);
$cpass = clear($_POST['confpassword']);
// Proveravanje ako ima _ i tih sranja
$query = "SELECT * FROM Igraci WHERE Ime = '$ime'";
$stmt = mysqli_prepare($con, $query) or die(mysqli_error($con));
mysqli_stmt_bind_param($stmt, "s", $ime);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
$row = mysqli_fetch_array($result);
if(preg_match("([A-Z]{1,1})[a-z]{2,9}+_([A-Z]{1,1})[a-z]{2,9}", $createdname))
{
if($row) // Ime nije registrovano kod dole
{
echo "Uneseno ime: '$ime' ";
}
else // Ime je vec registrovano, kod dole
{
echo "Uneseno ime: '$ime' ";
}
}
else
{
echo "format imena nije validan.";
exit();
}
}
вы страдаете от грузопассажирских культового программирования. почему вы используете привязку параметров, когда у вас в вашем запросе есть ** НЕТ ** заполнители полей? и если вы используете подготовленные инструкции с привязкой параметров, почему вы вручную избегаете значений? –
[Программисты Falsenesss Believe About Names] (http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/) –
Каков другой способ избежать значений? я знаю только для реального побега – Nathaniel