두 테이블을 검사하여 데이터베이스에 사용자 이름과 암호가 있는지 확인하는 로그인 스크립트를 만들려고합니다.MYSQL 값이 테이블에 있는지 확인하십시오. 로그인 스크립트
두 테이블을 갖는 목적은 공급 업체/외부 사용자를위한 것이고 다른 하나는 내부 사용자를위한 것입니다.
내가 존재하지 않는 MYSQL 쿼리에 문제가 있습니다. 이로 인해 쿼리에 'oooops!'오류가 표시됩니다. 사용자 이름 또는 암호 조합이 잘못되었습니다. '
누군가 내가 여기서 잘못 가고있는 것을 보여 주실 수 있습니까? 왜 그런 다음 PHP의 반환 값을 테스트 할 수 있습니다
$query=" select
(select count(*) from $tbl_name where username = '$myusername' and password = '$mypassword') as nbInTable1,
(select count(*) from $tbl_name2 where username = '$myusername' and password = '$mypassword') as nbInTable2";
처럼 smthing하지 감사
session_start();
include("config.php");
$tbl_name="supplier_users";
$tbl_name2="internal_users";
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="select NOT EXISTS (select * from $tbl_name where username = {$myusername} and password = {$mypassword}) AND NOT EXISTS (select * from $tbl_name2 where username = {$myusername} and password = {$mypassword})";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
$row=mysql_fetch_array($result);
if($count==1) {
session_start();
$_SESSION['user']=$myusername;
$_SESSION['username']=$row['First_Name'];
if(isset($_SESSION['val'])) {
$_SESSION['val']=$_SESSION['val']+1;
} else {
$_SESSION['val']=1;
header("location:../dashboard.php");
}
} else {
echo mysql_error();
$_SESSION['message2'] = '<div id="message_box2"><div class="boxclose" id="boxclose" onclick="this.parentNode.parentNode.removeChild(this.parentNode);"></div><h23>Oooops!</h23><p>The Username and Password Combination do not match. Please try again.</p> </div>';
header("location:../index.php");
}
ob_end_flush();
들여 보내주십시오. 내 눈은 피가 나고. 코드를 좁히면, 유일한 문제가 쿼리에있는 경우 전체 프로그램을 볼 필요가 없습니다. –
코드가 SQL-Injection에 취약합니다. 더 이상 사용되지 않는 mysql_ * 사용을 중지하고 대신 mysqli_ * 또는 PDO를 사용하십시오. – Naruto
죄송 합니다만, MySQL에 정말 새로워서 mysqli에 어떻게 적응하고 주사를 예방할 수 있는지 보여주십시오. –