저는 MySql을 처음 사용하면서 데이터베이스에서 값을 가져 오는 데 문제가 있습니다. 나는 그것이 정확한 방법으로 가고 있다고 생각했지만 내 echo 문장은 아무 것도 출력하지 못했다.MySQL 데이터베이스에서 값을 가져 오는 데 문제가 있습니다.
몇 가지 도움을 주시면 감사하겠습니다. 내 코드는 아래와 같습니다. 나중에 사용자 입력을 살균하는 것과 같은 보안 기능을 추가해야 할 것입니다.
<?php
$email = $_POST['email'];
$password = $_POST['password'];
$hashedPass = sha1($password);
if ((!isset($email)) || (!isset($password))) {
//Visitor needs to enter a name and password
echo "Data not provided";
} else {
echo "Received details $email and $password <br/>";
// connect to mysql
$mysql = mysqli_connect("localhost", "root", "root");
if(!$mysql) {
echo "Cannot connect to PHPMyAdmin.";
exit;
} else {
echo "Connected to phpmyadmin <br/>";
}
}
// select the appropriate database
$selected = mysqli_select_db($mysql, "languageapp");
if(!$selected) {
echo "Cannot select database.";
exit;
} else {
echo "DB Selected";
}
// query the database to see if there is a record which matches
$query = "select count(*) from user where email = '".$email."' and password = '".$hashedPass."'";
$result = mysqli_query($mysql, $query);
if(!$result) {
echo "Cannot run query.";
exit;
}
$row = mysqli_fetch_row($result);
$count = $row[0];
$userdata = mysqli_fetch_array($result, MYSQLI_BOTH);
echo $userdata[3];
echo $userdata['firstName'];
if ($count > 0) {
echo "<h1>Login successful!</h1>";
echo "<p>Welcome.</p>";
echo "<p>This page is only visible when the correct details are provided.</p>";
} else {
// visitor's name and password combination are not correct
echo "<h1>Login unsuccessful!</h1>";
echo "<p>You are not authorized to access this system.</p>";
}
?>
* 나중에 보안을 추가해야 할 것입니다. * 나중에 코드를 버리고 올바르게 다시 쓰거나 잊어 버리는 것을 의미합니다. 첫 번째로 올바르게하십시오. – Quentin
[PHP 비밀번호 FAQ] (http://php.net/manual/en/faq.passwords.php) 읽기 - sh1을 사용하지 말고 소금을 사용하십시오. – Quentin
데이터베이스 이스케이프를 너무 많이 사용하는 경우 필요하지 않은 최신 데이터베이스 API를 사용하는 것이 어떻습니까? [PDO] (http://php.net/manual/en/mysqlinfo.api.choosing.php)와 준비된 문구를 사용하는 것이 더 간단합니다. 게으른 사람들에게 딱! – mario