0
if(isset($_GET['action']) && $_GET['action']=='album_id=$album['id']')

ここでエラーが表示されると確信しています。このリンクがクリックされているかどうかを確認しようとしています。

<a href="<?php echo $profile_data['username'];?>?action=album_id=<?php echo $album['id'];?>">

これで、このリンクは機能し、URLに表示されるはずですが、$ album['id']をifステートメントに渡す方法がわかりません。

編集

わかりました、私はこれをしました:

<a href="<?php echo $profile_data['username'];?>?action=album_id&action_id=<?php echo $album['id'];?>"> 

if($_GET['action'] == 'album_id' && $_GET['action_id'] == $album['id']) 

アルバムが未定義の変数であるとifステートメントで未定義の変数が返されました

これは私のhtaccessファイルです:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /lr/profile.php?username=$1 [QSA]

これが私のphpファイル全体です:

<?php 
include 'core/init.php';
include 'init.image.php';
protect_page();
 include 'includes/overall/overall_header.php';


if(isset($_GET['username']) === true && empty($_GET['username']) === false){
$username       = $_GET['username'];


if(user_exists($username) === true){
$user_id        = user_id_from_username($username);
$profile_data   = user_data($user_id, 'first_name','last_name','email', 'username');
?>

    <h1><?php echo $profile_data['first_name']; ?>'s Yor Page</h1>

<div id="navWrapper">
    <ul>
        <li>
            <a href="#"><img src="uploads/profile/blank_profile.gif" width="150" height="150" id="blank_profile"></a>
        </li>

        <nav>
            <ul>
                <li>
                    <a href="<?php echo $profile_data['username'];?>?action=albums">Albums</a>
                </li>
                <li>
                    <a href="<?php echo $profile_data['username'];?>?action=music">Music</a>
                </li>
            </ul>
        </nav>
    </ul>
</div>

<?php
if(isset($_GET['action']) && $_GET['action']=='albums'){

$albums = get_profile_albums($user_id);

if(empty($albums)){
echo 'No Albums';
}else{
foreach($albums as $album){
if (empty($album['image'])) {

    $album['image'] = 'uploads/profile/blank_profile.gif';
}

?>
 <p><?php echo $album['name'],' (', $album['count'], ')'?> <br />
  <a href="<?php echo $profile_data['username']; ?>?action=album&album_id=<?php echo $album['id']; ?>">
    <img src="uploads/thumbs/<?php echo $album['id'];?>/<?php echo $album['image'];?>" />
  </a><br />
  <?php echo $album['description'];?>...<br />
  </p>
<?php



}


}


}
else if (isset($_GET['action']) && $_GET['action']=='album' && isset($_GET['album_id'])){
echo 'albums';
}







if(isset($_GET['action']) && $_GET['action']=='music'){
echo'<h1>Music</h1>';
}

}else{
    echo 'Sorry, that user doesn\'t exist';
}
}else{
header('Location: index.php');
exit();
}

include 'includes/overall/overall_footer.php';
?>
4

3 に答える 3

1

適切な方法は、URLを適切にエンコードすることです。

<a href="<?php echo $profile_data['username'];?>?action=<?php echo urlencode('album_id='.$album['id']); ?>">

そしてそれをデコードします

if(isset($_GET['action']) && urldecode($_GET['action'])=='album_id='.$album['id'])
于 2012-08-02T01:50:59.343 に答える
0

宛先がありません。アクセスしようとしているphpファイルはどこにありますか?あなたはから始めましたusername。こちらをチェックhref="<?php echo $profile_data['username'];?>?

アクションとIDを分けてみてください、それはおそらく私だけです、私はそれを次のように置くのはちょっと奇妙だと思いましたaction=album=1

あなたはこのように試すことができます

$_GET['action'] == 'album' && $_GET['action_id'] == $album['id']

したがって、URLは次のようになります

?action=album&action_id=1
于 2012-08-02T02:00:21.127 に答える
0

@Dreenがあなたの質問に答えたと思いますが、actionパラメーターをactionやidのようなものに分けます。

<a href="<?php echo $profile_data['username'];?>?action=album&id=<?php echo $album['id'];?>">

とチェック

if(isset($_GET['action']) && $_GET['action']=='album' && isset($_GET['id']) && $_GET['id']==$album['id'])
于 2012-08-02T02:02:51.707 に答える