-1

助けてください。ユーザーまたはゲストが私のウェブページにアクセスすると、無効になっているテキスト領域が表示され、ログインするとクリックしてこのテキスト領域を編集できるようにしようとしています。

希望どおりに設定しましたが、現時点では、ユーザーがログインすると、テキスト領域が無効なものから編集可能なものに切り替わります。しかし、その後、他のプロファイルの他のすべてのテキスト領域が消えて、ログインしたユーザーが他のユーザーのものを見ることができるが編集できないように、これらを残しておきたいですか?

それを十分に明確に説明したことを願っています。これが可能であることを願っていますか?

<?php if (isset($_SESSION['user_id'])) { 
            if ($user['id'] == $_SESSION['user_id']){
 ?>                 

<textarea id="area"  rows="10" style="
    width: 456px; 
    margin-top:3px;
    text-align:left;
    margin-left:-2px;
    height: 122px;
    resize: none; 
    border: hidden;"><?php echo $profile['bio'] ?> </textarea>

<?
} 
}
?>

<?php
    if (!logged_in()) {
        ?>

<textarea id="area-read" disabled="yes" style="
    width: 456px;
    margin-top:3px;
    text-align:left;
    margin-left:-2px;
    height: 122px;
    resize: none; 
    border: hidden;"><?php echo $profile['bio'] ?> </textarea>
<?
} 
?>
4

4 に答える 4

1

phpチェックでdisabled="yes"だけ入れてみる

<textarea id="area-read" <?php if(!logged_in()) { echo 'disabled="yes"'; } ?> 
于 2012-10-24T14:16:47.020 に答える
1

他のプロファイルでは、テキストエリアが消えます。これは、ユーザーがログインすると、セッションが設定されるためです。idまた、 が session と等しいプロファイルでのみuser_id、テキストエリアが出力されます。ifそのため、最初のifブロック内の else ケースを処理する必要があります。

<?php
if (isset($_SESSION['user_id']))
{ 
    if ($user['id'] == $_SESSION['user_id'])
    {
?>                 

    <textarea id="area"  rows="10" style="
    width: 456px; 
    margin-top:3px;
    text-align:left;
    margin-left:-2px;
    height: 122px;
    resize: none; 
    border: hidden;"><?php echo $profile['bio'] ?> </textarea>

<?php
    }
    else
    {
    //Printing the text area for other users/profiles. This is what you said was missing.
?>

    <textarea id="area-read" disabled="yes" style="
    width: 456px;
    margin-top:3px;
    text-align:left;
    margin-left:-2px;
    height: 122px;
    resize: none; 
    border: hidden;"><?php echo $profile['bio'] ?> </textarea>

<?php
   }
}
?>

<?php
    if (!logged_in()) 
    {
?>              
    <textarea id="area-read" disabled="yes" style="
    width: 456px;
    margin-top:3px;
    text-align:left;
    margin-left:-2px;
    height: 122px;
    resize: none; 
    border: hidden;"><?php echo $profile['bio'] ?> </textarea>
<?php
    } 
?>
于 2012-10-24T14:25:26.873 に答える
0

Svetlioが言ったように、チェックを無効にするだけでなく、チェックを拡張して、このユーザーのテキストエリアのみを有効にし、他のユーザーを無効にします。

<textarea id="area-read" <?php if(!logged_in() || $_SESSION['user_id']!=$user['id']) { echo 'disabled="yes"'; } ?> 

編集:

コメントに返信するために、通常、ログインしているユーザーのテキストエリアを 2 回見ることはできないため、必要なコードの完全なバージョンを次に示します。

<textarea id="area-read" <?php if(!logged_in() || $_SESSION['user_id']!=$user['id']){ echo 'disabled="disabled"' } ?> style="
    width: 456px;
    margin-top:3px;
    text-align:left;
    margin-left:-2px;
    height: 122px;
    resize: none; 
    border: hidden;"><?php echo $profile['bio'] ?> </textarea>

それはあなたが必要とするすべてです、それ以上のものはありません

于 2012-10-24T14:21:01.233 に答える
0

disabled="disabled"textarea の正しい構文です。したがって、次のことを行う必要があります。

<textarea id="area-read" <?php echo ( (!logged_in() ? (" disabled='disabled' ") : ("") ) ; ?> 
于 2012-10-24T14:21:07.717 に答える