2012-08-02 2 views
1

Je suis en train de retourner une variable $user_id de fichier à if(isset(...)) déclaration. Je remplirai une autre instruction if, mais juste essayer de echo à la variable $user_id pour vérifier que je suis en train de la page.Comment passer la variable à la fonction isset en 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_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 
} 
} 

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



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'; 
?> 
+2

Il n'y a pas besoin d'ajouter '=== boolean'. – SomeKittens

+0

Vous le faites bien ... quel est le problème/erreur que vous obtenez? – SublymeRick

+0

Je ne suis pas sûr de ce que vous demandez? Je l'ai fait remarquer ce que: 'isset ($ _ GET [ « username »]) === true' - comme' isset' renvoie une valeur booléenne que vous n'avez pas besoin d'utiliser un '' === et si vous voulez réduire votre déclaration, vous pouvez l'écrire comme 'if (isset ($ _ GET ['nom d'utilisateur']))) qui n'évaluera que si retourne un vrai de toute façon. – Fluffeh

Répondre

3

guillemets simples ne parse pas la chaîne mais des guillemets doubles font. Par exemple:

$album_id = 1; 
echo 'album_id=$album_id '; 
echo "album_id=$album_id"; 

RÉSULTERA en album_id=$album_id album_id=1

Ainsi, $_GET['action']=='album_id=$album_id' est vérifier si $_GET['action'] est égal à 'album_id=$album_id' et non ce que $album_id est évalué à.

Votre chèque doit être plus le long de ces lignes:

if (/* ... */ && $_GET['action']=="album_id=$album_id") { 

Modifier: Suggestion.

Vous devez vérifier $_GET['action']une fois et de stocker $action. De là, créer une instruction if/else if/else vérifier chaque type d'action possible (musique, albums, album, etc.). Si un type d'action nécessite des données supplémentaires fournies par l'utilisateur, incluez-les dans le bloc if correspondant. Par exemple:

$action = $_GET['action']; 
// URL: /script.php?action=albums 
if ($action == 'albums') { 
    // ... 
} 
// URL: /script.php?action=album&album_id=12 
else if ($action == 'album') { 
    if (!empty($_GET['album_id'])) { 
      $album_id = $_GET['album_id']; 
      echo "User with id $user_id is trying to access album with id $album_id"; 
    } 
    // ... 
} 
// ... 

Plus $_GET['action']=="album_id=$album_id"

+0

Je ne sais pas ce que vous voulez dire, mais je dois passer à l'action du lien cliqué, si vous regardez plus loin dans mon code où le lien auquel cet isset fait référence est que je passe une fonction dans le lien alors comment puis-je vérifier avec l'action $ _GET pour retourner ce lien de façon dynamique> –

+0

éditer avec une suggestion. Au lieu d'avoir 'action = album_id = 121' vous vérifiez si l'action est album et ensuite vous obtenez l'album_id. J'espère que c'est ce que vous vouliez. – Kurt

+0

Non cela ne fonctionne pas J'ai édité mon code original la variable est $ album ['id'] pas $ album_id. –

0

Vous transmettez la variable correctement.

Ce que je suis plus préoccupé par la ligne suivante est:

if(isset($_GET['action']) && $_GET['action']=='album_id=$album_id'){ 

'album_id=$album_id' ne marche pas regarder à droite et est probablement la raison pour laquelle votre si est pas mise à feu ... On dirait que vous essayez d'utiliser la variable $album_id enveloppé dans des guillemets simples et qui ne remplacera pas la valeur et gardera plutôt $album_id intacte. Je ne suis pas sûr si c'est ce que vous vouliez, mais si ce n'est pas probablement la source de votre problème.

+0

ok je pensais peut-être aussi, comment puis-je passer cette variable $ album_id alors? –

+0

Je veux dire comment concatter $ album_id? –

+0

== « album_id = {album_id $} ») { – SublymeRick

Questions connexes