1

誰かが MySQL の「アーティスト」であるかどうかを追跡します。ユーザーがアーティストの場合、アーティスト列は NULL から Y になり、この部分がソートされます。ただし、ユーザーのアーティスト列が Y であるかどうかを確認して、そのユーザーの機能を無効にする方法がわかりません。このサイトは主にログインに Cookie を使用するため、ユーザー名とパスワードが Cookie と等しい Y のクエリ チェックを行う必要があります。アーティスト = Y の場合、コンテンツを表示する必要があります。

これが私がこれまでに持っているものです:

$username = $_COOKIE['username']; 
$pass = $_COOKIE['password']; 
include ("../database.php");

if (mysql_query("SELECT artist FROM members WHERE username='$username' ,
       artist = 'Y'")) {

    //artist specific content goes here
   echo '<div class="bubble"><h1>Artist</h1><div class="innerbubble">Some text</div></div>'; 
}

今何をすべきかわからない。

4

3 に答える 3

1

他の回答が示唆している以上のいくつかの推奨事項があります。

1)Cookieは開発には最適ですが、所有者が表示および編集することができます。セッションを使用することをお勧めします。ユーザーに関する情報をそれらに保存することはできますが、そのユーザーはアクセスできません。

2)プリペアドステートメント、プリペアドステートメント、プリペアドステートメント!ユーザー名をに設定した場合

'; DELETE FROM members;--

メンバーテーブルは廃棄されます!プリペアドステートメントを使用することにより、クエリに渡される文字列はパラメータ化され、文字通りに渡されません。

ガイド:
http ://www.php.net/manual/en/pdo.connections.php
http://www.php.net/manual/en/pdo.prepared-statements.php

プリペアドステートメントを使用すると、クエリは次のようになります。

SELECT artist FROM members WHERE username=? AND artist='Y'
于 2012-06-04T20:23:15.810 に答える
0

クエリで次のことが必要だと思います。

 $res = mysql_query("SELECT count(*) FROM members WHERE username='$username' AND artist = 'Y' LIMIT 1");
   if($res){
     $count = mysql_fetch_array($res);
         if($count[0]>0){
       /* Artist content goes here */
         }
    } 
于 2012-06-04T20:06:35.777 に答える
0
 //artists if
   $username = $_COOKIE['username']; 
   $pass = $_COOKIE['password']; 
   include ("../database.php");
   $result = mysql_query("SELECT artist FROM members WHERE username='$username' , artist = 'Y'");
   $count = mysql_num_rows($result);

  // check the total count for artist 
      if ($count > 0) {
     //artist specific content goes here

       echo '<div class="bubble"><h1>Artist</h1><div class="innerbubble">Hi there, I see       that yo are an artist so you have access to loads of awesome features. Contact us with ease, upload new tracks, share your street sessions and tell everyone about your latest gigs.</div></div>'; 
   }
于 2012-06-04T20:01:20.237 に答える