@Cesar1

Почему не работает PHP?

$names = $_POST['name']; //Ник введённый пользоватилем
$passs = $_POST['pass']; //Пароль введённый пользоватилем
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
    $opt = [
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => false,
    ];
    $pdo = new PDO($dsn, $user, $password, $opt);
    $stmt = $pdo->prepare('SELECT password FROM accounts WHERE nickname = :nickname');
    $stmt->execute(array('nickname' => $names));
while ($row = $stmt->fetch())
{
    $passm = $row['password'] . "\n"; //Пароль полученый с бд
}
if ($passm == $passs) {
	echo "nice";
}
else {
	echo ":(";
}
echo $passm;
echo $passs;


Через echo отображает одинаковые пароли, а через if говорит что разные.
w27Jx8a.png
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
PavelK
@PavelK
$passm = $row['password'] . "\n"; Зачем перевод каретки?
Уберите, должно помочь:
$passm = $row['password'];
Ну и вообще как-то перегружено. Зачем-то цикл... Можно получить значение строки сразу, при выборке задав лимит и сразу сравнивать.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
trim($_POST['pass'])
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы