2017-01-08 7 views
-1

データベースから現在のユーザー(セッションに格納されている)の列 'ProfilePicture'の値を取得して変数に保存する方法はありますか?ここでセッションを使用して特定のユーザーのSQLテーブルから値を取得する

クエリのための可能な構造の例である:セキュリティ上の理由

if($email="[email protected]" show 'ProfilePicture' value for that username) //declare a variable to save the value of ProfilePicture 

My sql table

<?php 

$posted = true; 

if (isset($_REQUEST['attempt'])) { 

    $link = mysqli_connect("localhost", "root", "", 'new1') or die('cant connect to database'); 
    $email = mysqli_escape_string($link, $_POST['email']); 
    $password = mysqli_escape_string($link, $_POST['Password']); 
    $query = mysqli_query($link, " SELECT * 
        FROM 360tery 
        WHERE Email='$email' 
        OR Username= '$email' 
        AND Password='$password' " 

    ) or die(mysql_error()); 

    $total = mysqli_num_rows($query); 

    if ($total > 0) { 
     session_start(); 
     $_SESSION['email'] = $email; 
     header('location: /html/updatedtimeline.html'); 
    } else { 
     echo "<script type='text/javascript'>alert('Wrong username or Password!'); window.location.href='../html/mainpage.html';</script>"; 
    } 
} 
+1

パラメータ化されたクエリを使用し、PDOのような方法でデータベースに接続する必要があります。ルーチンの照会のためにrootとしてログインしないで、十分な特権を持つ別個のユーザーを作成してください。それを使って何かをする前に、あなたの入力を検証して消毒してください! – Juned

+0

@juned私はphpとsqlの初心者ですので、簡単にフォローできますので、例や参考リンクをお願いします。 –

+0

私の答えはあなたのためにPDOに書いてあります:) –

答えて

1

、それは私のすべてのあなたのデータベース接続のためのPDOを使用勧告し、クエリにです防止するSQL Injection

コードをPDOに変更しました。また、現在のユーザーのために列ProfilePictureから値を取得し、変数$picture

ノートに保存する必要があります:あなたは、データベース接続のために、データベース、名前とパスワードを入力する必要があります。

ログインページ

<?php 

session_start(); 

$posted = true; 

if(isset($_POST['attempt'])) { 
    $con = new PDO('mysql:host=localhost;dbname=dbname', 'user', 'pass'); 
    $email = $_POST['email']; 
    $password = $_POST['Password']; 

    $stmt = $con->prepare("SELECT * FROM 360tery WHERE Email=:email OR Username=:email"); 
    $stmt->bindParam(':email', $email); 
    $stmt->execute(); 
    if($stmt->rowCount() > 0) { 
     $row = $stmt->fetch(); 
     if(password_verify($password, $row['Password'])) { 
     $_SESSION['email'] = $email; 
     header('location: /html/updatedtimeline.html'); 
     }else{ 
     echo "<script type='text/javascript'>alert('Wrong username or Password!'); window.location.href='../html/mainpage.html';</script>"; 
    } 
    } 
} 

?> 

ユーザーページ

<?php 

session_start(); 

$con = new PDO('mysql:host=localhost;dbname=dbname', 'user', 'pass'); 

$stmt = $con->prepare("SELECT ProfilePicture FROM 360tery WHERE username=:email OR Email=:email"); 
$stmt->bindParam(':email', $_SESSION['email']); 
$stmt->execute(); 
if($stmt->rowCount() > 0) { 
    $row = $stmt->fetch(); 
    $picture = $row['ProfilePicture']; 
} 

?> 

あなたがコードに誤りを見つけたり、計画通りに動作しない場合は私に知らせてください。

+0

ありがとうございます。私の問題と私はそれを理解していないと私のプロジェクトは小規模に基づいているため、私はこのPDOを使用することはできません –

関連する問題