2012-02-04 3 views
0
$query=sprintf("SELECT member FROM".$table_name."WHERE member=%s AND memberpwd=%s",$membername,$memberpassword); 
$result=mysql_query($query); 
if(!$result) 
{ 
    echo "Unable to select members"; 
    mysql_close(); 
    exit(); 
} 
$rowNum=mysql_num_rows($result); 
if(0!=$rowNum) 
{ 
    session_start(); 
    $user=mysql_result($result,0,'member'); 
    $_SESSION['user']=$user; 
    header('Location:index.php'); 
    echo "Welcome ".$user; 
     exit(); 
} 

나는이 코드를 사용하여 로그인 사용자의 유효성을 검사하고 세션을 시작하지만 브라우저에는 아무 것도 표시되지 않습니다. 또한 로그인 사용자가 그가 방문하는 모든 페이지 (예 : 포럼 로그인 회원)에 나타나기를 원하지만 쿠키를 사용하여 세션을 사용하여 어딘가에 저장하는 방법을 모르므로 다시 방문 할 때마다 기억 될 것입니다. . 이것은 내가 할 수있는 가장 어려운 부분입니다. 누군가 나를 도울 수 있습니까?기본 로그인 사용자 및 세션 플러스 쿠키

편집 : 죄송합니다, PHP에 대한 지식이 막 도달하여 세션 부분에서 멈 춥니 다. 내가 ABC 세션에서 튜토리얼을 설명하도록하면 정말 도움이 될 것입니다. 감사합니다.

+0

당신은 SQL Injection/hack을 위해 WIDE OPEN되어 있습니다. 우선 쿼리를 매개 변수화하고 처음부터 끝까지 안전하게 수행하십시오. 그렇지 않으면 첫 번째 해커가 시작하기 전에 완료됩니다. – DRapp

+0

고마워요. 현재는 일하는 것이 필요합니다. – Mackintoast

답변

0

두 번째 특별한 경우는 "위치 :"헤더입니다. 이 머리글을 다시 브라우저로 보낼뿐만 아니라 201 또는 3xx 상태 코드가 이미 설정되어 있지 않으면 브라우저에 상태 코드 LEDIRECT (302)을 반환합니다.

<?php 
header("Location: http://www.example.com/"); /* Redirect browser */ 
/* Make sure that code below does not get executed when we redirect. */ 
exit; 
?> 

(header() on php.net)

그것은 때문에 리디렉션 표시되지 않는다. index.php에 echo "Welcome ".$_SESSION['user'];을 입력하십시오.

0

하단에 정의 된 $member이 없습니다.

echo "Welcome ".$user;

은 ... 작동합니다.

+0

그 점을 지적 해 주셔서 감사합니다. 내 게시물을 편집하면 로그인 양식이 게시 된 후에도 동일한 빈 페이지가 표시됩니다. – Mackintoast