gpt4 book ai didi

php - WHERE 子句中是否有空格?

转载 作者:行者123 更新时间:2023-11-29 06:11:33 25 4
gpt4 key购买 nike

我正在为我的新项目编写帐户验证系统。目前注册/连接页面没问题!只有帐户验证页面不起作用。确认邮件通过注册页面中的电子邮件发送。

您可以在这里注册:http://protect.you-test.ch/inscription.php

您可以在这里连接:http://protect.you-test.ch/connexion.php

问题是当用户名有空间时此请求不起作用:

$sql = "SELECT user_key,verified_user FROM users WHERE login='".$login."'";

但是当没有空间时,它可以工作!

编辑:问题是随机发生的。有时它工作有时不工作(带空格)。

此问题仅出现在本页面,不会出现在连接页面!

当前代码:

<?php
include("mysql_connect.php");

$login = base64url_decode($_GET['login']);
$login = trim($login);
$login = mysql_real_escape_string($login);

echo '</br>'.$login.'</br>';
echo '</br>'.$user_key.'</br>';

$sql = "SELECT user_key,verified_user FROM users WHERE login='".$login."'";

$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);

if ($data['0'] == 0) {
$clebdd = $data['user_key'];
$actif = $data['verified_user'];

if($actif == '1') {
echo "Votre compte est déjà actif !";
} else {
if($user_key == $clebdd) {

$sql = 'UPDATE users SET verified_user = 1 WHERE login="'.$login.'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
echo "Votre compte a bien été activé !";
} else {
echo "Erreur ! Votre compte ne peut être activé ...1";
}
}
} else {
echo "Erreur ! Votre compte ne peut être activé ...2";
}

function base64url_encode($data) {
return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
}

function base64url_decode($data) {
return base64_decode(str_pad(strtr($data, '-_', '+/'), strlen($data) % 4, '=', STR_PAD_RIGHT));
}

?>

最佳答案

是的,空格会导致字符串比较失败:

 'username'
' username'
'username '

当通过常规相等测试时,它们是三个完全不同的字符串,即使人类会将它们解释为相同。

你可以试试

 $login = trim($login);

在将字符串填充到查询中之前去除字符串两侧的空格。

关于php - WHERE 子句中是否有空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8863244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com