2015-01-01 3 views
1

사용하지 않는 PHP session_register 및 session_is_registered() 함수를 사용하여이 문제를 해결하는 방법을 찾아 보았습니다. 나는 이러한 변수를 모두 포함하거나 주요 검증으로 내 이름을 계속하는 경우 여기에 내가 현재PHP 확인 로그인 확인

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

// To protect MySQL injection (more detail about MySQL injection) 
$myusername = stripslashes($myusername); 
$mypassword = stripslashes($mypassword); 
$myusername = mysql_real_escape_string($myusername); 
$mypassword = mysql_real_escape_string($mypassword); 

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$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 "home.php" 
session_start(); 
$_SESSION['myusername'] = $myusername; 
$_SESSION['mypassword'] = $mypassword; 
//session_register("myusername"); 
//session_register("mypassword"); 
header("location:home.php"); 
} 

확실하지를 내 코드를 사용하고 있습니까?

$_SESSION['myusername'] = $myusername; 

$_SESSION['mypassword'] = $mypassword; 

로그인 후 메인 페이지입니다. 내 경우에 어떤 코드를 사용해야할지 여기에서 무엇을 넣을지 전혀 모른다.

<? 
session_start(); 
if(empty($_SESSION["myusername"])){ 
header("location:index.php"); 
exit(); 
} 
?> 

내 사이트

http://pyrostudio.byethost16.com/index.php하고 사람들이 접근 할 수 있도록 내가 계정 정보를 만들었습니다. 사용자는 "ffffff"없이 ""가 있고 패스는 "ffffff"이고 실제로 세션이 등록되어 있다고 생각하지 않습니다. 다음은 로그인 후 홈 페이지입니다.

http://pyrostudio.byethost16.com/home.php

이 세션에도 등록 dosent 것을 보여주기 위해 다른 오류입니다 무시합니다. 나는 긴 질문을 사과한다. 나는 5.4가 돌아 왔을 때 무엇을해야할지 몰랐다.

+0

내가 쿠키/세션 하이재킹 열심히 :) – Richard87

+0

일반 텍스트 암호를 저장하는 것은 진짜 나쁜 관행 만들/버전 w 호스트의 IP 및 브라우저 클라이언트 원격 저장 추천 할 것입니다 사용할 수 있습니다. 암호를 데이터베이스에 저장하려면 [password_hash] (http://php.net/manual/en/function.password-hash.php)를 읽어보십시오. 또한 여러분의 코드는 더 이상 사용되지 않는'mysql' 함수를 사용하고 있으며 SQL 인젝션을 위해 널리 열려 있습니다. 앞으로 프로젝트의 기능을 보장하려면 코드를 [PDO] (http://php.net/pdo) 또는 [MySQLi] (http://php.net/mysqli)로 업데이트해야합니다. – DarkBee

+0

암호 문제를 제외하고 내 문제를보고 이해할 수있는 코드 예제가 있습니까? 해결할 수 있습니다. –

답변

0

당신은

<? 
session_start(); 
if(!empty($_SESSION["myusername"]) && isset($_SESSION["myusername"]) ){ 
//do something 
}else{ 
header("location:index.php"); 
exit(); 
} 
?> 
+0

인증을 위해'$ _SESSION [ 'myusername'] = $ myusername;과'$ _SESSION [ 'mypassword'] = $ mypassword;'를 사용합니까 아니면'$ _SESSION [ 'mypassword'] = $ mypassword ;'? –

+0

세션에 암호를 저장하지 마십시오. 암호가 필요하지 않습니다. –