2011-12-10 5 views
-1

그래서 나는 만들고있는 웹 사이트에 간단한 로그인 시스템을 만드는 법을 배우고 있으며이 오류가 발생합니다.간단한 로그인 시스템 문제

공지 사항 : 정의되지 않은 상수 MyUserName 에다의 사용 -

라인 4 /home/dkitterm/public_html/index.php에 'MyUserName 에다'가정은이 라인 3-6이다.

내 로그인 확인 페이지입니다.

모든 체크 페이지의
 <?php 

    $host="localhost"; 
    $username="dkitterm"; 
    $password=""; 
    $db_name=""; 
    $tbl_name="members"; 

    //connect to server and db 
    mysql_connect("$host", "$username", "$password") or die("Server Down"); 
    mysql_select_db("$db_name") or die("cannot select DB"); 

    //username and password sent from form 
    $myusername=$_POST['myusername']; 
    $mypassword=$_POST['mypassword']; 

    //debunk 
    $myusername = stripslashes($myusername); 
    $mypassword = stripslashes($mypassword); 
    $myusername = mysql_real_escape_string($myusername); 
    $mypassword = mysql_real_escape_string($mypassword); 

    //encrypt password 
    $encrypted_mypassword=md5($mypassword); 


    $sql="SELECT * FROM members WHERE login='$myusername' and password='$encrypted_mypassword'"; 
    $result=mysql_query($sql); 

    // Mysql_num_row is counting table row 
    $count=mysql_num_rows($result); 
    // If result matched $myusername and $mypassword, table row must be 1 row 

    if($count==1){ 
    // Register $myusername, $mypassword and redirect to file     "login_success.php" 
    session_register("myusername"); 
    session_register("mypassword"); 
    header("location: index.php"); 
    } 
    else { 
    echo "Wrong Username or Password"; 
    } 
    ?> 
+0

가능한 한 빨리이 코드 전체를 버리는 것이 좋습니다. 그것은 끔찍한 사람이다 –

+1

나는 단지 사람을 배우고있다. 나는 네가 어딘가에서 시작했다고 생각한다. 여기에 도움이 필요하시면. –

+0

나는 이것이 귀하의 코드가 아니라는 것을 이해합니다. 너는 배울 어딘가에있다. ** 그것이 바로 ** 가능한 한 빨리 제거하라고 말한 이유입니다. 이 코드에서는 아무런 효과가 없습니다. 자신에게 더 좋은 것을 찾으십시오. –

답변

-1

첫째는 상수로 취급 할 것이다 당신이

session_start(); 
    if(!session_is_registered("myusername")){ 
    header("location: main_login.php"); 
    die(); 
    } 

필요 있도록 100 %를 보호하고 주변 MyUserName 에다 다른 견적을 넣어하지 않는이 아니

+0

귀하의 대답은 기술적으로 정확하지만,이 코드는 어쨌든 사용해서는 안됩니다. 그것은 지난 세기에 비추천이었습니다. –

+0

예 알아요.하지만 문제가 해결됩니다. – Sedz

+0

정말 고마워요. 그게 효과가 있었어! –

2

@Col. Sharpanel은 감가 상각 된 함수를 사용했기 때문에 이것이 더 좋은 해결책이라고 말했습니다.

session_start(); 
    if(!isset($_SESSION['myusername'])){ 
    header("location: main_login.php"); 
    } 

    <?php 

$host="localhost"; 
$username="dkitterm"; 
$password=""; 
$db_name=""; 
$tbl_name="members"; 

//connect to server and db 
mysql_connect("$host", "$username", "$password") or die("Server Down"); 
mysql_select_db("$db_name") or die("cannot select DB"); 

//username and password sent from form 
$myusername=$_POST['myusername']; 
$mypassword=$_POST['mypassword']; 

//debunk 
$myusername = stripslashes($myusername); 
$mypassword = stripslashes($mypassword); 
$myusername = mysql_real_escape_string($myusername); 
$mypassword = mysql_real_escape_string($mypassword); 

//encrypt password 
$encrypted_mypassword=md5($mypassword); 


$sql="SELECT * FROM members WHERE login='$myusername' and password='$encrypted_mypassword'"; 
$result=mysql_query($sql); 

// Mysql_num_row is counting table row 
$count=mysql_num_rows($result); 
// If result matched $myusername and $mypassword, table row must be 1 row 

if($count==1){ 
// Register $myusername, $mypassword and redirect to file     "login_success.php" 
$_SESSION['myusername'] = $myusername; 
//if you need to register the password do the same but for the password 
header("location: index.php"); 
} 
else { 
echo "Wrong Username or Password"; 
} 
?> 
+0

나는 그것을 바꿨습니다. 도와 줘서 고마워. –