반응형
우선 PHP를 처음 시도해 보았습니다 ..
다음은 코드입니다.
<?php
if (isset($_GET['name']) && isset($_GET['password'])
$uname = $_GET['name'];
$pass = $_GET['password'];
$conn = mysql_connect("localhost","DBusername","DBpassword");
mysql_select_db("DBname",$conn);
$result = mysql_query("SELECT * FROM table WHERE username=$uname and password =$password");
$row = mysql_fetch_array($result);
if(is_array($row)) {
$ip = $row[ip];
echo $ip ;
}else {
echo = "Invalid Username or Password!";
}
?>
이것은 숨겨진 페이지입니다. 사용자가 기록 된 회원의 IP 주소를 가져 오는 데 사용합니다. C #으로 작성된 Windows Form 응용 프로그램에 로그인하려고합니다.
항상 빈 페이지를 가져옵니다 ..
미리 감사드립니다
해결 방법
변수를 작은 따옴표로 묶고 그림과 같이 끝에 die (mysql_error ());
를 추가합니다.
$result = mysql_query("SELECT * FROM `dvtmembers` WHERE username='$uname' and password ='$pass'") or die(mysql_error());
경고 : 코드가 SQL 주입 공격에 노출되어 있습니다.
기타 주요 오류.
<?php
ini_set('display_startup_errors',1);
ini_set('display_errors',1);
error_reporting(-1);
if (isset($_GET['name']) && isset($_GET['password']))
{
$conn = mysql_connect("localhost","DBusername","DBpassword");
mysql_select_db("DBname",$conn);
$uname = mysql_real_escape_string($_GET['name']);
$pass = mysql_real_escape_string($_GET['password']);
$result = mysql_query("SELECT * FROM table WHERE username='$uname' and password ='$pass'") or die(mysql_error());
$row = mysql_fetch_array($result);
if(is_array($row)) {
$ip = $row['ip'];
echo $ip ;
}else {
echo "Invalid Username or Password!";
}
}
else { echo "Name and Password was not passed !";}
?>
이 ( mysql _ *
) 확장은 PHP 5.5.0
부터 더 이상 사용되지 않으며 향후 제거 될 예정입니다. 대신 MySQLi
또는 PDO_MySQL
확장을 사용해야합니다. PreparedStatements
로 전환하는 것이 SQL Injection 공격을 막는 데 훨씬 더 좋습니다!
참조 페이지 https://stackoverflow.com/questions/22600728
반응형
'MySql' 카테고리의 다른 글
MySQL 매개 변수 '@myLeft'를 정의해야합니다. (0) | 2020.12.09 |
---|---|
MySQL AWS RDS 엔드 포인트를 ping 할 수 없습니다. (0) | 2020.12.08 |
MySQL 단일 행 하위 쿼리를 반환하는 업데이트 문은 둘 이상의 행을 반환합니다. (0) | 2020.12.08 |
MySQL + JAVA 예외 : 결과 집합 시작 전 (0) | 2020.12.08 |
MySQL 타임 스탬프 필드의 날짜 부분별로 그룹화 (0) | 2020.12.08 |
댓글