Как войти в систему, аутентифицируя имя пользователя и пароль в базе данных MySQL? - PullRequest
2 голосов
/ 24 августа 2010

Привет всем ночам там:),

Мне нужно аутентифицировать имя пользователя и пароль, указанные на странице входа, в моей таблице базы данных с именем regdata. После успешной аутентификации пользователь попадает в /countdown_clock/countdown.html. Когда я запускаю страницу, я не попадаю в указанный countdown.html, но та же страница обновляется с /authlogin.php, прикрепленным к концу URL. Может кто-нибудь подсказать, как исправить следующий код?

<?php
error_reporting(E_ALL); 
ini_set("display_errors", 1); 

$Database = array(
"Host" => 'myhost',
"User" => 'myuser',
"Password" => 'mypass',
"Name" => 'mydb'
);

$mysqli = new mysqli($Database['Host'], $Database['User'], $Database['Password'], $Database['Name']);


if ($mysqli->connect_error) 
{

?><span class="error">Connect Error (<?php echo $mysqli->connect_errno; ?>) <?php echo $mysqli->connect_error; ?></span><?php
exit();
}

$result = mysqli->prepare("SELECT username, password from regdata where username = $_POST['user_name'] and password = $_POST['password']");

if ($result && 0)
{
$result->execute();

$result->close();
header("Location: http://www.mydomain.com/countdown_clock/countdown.html"); 
}
else
{
$_SESSION['error'] = "Sorry, we cannot process your login at this time.  Please try back later.";

header("Location: http://www.mydomain.com/"); 
} 
?>

Мой login.php вызывает authlogin.php следующим образом:

<form id="form1" name="form1" method="post" action="authlogin.php">
 <input type="submit" class="form_login" alt="Login" value="" /></p></form>

Спасибо, Sid

РЕДАКТИРОВАТЬ: пересмотренное заявление

$result = mysqli->prepare("SELECT username, password from regdata where username = '" . $_POST['email_address'] . "' and password = '" . $_POST['password']."'
");

Это правильный путь?

1 Ответ

1 голос
/ 24 августа 2010

Хорошо, если форма находится на той же странице, которую вы хотите использовать:

if (!empty($_POST)) {
  // code
}

Перед выполнением остальной части вашего PHP.

Также вы можете получить сообщение об ошибке, но не включить display_errors в вашей конфигурации PHP.

Кроме того, ваш запрос не будет работать, вы не работали, но заключали в кавычки значения полей, а также не корректно экранировали ввод.

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