2012-08-02 1 views
0
if(isset($_GET['action']) && $_GET['action']=='album_id=$album['id']') 

지금 나는 당신의 모든 나는 그것이 URL에 정상적으로이 링크는 지금이 링크 작업 및 표시 isset가 호출 될 때이 변수를 연결하거나 전달하는 방법은 무엇입니까?

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

를 클릭하면 확인하려고 여기에 오류를 볼 수 있습니다 확신하지만, 그럴 수 없어 if 문에 $ album [ 'id']를 전달하는 방법을 알아 내겠습니까?

편집

괜찮아 나는이 않았다

이 내 htaccess로

<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']) 

과 문이 앨범 변수 정의 말합니다 경우에 정의되지 않은 변수를 반환이다 파일 :

여기
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'; 
?> 
+0

는 당신이 실제로 그렇게 할 수 확인? 'action = album_id = 1'과 같은 url에 매개 변수를 넣으시겠습니까? – lusketeer

+0

예 해당 링크를 사용하여 클릭 한 앨범의 앨범 ID를 반환합니다. –

+0

좀 이상하게 느껴질 수도 있습니다. 어쩌면 저는 아직 PHP에 익숙하지 않습니다.하지만 다른 방법을 추천합니다. – lusketeer

답변

0

당신을 디코딩 대상이 없으면 액세스하려는 PHP 파일은 어디에 있습니까? username로 시작했습니다. 그냥 나 아마, 작업 및 ID를 분리하려고 여기 href="<?php echo $profile_data['username'];?>?

확인, 나는 좀 이상한이

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

그래서 URL을 것 같은 시도 할 수 있습니다 action=album=1

처럼 넣어 발견 be like like

?action=album&action_id=1 
+0

나는 그것을 시도하고 오류가있어 내 질문을 볼 내가 편집 –

+0

예 작품 URL 작동 및 사용자 이름과 앨범 ID를 올바르게 반환하지만 나는 어떤 이유로 $ album [ 'id']를 얻을 수 없다, 나는 이 코드는 이미이 사용자 프로필 페이지로 이동하기 위해 이미이 작업을 수행했으며 링크 및 GET 기능을 사용하여 사용자 프로필 페이지에 해당 사용자 사진을 연결하려고합니다. –

+0

'$ album [ 'id']'이 출력되지 않는다면 올바르게 설정했는지 확인하고 싶을 것입니다. – lusketeer

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']) 
+0

if 문에서 정의되지 않은 변수 앨범을 말합니다. –

+0

그래서 정확히 원하는 동작은 무엇입니까? if 문과 동일합니까?만약'$ album'이 당신이 if 체크를하고있는 지점에서 정의되지 않았다면 테스트를 위해 사용할 수 없습니다'$ _GET [ 'action']'s value ... – Dreen

+0

IT가 정의되었습니다 나는 그것을 반향시킬 수 있습니다 if 문 외부. –

0

@Dreen이 귀하의 질문에 대한 답변으로 생각하지만, 액션 매개 변수를 ac 기 및 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']) 
+0

아니요 그것은 if 문에서 정의되지 않은 오류가있는 동일한 앨범입니다 , 컴파일러는 오류가 모든 앨범에서 언급하지 않기 때문에 변수 끝의 [ 'id']를 인식하지 못하는 것과 같습니다. –

+0

그게'$ album [ 'id']'의 오류라고 생각합니다. 실제로 값을 설정합니까? – mask8

+0

예 if 문 외부에서 반향 출력 할 수 있으며 올바르게 에코됩니다. 실제로 URL에 그것을뿐만 아니라 내 질문에 링크가 작동하도록 가정처럼 표시합니다. –

관련 문제