0

Twitterの同様の投稿を入力するためのテキストボックスを表示できるように、ユーザーがプロファイルページの所有者であるかどうかを確認しようとしています。

コード

$id=mysql_query("SELECT id FROM users WHERE`username`='".$_GET['username']."'");

$ultimatum_form ='';
if(isset($_SESSION['id'])){
    if($_SESSION['id']==$id){
        $ultimatum_form = 'Write an ultimatum!(220 char max)<br/>
        <form action="profile.php" method="post" enctype="multipart/form-data" name="ultimatum_form">
        <textarea name="ultimatum_field" rows="3" style="width:97%;"></textarea>
        </form>';
    }
}
print "$ultimatum_form";

私のDBには「users」というテーブルがあり、テーブルusersには「firs」、「last」、「username」、「password」、「email」、「id」という列があります。

セッションチェックの外で $ultimatum_form を設定すると、テキストフィールドが出力され、機能します。問題は、別の人のプロファイルに移動すると、テキスト フィールドが表示され、その人に投稿を書き込むことができることです。

4

2 に答える 2

1

クエリからデータを取得する必要があります。

$id=mysql_query("SELECT id FROM users WHERE`username`='".$_GET['username']."'");
$r = mysql_fetch_assoc($id);
$id = $r['id'];

その場合、$idには行「id」の値が含まれます。
pdo / mysqliを調べてください。mysqlは、次のphpバージョンでは機能しません。

ここで、より良い:

  $id=mysql_query("SELECT id FROM users WHERE`username`='".$_GET['username']."'");
    $r = mysql_fetch_assoc($id);
    $id = $r['id'];


    if(isset($_SESSION['id']))
    {
        if($_SESSION['id']==$id)
        {
            echo '
             Write an ultimatum!(220 char max)<br/>
            <form action="profile.php" method="post" enctype="multipart/form-data" name="ultimatum_form">
            <textarea name="ultimatum_field" rows="3" style="width:97%;"></textarea>
            </form>';
        }
        else
        {
            // Not users profile page
        }
    }
于 2013-02-10T23:54:26.600 に答える
0

自分がしていることを正確に行うことはできません。レコードをフェッチする必要があります。

$results = mysql_fetch_array(mysql_query("SELECT id FROM users WHERE`username`='".$_GET['username']."'"));

次に、次のことができます。

if($_SESSION['id']==$results['id']){
于 2013-02-10T23:55:53.510 に答える