2014-04-07 7 views
0

저는 PHP 코딩에 익숙하지 않습니다. 로그인 페이지를 만들려고하는데 이해가 안되는 오류가 있습니다.로그인 페이지에서 오류를 해결하는 방법

login.php

<html> 
<body> 

<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"> 
<tr> 
<form name="form1" method="post" action="login_dash.php"> 
<td> 
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF"> 
<tr> 
<td colspan="3"><strong>User Login </strong></td> 
</tr> 
<tr> 
<td width="78">Username</td> 
<td width="6">:</td> 
<td width="294"><input name="myusername" type="text" id="myusername"></td> 
</tr> 
<tr> 
<td>Password</td> 
<td>:</td> 
<td><input name="mypassword" type="text" id="mypassword"></td> 
</tr> 
<tr> 
<td>&nbsp;</td> 
<td>&nbsp;</td> 
<td><input type="submit" name="Submit" value="Login"></td> 
</tr> 
</table> 
</td> 
</form> 
</tr> 
</table> 
</body> 
</html> 

login_dash.php 내가 couldint 오류 uderstand

오류 다음있어

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

</head> 
<body> 
<?php 
//var_dump($_POST); 
// Grab User submitted information 
$user = $_POST["myusername"]; 
$pass = $_POST["mypassword"]; 

// Connect to the database 
$con = mysql_connect("localhost","root","","jj"); 
// Make sure we connected succesfully 
if(! $con) 
{ 
    die('Connection Failed'.mysql_error()); 
} 

// Select the database to use 
mysql_select_db("jj",$con); 

$result = mysql_query("SELECT myusername, mypassword FROM login WHERE myusername = $user"); 
var_dump($result); 
$row = mysql_fetch_array($result,$con); 

if($row["myusername"]==$user && $row["mypassword"]==$pass) 
    echo"You are a validated user."; 
else 
    echo"Sorry, your credentials are not valid, Please try again."; 
?> 
</body> 
</html> 

:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\SRK\login_dash.php on line 27

+1

MyUserName 에다 = '$의 user'' (_See 작은 따옴표? _)이 –

+0

가 자신에게 호의를 수행하고 새로운 쓰지 마세요 로그인 FROM MyUserName 에다, mypassword를 선택'이어야한다 코드는 mysql_ * 함수를 사용한다. 그들은 비추천화되고 있으며 향후 PHP 버전에서 제거 될 것입니다. 그러면 코드가 작동을 멈 춥니 다. 대신에 mysqli_ * 또는 PDO 객체를 사용하십시오. –

+0

Junaid, mysqli 또는 PDO로 작성된 다른/최신 튜토리얼을 찾아 보도록 강력히 권장합니다. Google의 검색어에 해당 키워드를 추가하기 만하면됩니다. –

답변

1

쿼리가 거짓 그래서 뭔가 잘못 반환하기 때문에이 오류가 떨어져 병동에 사용되어야한다.

$result = mysql_query("SELECT myusername, mypassword FROM login WHERE myusername = '$user'"); 

와 MySQL 함수는 당신이

if (null != $rseult && 0 != count(result)) { 
    $row = mysql_fetch_array($result,$con); 
} 
+0

thnx ur qurey 작품 !!!! – Junaid

1

사용자 이름이 따옴표로 묶이지 않아서 쿼리를 실행하지 못했기 때문입니다.

$result = mysql_query("SELECT myusername, mypassword FROM login WHERE myusername = '$user'"); 

이 (mysql_*) 확장 PHP 5.5.0 추천되지 않습니다, 그리고 미래에서 제거 될 예정입니다. 대신, 문 준비 MySQLi 또는 PDO_MySQL 확장 SQL Injection attacks !

0

mysqli를 사용해야합니다 PHP 5.5에서 사용되지 않습니다보십시오?

$query = "SELECT myusername, mypassword FROM login WHERE myusername = '$user' AND mypassword = '$pass' "; 
$result_set = mysql_query($query); 
if (mysql_num_rows($result_set) == 1) { 

// your code here - basically LOGGED IN 
} 

else { 
// NOT logged in 
} 

건배, 마틴

0

방법에 대해 다음과 같이 그것을 확인해야하는 경우에는 PDO 또는

+0

또 다른 한 가지는, 코드에서 암호의 암호화를 볼 수 없다는 것입니다. 암호화 된 것과 암호화 된 것을 비교해야합니다. – HyperT