로그인 데이터를 데이터베이스와 비교하는 PHP 스크립트로 작업중인 HTML 로그인 페이지를 만들려고합니다. 저는 지금 당장이 작업을하려고 노력하고 있지만 실제로 작동합니다. 내가 XAMPP와 데이터베이스 (라고 leftover_youth)를 생성PHP로 데이터베이스에 연결하는 HTML 로그인을 만들려면 어떻게해야합니까?
Cannot POST /connectivity.php
: 내가 로그인 버튼을 누를 때 내가 오류 코드입니다.
UserNameID
userName
pass
현재 전체 페이지의 HTML 코드입니다.
<html>
<head lang="en">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />
<meta content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui" name="viewport">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script type="text/javascript" src="scripts/app.js"></script>
<link rel="stylesheet" href="css/stylesheet.css"/>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
<title>Project Bootstrap</title>
</head>
<body>
<header>
<div class="navlogo">
<a href="index.html">
<h1 class="Logo">Leftover Youth</h1>
</a>
<a href="index.html">
<img class="logoo" src="img/logoo.png" alt="firstimage">
</a>
</div>
</header>
<div>
<fieldset style="width:30%">
<legend>LOG-IN HERE</legend>
<form method="POST" action="connectivity.php"> User <br>
<input type="text" name="user" size="40"><br> Password <br>
<input type="password" name="pass" size="40"><br>
<input id="button" type="submit" name="submit" value="Log-In">
</form>
</fieldset>
</div>
</body>
</html>
PHP :
당신이 게시물에 $의 ID 및 $ 비밀번호 이동 connectivity.php 또한의 디렉토리/경로를 확인해야
<?php define('DB_HOST', 'localhost');
define('DB_NAME', 'leftover_youth');
define('DB_USER','root');
define('DB_PASSWORD','');
$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error());
$db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error());
$ID = $_POST['user'];
$Password = $_POST['pass'];
function SignIn()
{
session_start(); //starting the session
if(!empty($_POST['user'])) //checking User data
{
$query = mysql_query("SELECT * FROM UserName where userName = '$_POST[user]' AND pass = '$_POST[pass]'") or die(mysql_error());
$row = mysql_fetch_array($query) or die(mysql_error());
if(!empty($row['userName']) AND !empty($row['pass']))
{
$_SESSION['userName'] = $row['pass'];
echo "SUCCESSFULLY LOGIN TO USER PROFILE PAGE...";
}
else
{
echo "SORRY... YOU ENTERD WRONG ID AND PASSWORD... PLEASE RETRY...";
}
}
}
if(isset($_POST['submit'])) { SignIn();
}
?>
첫째 : 데이터베이스 쿼리를 실행하려면
도 간단하고 기존의 방법과 거의 동일 // bobby-tables.com과 SQL 인젝션에 관한 이야기와 그것을 막는 방법 지금 당신의 코드는 정말로 취약하고 시스템에 대한 지식 없이도 몇 초 안에 전체 데이터베이스를 삭제할 수 있습니다. Alwqys는 사용자 입력이있는 쿼리에 대해 준비된 문을 사용합니다. 또한'mysql_ *'을 사용하지 말라. PHP7에서 더 이상 지원되지 않으며 더 이상 지원되지 않는다. 'mysqli_ *'또는'PDO_ *'드라이버를 대신 사용하십시오 - 준비된 명령문을 지원합니다. 또한'PHP password verify function'을 위해 google - 데이터베이스에 일반 텍스트로 암호를 저장하지 마십시오. – Twinfriends
mysqli와 prepared prepared 문을 더 잘 사용하기 – Pedram
프로젝트와 함께 실시간으로 가고 싶다면 자신 만의 로그인 시스템을 만드는 대신 이미 존재하는 로그인 시스템을 사용하는 것이 좋습니다. 로그인 시스템은 당신이 정말로 그들을 안전하게 만들고 싶다면 매우 어려운 주제이며, 보안과 우리가 PHP를 오늘날 쓰는 방식에 대해 많이 알지 못합니다. 그것은 범죄가 아니므로 2017 년에 데이터베이스를 쿼리하는 방법을 배우거나 준비된 문을 배우거나 단순히 완성 된 시스템을 사용하는 것이 좋습니다. 지금 당장은 절대 코드를 사용하지 않을 것입니다. – Twinfriends