im занят этим в течение нескольких часов, чтобы решить проблему, но она не работает. Моя логика должна работать, но нет, это последнее место, где я задавал бы свой вопрос, и я делаю это прямо сейчас, надеюсь, что кто-нибудь сможет мне помочь. Я пытаюсь проверить значения $ _POST в базе данных MySql с помощью MySqli и проверять правильность подсчета. После этого я проверяю, совпадает ли пароль с указанным. Я использовал этот способ, чтобы определить, дал ли пользователь неверное имя пользователя или пароль и покажет им ошибку. Мое знание на данный момент заключается в том, что скрипт входа не читает никакого значения, которое входит в $ _POST. Я мог бы использовать некоторую большую помощь. Вот код:Форма POST, не считывая значения
HTML:
<form action="inc/login.php" method="post">
<label for="gr_username">Gamertag </label>
<input type="text" id="gr_username" name="gr_username" class="panel panel-default" placeholder="GT" style="width:120px;height:25px;"/>
<br>
<label for="gr_password">Password </label>
<input type="password" id="gr_password" name="gr_password" class="panel panel-default" placeholder="Password" style="width:120px;height:25px;"/>
<br><br>
<input type="submit" id="submit" class="btn btn-primary" value=" LOGIN "/>
</form>
PHP:
<?php
error_reporting(-1);
ini_set('display_errors', 'On');
include_once('../../inc/db.php');
$link = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
$username = mysqli_real_escape_string($_POST['gr_username']);
$password0 = mysqli_real_escape_string($_POST['gr_password']);
$password = hash('whirlpool', $password0);
if(!$link)
{
header('Location: ../login.php?err=Servers not available at the moment! Please try again later. [ERRCODE: L01]');
}
$sql = "SELECT * FROM leaders WHERE username = '" . $username . "'";
$res = mysqli_query($link, $sql);
if(!$res)
{
header('Location: ../login.php?err=Servers not available at the moment! Please try again later. [ERRCODE: L03]');
}
else
{
$totalrows = mysqli_num_rows($res);
if ($totalrows > 0) {
while($row = mysqli_fetch_assoc($res))
{
if ($password == $row['password']) {
$_SESSION['gamertag'] = $row['username'];
$_SESSION['socialclub'] = $row['socialclub'];
$_SESSION['leaderid'] = $row['id'];
} else {
header('Location: ../login.php?err=Invalid Password! Try again.');
}
}
header('Location: ../index.php?grmsg=You are successfully logged into the Leader Panel!');
} else {
header('Location: ../login.php?err=Username not found! Try again.');
}
}
?>
Надеется, что вы могли бы помочь мне. Спасибо заранее!
- А.
Вы пропустили первый аргумент 'mysqli_real_escape_string'. Первым аргументом должен быть '$ link', и вы должны вызвать его после вызова' mysqli_connect() '. – Barmar
@Barmar Спасибо за это, я только что добавил это вручную, но даже когда я не установил никакой mysqli_real_escape_string, он не сработает. –
так что происходит, когда вы публикуете форму? вам нужно 'session_start()' кстати – meda