2016-07-21 2 views
-3

'users'라는 테이블이있는 '구성원'이라는 데이터베이스가 있습니다. 사용자 테이블에는 새로운 사용자가 추가 될 때마다 자동으로 증가하는 'id'열이 있습니다. 로그인 한 사용자의 ID를 가져 와서 해당 데이터 행을 표시하려고합니다. 이 내 가입 코드SQL 데이터베이스의 특정 데이터 표시

<?php 
    session_start(); 
    // Connect to server and select databse. 
    mysql_connect("localhost", "root", "")or die("cannot connect"); 
    mysql_select_db("members")or die("cannot select DB"); 
    // username and password sent from form 
    $prepreemail=$_POST['email']; 
    $prepremypassword=$_POST['mypassword']; 
    $preemail = stripslashes($prepreemail); 
    $premypassword = stripslashes($prepremypassword); 
    $email = mysql_real_escape_string($preemail); 
    $mypassword = mysql_real_escape_string($premypassword); 
    $sql="SELECT * FROM users WHERE email='$email' 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 "login_success.php" 
    header ("location:home.html"); 
    } 
    else 
    { 
    header ("location:sign_in.php"); 
    } 
    ?> 

: 이 내 로그인 코드

<?php 
    session_start(); 
    $con = mysql_connect("localhost","root",""); 
    if (!$con) 
     { 
     die('Could not connect: ' . mysql_error()); 
     } 

    mysql_select_db("members", $con); 

    $sql="INSERT INTO users (name, email, address, dob, password) 
    VALUES 
    ('$_POST[name]','$_POST[email]','$_POST[address]','$_POST[dob]','$_POST[mypassword]')"; 

    if (!mysql_query($sql,$con)) die('Error: ' . mysql_error()); 
    $_SESSION['userID'] = "SELECT id from users"; 

    { 
     header ("Location: sign_in.php"); 
     exit; 
    } 

    mysql_close($con) 
    ?> 

그리고 이것은 내 디스플레이 사용자 세부 코드 : 그렇지 어떤 이유로

<?php 
    session_start(); 
    // Create connection 
    $conn = new mysqli("localhost", "root", "", "members"); 
    // Check connection 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 
    $userID = $_SESSION['userID']; 
    $sql = "SELECT name, email, address, dob FROM users WHERE `users`.`id`=$userID"; 
    $result = $conn->query($sql); 

    if ($result->num_rows > 0) { 
     echo "<table><tr><th>Name</th><th>Email</th><th>Address</th><th>DOB</th></tr>"; 
     // output data of each row 
     while($row = $result->fetch_assoc()) { 
      echo "<tr><td>".$row["name"]."</td><td>".$row["email"]."</td><td>".$row["address"]."</td><td>".$row["dob"]."</td></tr>"; 
     } 
     echo "</table>"; 
    } else { 
      echo "<p>No Details</p><style>p{color: #336699; font-size: 20pt; font-family: Gulim; font-weight: bold; align: center; padding: 10px; position: absolute; top: 250; left: 600; z-index: 2; border-spacing: 0px;}</style> "; 
    } 
    $conn->close(); 
    ?> 

일하고, 누군가 도와주세요!

+0

지금 무엇을 하시겠습니까? – Saurabh

+0

오류 검사가 부족합니다. – Drew

+0

인서트의 가입 청크는 고전적인 2 단계 SQL 인젝션 – Drew

답변

0

사실 귀하의 코드에는 몇 가지 실수가 있습니다 ... 그리고 귀하의 질문을 명확하게하지 ... 귀하의 질문과 코드에 대한 변경이 필요하다고 생각합니다. 데이터베이스에서 정보를 가져 오는 동안 세션 변수를 설정하십시오.

<?php 
session_start(); 
// Connect to server and select databse. 
mysql_connect("localhost", "root", "")or die("cannot connect"); 
mysql_select_db("members")or die("cannot select DB"); 
// username and password sent from form 
$prepreemail=$_POST['email']; 
$prepremypassword=$_POST['mypassword']; 
$preemail = stripslashes($prepreemail); 
$premypassword = stripslashes($prepremypassword); 
$email = mysql_real_escape_string($preemail); 
$mypassword = mysql_real_escape_string($premypassword); 
$sql="SELECT * FROM users WHERE email='$email' and password='$mypassword'"; 
$result=mysql_query($sql); 
$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" 
    $row=mysql_fetch_array($result); 
    $_SESSION['id']=$row['id']; 
    if($_SESSION['id']) 
    { 
header ("location:home.php"); 
    } 
} 
else 
{ 
header ("location:sign_in.php"); 
} 
?> 

이 기록 된 사용자의 ID는 $ _SESSION [ 'id']에 저장되어 있습니다. 당신은

<?php 
session_start(); 
$logid=$_SESSION['id']; 
echo $logid; 

아래와 같이 디스플레이 사용자 세부 코드에서 일부 내용을 변경하시기 바랍니다 아래로 PHP 페이지 home.php에서이 값을 얻을 수 있습니다.

<?php 
session_start(); 
// Create connection 
$conn = new mysqli("localhost", "root", "", "members"); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
$userID = $_SESSION['id']; 
$sql = "SELECT name, email, address, dob FROM users WHERE `users`.`id`=$userID"; 
$result = $conn->query($sql); 
if ($result->num_rows > 0) { 
echo "<table><tr><th>Name</th><th>Email</th><th>Address</th><th>DOB</th></tr>"; 
    // output data of each row 
while($row = $result->fetch_assoc()) { 
     echo "<tr><td>".$row["name"]."</td><td>".$row["email"]."</td><td>".$row["address"]."</td><td>".$row["dob"]."</td></tr>"; 
    } 

echo "</table>"; 
} else { 
echo "<p>No Details</p><style>p{color: #336699; font-size: 20pt; font-family: Gulim; font-weight: bold; align: center; padding: 10px; position: absolute; top: 250; left: 600; z-index: 2; border-spacing: 0px;}</style> "; 
} 
$conn->close(); 
+1

많이 고맙습니다. 지금 일하고있어 !!!!!! –

+0

답이 좋으면 답을 표시하고 답을 부탁하십시오. 감사합니다. – Aswathy

관련 문제