Получение логина для правильной работы - PullRequest
0 голосов
/ 19 ноября 2011

HTML:

HTML-код двух форм выглядит следующим образом: img1

при выборе покупателя или продавца .. img2

        <form action="#" method="post"> 
                Buyer <input type="radio" name="addType" value="Buyer" /> 
                &nbsp;&nbsp;Merchant <input type="radio" name="addType" value="Merchant" /><br />
                New PricedWrite User? <a href="../register">Register</a>
        </form>
        <div class="buyer">
            <form method="post" action="check_buyer.php">
                Username or Email: <input class="UserReg" style="width:350px;" type="text" name="userName" /> <br />
                Password:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input class="UserReg" style="width:350px;" type="password"  name="userPass" /> <br />
                <input type="submit" class="UserReg" name="submit" value="Sign In" />
            </form>
        </div><!--/buyer-->
        <br />
        <div class="merch">
            <form method="post" action="check_merchant.php">
                Username or Email: <input class="UserReg" style="width:350px;" type="text" name="userName" /> <br />
                Password: <input class="UserReg" style="width:350px;" type="password" name="userPass" /> <br />
                <input type="submit" class="UserReg" name="submit" value="Sign In" />
            </form> 

check_buyer.php (который находится в том же каталоге, что и HTML-файл)

<?php
require_once('../inc/db/dbc.php');
$connect = mysql_connect($h, $u, $p) or die ("Can't Connect to Database.");
mysql_select_db($db);

$LoginUserName = $_POST['userName'];
$LoginPassword = mysql_real_escape_string($_POST['userPass']);
//connect to the database here
$LoginUserName = mysql_real_escape_string($LoginUserName);
$query = "SELECT uUPass, dynamSalt
        FROM User
        WHERE uUName = '$LoginUserName';";
$result = mysql_query($query);
if(mysql_num_rows($result) < 1) //no such user exists
{
    echo "No Such User";
}
$ifUserExists = mysql_fetch_array($result, MYSQL_ASSOC);

$dynamSalt = $ifUserExists['dynamSalt'];  #get value of dynamSalt in query above
$SaltyPass = hash('sha512',$dynamSalt.$LoginPassword);


if($SaltyPass != $ifUserExists['uUPass']) //incorrect password
{
    echo "No Such Pass<br />";
    echo '$LoginPass Value: '.$LoginPassword;
}

else
{
echo "Success";
}

?>

В настоящее время, когда я набираю действительного пользователя и передаю, он в основном просто перезагружаетсястраница.Что не так с этим?

Я изначально создаю пропуск при регистрации:

if(!empty($_POST['userPass']))
    $escapedInputtedPass=mysql_real_escape_string($_POST['userPass']);
    $dynamSalt = mt_rand(); 
    $SaltyPass = hash('sha512',$dynamSalt.$escapedInputtedPass);

Почему это не соответствует тому, как я его проверяю?Единственное отличие состоит в том, что он не должен генерировать проход, потому что проход теперь хранится в столбце dynamSalt в user table.Кто-нибудь что-нибудь видел?$ SaltyPass = hash ('sha512', $ dynamicSalt. $ EscapedInputtedPass);

1 Ответ

0 голосов
/ 19 ноября 2011

Я полагаю, у вас есть ошибка в запросе:

$query = "SELECT uUPass, dynamSalt
        FROM User
        WHERE uUName = '$LoginUserName';";

//change to

$query = "SELECT uUPass, dynamSalt
        FROM User
        WHERE uUName = '$LoginUserName'"; //semicolon removed

Надеюсь, что работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...