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 语句 isset?

编辑

好的,我这样做了:

<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'];?>?

尝试将action和id分开,可能只有我一个人,我觉得这样说有点奇怪action=album=1

你可以试试这样

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

所以网址看起来像

?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 回答