Не знаю, как закрыть это, но я больше не могу удалить его ... Проблема решена
У меня есть форма, где пользователи вводят электронную почту, а CRO пытается запросить электронную почту в аккаунтах. База данных, чтобы найти совпадение. Проблема в том, что Sqlite3 видит символ @ как оператор и выдает ошибку. Это работает, если я объявляю это как строку, но как мне сделать это внутри Routes.pm6? Вот блок кода, над которым я работаю.
post -> 'reset' {
request-body -> (:$email) {
#Check to see if email exists in accounts
#If Exists then send email
#If not exists post email not found
$sth = $dbh.prepare(q:to/STATEMENT/);
select email from accounts WHERE email = (?)
STATEMENT
# $email = $email.Str
my $results = $sth.execute("$email");
if $results == 1 {
content 'text/html','Successful Email sent' ~ '<br><a href="/">Home</a>';
} else {
content 'text/html', "Email does not exist";
}
}
}
Я пробовал разные вещи, такие как добавление Str в теле запроса или .Str в случайных местах. Я также попытался добавить цитаты. Это файл html:
<DOCTYPE html>
<html lang="en">
<head>
<title>Reset Password</title>
</head>
<body>
<form action="/reset" method="post">
Email:<br>
<input type="text" name="email">
<br>
<input type="submit" value="Submit">
</form>
<br>
<a href="register.html">Create an Account</a>
<a href="signin.html">Sign In</a>
<br>
<a href="/">Home</a>
</body>
</html>
Что я пытаюсь сказать: как мне убедиться, что все, что вводит пользователь, является строкой, а затем запрашивается как строка в sqlite3?