[英]Block the verify e-mail address e-mail from being sent in Laravel 5.8
[英]Selecting e-mail address from database
我有这个代码选择组合的电子邮件和密码,但是当我使用登录表单回忆电子邮件时,代码失败并给我这个错误:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]:
Syntax error or access violation: 1064 You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to use near '@gmail.com = 'admin'' at line 1' in C:\wamp\www\PWS\index.php on line 15
( ! ) PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to use near '@gmail.com = 'admin'' at line 1 in C:\wamp\www\PWS\index.php on line 15'
我知道为什么这不起作用,尽管它将电子邮件识别为 Thodor20@gmail.com 的值,其中 @gmail.com 由于 @ 而被分隔。 那么如何更改现有代码:
<?php
include("connect.php");
$logemail = @$_POST['email'];
$logww = @$_POST['wachtwoord'];
if(isset($_POST['submit'])){
$q2 = $db->prepare("SELECT * FROM userinfo WHERE $logemail = '$logww'");
$q2->execute(array(':email'=>$logemail,':wachtwoord'=>$logww));
echo "Login succesvol!";
}
?>
和形式:
<form method="post">
E-mail:<input type="text" name="email"><br>
Wachtwoord:<input type="password" name="wachtwoord"><br>
<input type="submit" name="submit" value="Inloggen"><br>
</form>
所以它会接受 Thodor20@gmail.com 作为 1 个完整值而不是部分?
$q2 = $db->prepare("SELECT * FROM userinfo WHERE logemail = :email");
使用准备好的语句时,您可以使用问号或命名占位符,即:email
此外,您可能还想添加另一个where
来选择 logemail = :email 和 Wachtwoord = : Wachtwoord
我认为您正在使用 wordpress。 我不知道 wordpress 查询的确切语法。 但是在这里您的select
查询中有syntax error
。
在WHERE
子句之后从$logemail
删除$
-
$q2 = $db->prepare("SELECT * FROM userinfo WHERE logemail = '$logemail'");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.