2013-06-15 2 views
0

로그인 한 후 사용자 이름을 표시하려고합니다. 이메일과 비밀번호를 사용하여 로그인합니다. 나는 그들의 이름을 모아서 보여주고 싶습니다. 그들의 이름은 이메일/비밀번호가 들어있는 테이블과 같습니다. 전통적으로 아래에서 이와 같은 세션 ID를 사용합니다.세션 ID를 사용하여 mySQL에서 특정 데이터 표시

<?php 
session_start(); 
$_SESSION['first'] = $first; 
?> 

그러나 이것은 일반적으로 양식에 제출 된 데이터를위한 것이며 폼이 인증 된 후에 사용됩니다. 제 질문은 양식에서 양식을 수집하지 않고 세션 ID를 가질 수 있도록 mySQl 테이블에서 데이터를 수집하는 방법은 무엇입니까? ... 해당되는 경우

+1

그들이 로그인하는 스크립트 게시 – KyleK

+0

여기에 내 로그인 코드가 있습니다. http://jsfiddle.net/tKNbE/ –

+1

아래의 전체 답변을 참조하십시오. – KyleK

답변

0

이름을 선택하십시오. 원하는 사용자 이름과 암호가 일치하는지 확인하십시오. 당신이 당신의 로그인에 사용되지 않는 mysql_로보다 그게 훨씬 더 안전 * 기능 때문에 PDO를 사용

그들이 ... 단지 행을 가져오고 세션으로 저장 로그인 스크립트에서
if (!isset($_SESSION)) session_start(); 

$sql=sprintf("SELECT email, firstname FROM users WHERE email=%s AND password=%s", 
       $_POST["email"], $_POST["password"]); 

//You'd better use parameterized query 

$result = mysqli->query($sql); 

$row = $result->fetch_assoc(); 

if(mysqli->num_rows > 0) 
{ 
    $_SESSION["email"] = $row["email"]; 
    $_SESSION["firstname"] = $row["firstname"]; 
} 
else 
{ 
//operation for no matches 
} 
+0

로그인 작업 전에 이것을 추가합니까? 여기 내 로그인 코드 http://jsfiddle.net/tKNbE/ –

+1

jsfiddle에서 PHP 코드를 처음 보았습니다. 축하해. 그런 다음'SELECT id, ...'바로 다음에 선택하려는 필드를 추가하십시오. 그런데 PHP 피들을 사용할 수 있습니다. – zkanoca

0

...

임, 예를 .....

//start the session 
session_start(); 

//Get their credentials, as follows... 
$name = $_POST['username']; 
$pass = md5($_POST['password']); 

$stmt = $db->prepare("SELECT * FROM admin WHERE username=? AND password=?"); 
$stmt->execute(array($name, $pass)); 
$row = $stmt->fetch(PDO::FETCH_ASSOC); 

if($row > 0) { 
    //Store users info in a session 
    $_SESSION["username"] = $row["username"]; 
    $_SESSION["firstname"] = $row["firstname"]; 
    $_SESSION["auth"] = "set"; 
    //Redirect to the user area, where you can echo their name 
    header ("Location: /app"); 
    //Once in the user area, you can just echo their name like so... 
    //echo "Hello ".$_SESSION['username'].", Welcome to my site"; 

} else { 
//Redirect back to login if their info is incorrect 
header('location: /login'); 
//whatever your login page name might be... 
} 

그러나 heres는 코드

, 당신은 싶어 PDO를 사용하는 당신의 위치를 ​​변경 귀찮게하지 않는 경우 ...

include("db.php"); 
    session_start(); 
    if($_SERVER["REQUEST_METHOD"] == "POST") 
    { 
    $username=mysql_real_escape_string($_POST['username']); 
    $password=md5(mysql_real_escape_string($_POST['password'])); 

    $sql="SELECT id, username, firstname FROM admin WHERE username='$username' and passcode='$password'"; 
    $result=mysql_query($sql); 
    $row = mysql_fetch_row($result); 
    if(count($row)>0) 
    { 
    $_SESSION['auth'] = 'set'; 
    $_SESSION['username'] = $row['username']; 
    $_SESSION['firstname'] = $row['firstname']; 
    header ("Location: /app"); 
    } 
    else 
    { 
    $error="Your Hngout credentials are incorrect"; 
    } 
    } 
관련 문제