2015-12-31 2 views
0

Я пытаюсь сравнить две переменные, получаемые из базы данных, а другое - значение текстового поля.Ошибка сравнения при сравнении двух значений

Если сравнение выполнено успешно, блок if-if вернет значение в соответствии с ним, и если они не сделают блок else, то он вернет not matched.

Но он всегда возвращает not matched, даже если я ввожу то же значение, что и в базе данных.

Мой код заключается в следующем:

<?php 
    error_reporting(0); 
    $user_id = 5; 

    $dbhost = 'localhost'; 
    $dbuser = 'root'; 
    $dbpass = ''; 
    $conn = mysql_connect($dbhost, $dbuser, $dbpass); 
    mysql_select_db('qurefle'); 
    if(! $conn) 
    { 
     die('Could not connect: ' . mysql_error()); 
    } 
    if(isset($_POST["blccrcc"])){ 
    $sql = 'SELECT l_coupon_c FROM cc_generator WHERE unique_id = "'.$user_id.'"'; 

    $retval = mysql_query($sql, $conn); 

    if(! $retval) 
    { 
     die('Could not get data: ' . mysql_error()); 
    } 

    while($row = mysql_fetch_assoc($retval)) 
    { 
     //fetching data 
     $l_coupon_c = $row['l_coupon_c']; 
     //Data Comparison 
     $friend_cc = $_POST["lccrcc"]; 

     if ($l_coupon_c == $friend_cc) { 
     echo"it is matched"; 
     } 
     else{ 
    echo"Not Matched"; 
     } 
    }//while bracket 
}//if isset bracket 
?> 

<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>LCC AND RCC Coupon Code Chain Extender</title> 
</head> 

<body> 
<center> 
<form method="POST" action=""> 
Friend cc: <input type="text" name="lccrcc"><br><br> 
<input type="submit" value="Use Coupon Code" name="blccrcc"> 

</form> 
</center> 

</body> 
</html> 

My Database snapshot is this

+0

Они имеют ту же кодировку? например, как в utf-8? –

+0

Вы обрезали оба значения, используя функцию trim()? –

ответ

1

Использование trim, а также, иногда есть некоторые дополнительные проблемы пространства тоже.

if(trim($l_coupon_c) == trim($friend_cc)) 

и print_r($_POST);, чтобы увидеть значения POST

+0

Спасибо большое исправлено, я не добавил функцию триммера. –

0

пожалуйста, передайте символ в заглавной буквы (ЗАГЛАВНОЙ) в соответствии с скриншоте баз данных, хранящихся в upepercase или преобразовать данные формы в верхний регистр с помощью функции strtoupper()

см по этой ссылке: http://php.net/manual/en/function.strtoupper.php

т.е.: strtoupper ($ _ POST [ 'lccrcc']);

он работает в вашем случае, если вы передадите данные в нижнем регистре. или сделать то же самое в обратном порядке с обращенным сохраненные данные в нижний регистр с помощью strtolower()

см по этой ссылке: http://php.net/manual/en/function.strtolower.php

+0

Спасибо, я тоже позабочусь об этом :) –

Смежные вопросы