제출 된 암호와 데이터베이스에서 호출 된 암호를 비교하는 데 문제가 있습니다. 모두 동일한 출력과 동일하지만, if 문에 비교했을 때 그들은 분명히 동일하지 않습니다 서로if 문에서 PHP MD5가 작동하지 않습니다.
<?php
session_start();
include("../functions.php");
connect();
$userPinLogin = $_REQUEST['pinLogin'];
$userEmailLogin = $_REQUEST['emailLogin'];
$i = session_id();
$findPin = md5($userPinLogin);
$checkUserDetails = mysql_query("SELECT * FROM agentLogins WHERE email = '$userEmailLogin' AND pin = '$findPin' ")
or die(mysql_error());
while($checkUserDetailsResults = mysql_fetch_array($checkUserDetails))
{
$testUserPin = $checkUserDetailsResults['pin'];
$userLinkId = $checkUserDetailsResults['linkId'];
$testUserEmail = $checkUserDetailsResults['email'];
}
if (empty($testUserPin))
{
header ("Location: http://www.propertyclouduk.co.uk/agentPortal/index.php?er=pass");
}
if ($findPin == $testUserPin)
{
echo "all match";
}
else
{
echo "none match";
}
?>
모두 findPin & testUserPin = ad0234829205b9033196ba818f7a872b 만에 문이 그렇지 않은 말을 거짓 온다 if 문 경기
: 당신은 몇
(email,pin)
는 해당 테이블의 고유 한 것이 확실한 경우 하나의 결과 만이 때문에, 당신은 루프를 필요로하지 않는, 그래서 당신은 지금처럼 테스트 할 수 있습니다 var_dump ($ findPin, $ testUserPin);'출력을 게시 하시겠습니까? –
이 2 차 점검을 할 필요가 없습니다. MySQL은 일치하는 경우에만 행을 리턴합니다. – cmorrissey
출력은 다음과 같습니다. 문자열 (32) "ad0234829205b9033196ba818f7a872b"문자열 (33) "ad0234829205b9033196ba818f7a872b" – Mark