2017-11-17 4 views
1

私は製品の詳細ページを作成していますが、製品の詳細ページで$ _SESSION user_idが$ product user_idと同じであるかどうかを確認する機能があります何かかどうかはわかりません。ユーザーがログインしていないときは、$ session user_idが見つからないエラーが多く発生します。この問題を解決するにはどうすればログインしているユーザーがいない場合でも、セッションuser_idが製品user_idに間違っている場合と同じことができますか?例えばセッションのためにログアウトするとPHPエラーが発生する

<?php if ($_SESSION['user_id'] != $product["user_id"]): ?> 
<h3>Email van de eigenaar:</h4> 
<?php echo $userarray['email'];?> 
     <?php endif; ?> 
</div> 

ので、セッションのuser_idは、私は$ _SESSIONのuser_idが、このエコーされていませんがある場合、同じことが起こるしたい製品のuser_idに間違っている場合:<?php echo $userarray['email'];?>

をこれは私の全体の詳細ページです:

<?php include_once ('templates/header.php'); ?> 

<div class="all-content"> 
     <div class="row"> 
     <div class="col-lg-12 bg-warning" style="font-size:25px"> 

      <!-- Maak variables voor gele balkje ingelogt of niet --> 
      <?php $overditcadeau = '<center>Over dit cadeau</center>'; ?> 
      <?php $mijncadeau = '<center>Mijn cadeau</center>'; ?> 

     <?php if ($_SESSION['user_id'] != $product["user_id"]) { 
    echo $overditcadeau; 
} else { 
    echo $mijncadeau; 
    } ?> 



     </div> 
     </div> 
<div class="container"> 
    <br><br> 


<?php $userarray = $this->db->get_Where('users', array('user_id'=>$product["user_id"]))->row_array(); ?> 


    <!-- Als het cadeau niet van de ingelogde gebruiker is laat email van de eigenaar van het cadeau zien --> 
    <?php if ($_SESSION['user_id'] != $product["user_id"]): ?> 
<h3>Email van de eigenaar:</h4> 
<?php echo $userarray['email'];?> 
     <?php endif; ?> 
</div> 



<div class="container"> 
<div class="row"> 



    <div class="overditcadeau" > 
    <div class="overditcadeau_foto"> 
    <img src="<?php echo base_url(); ?>upload/<?php echo $product['product_foto']; ?>" id="cadeaufoto_overditcadeau"> 
</div> 

<div class="overditcadeau_tekst1"> 
    <h1> <div class="product_naam"> <?php echo $product['product_naam']; ?> </div> </h1> 
    <h3>Over dit cadeau</h3> 
    <div class="product_beschrijving"><?php echo $product['product_beschrijving']; ?> </div> 
    </div> 
    <div class="overditcadeau_tekst2"> 

     <!--Als het cadeau niet van de ingelogde gebruiker is laat een button zien dat heet cadeau aanvragen --> 
     <div class="cadeau_aanvragen"> 
    <?php if ($_SESSION['user_id'] != $product["user_id"]): ?> 
    <a href="<?php echo base_url() ?>/Cadeau_ontvang"> <button type="button" class="btn btn-default">Ik wil dit cadeau!</button></a> 

    <button onclick="myFunction()">Ik wil dit cadeau!</button> 
<script> 
function myFunction() { 
    alert("Uw cadeau aanvraag is geaccepteerd, Klik hier om een bericht naar de eigenaar van het cadeau te sturen."); 
} 
</script> 

<?php endif; ?> 
</div> 

<!--Als het cadeau van de ingelogde gebruiker is laat een button zien dat heet cadeau bewerken--> 
<div class="cadeau_bewerken"> 
     <?php if ($_SESSION['user_id'] == $product["user_id"]): ?> 
    <a class="btn btn-primary" href="<?php echo base_url() ?>/KdGwController/details_bewerken/<?php echo $product['product_id']; ?>"> Cadeau bewerken </a> 
<?php endif; ?> 
    </div> 
    <br> 
    <div class="cadeau_verwijderen"> 
     <?php if ($_SESSION['user_id'] == $product["user_id"]): ?> 
    <a class="btn btn-primary" href="<?php echo base_url() ?>/Delete_ctrl/delete_product_id/<?php echo $product['product_id']; ?>"> Cadeau verwijderen </a> 
<?php endif; ?> 
    </div> 

    <!--Als het cadeau van de ingelogde gebruiker is laat aantal geïnteresseerden zien--> 
    <div class="aantal_geinteresseerden"> 
     <?php if ($_SESSION['user_id'] == $product["user_id"]): ?> 
    <h4>Aantal geïnteresseerden:</h4> 
<?php endif; ?> 
    </div> 

<?php if ($_SESSION['user_id'] != $product["user_id"]): ?> 
    <div class="aangeboden_door"> Aangeboden door: 
<tr> 
    <td> 
     <a href="<?php echo base_url() . 'User/userdetails/'.$product['user_id']?>"> 
      <?php echo $userarray['voornaam'];?> 
     </a> 
    </td> 
    </tr> 
</div> 

<?php endif; ?> 
</div> 


    </div> 
    </div> 
</div> 





<div class="container"> 

<footer> 
<p>&copy; kadokado 2017, Inc.</p> 
</footer> 
<hr> 
</div> 
</div> 
<div class="clearfix"></div> 
<?php include_once ('templates/footer.php'); ?> 
+1

'場合(ISSET($ _ SESSION [ 'user_idは'])&& $ _SESSION [' user_id ']!= $ product ["user_id"]) ' – moped

答えて

3

使用isset()変数をチェックするように設定するかしません。以下のように

: -

if (isset($_SESSION['user_id']) && isset($product["user_id"]) && $_SESSION['user_id'] != $product["user_id"]) { 

注: - あまりにページで使用される他の変数に同じ操作を行います。

だから、全体のコードは以下のようにする必要があります: -

<?php include_once ('templates/header.php'); ?> 

<div class="all-content"> 
     <div class="row"> 
     <div class="col-lg-12 bg-warning" style="font-size:25px"> 

      <!-- Maak variables voor gele balkje ingelogt of niet --> 
      <?php $overditcadeau = '<center>Over dit cadeau</center>'; ?> 
      <?php $mijncadeau = '<center>Mijn cadeau</center>'; ?> 

     <?php if (isset($_SESSION['user_id']) && isset($product["user_id"]) && $_SESSION['user_id'] != $product["user_id"]) { 
    echo $overditcadeau; 
} else { 
    echo $mijncadeau; 
    } ?> 



     </div> 
     </div> 
<div class="container"> 
    <br><br> 


<?php $userarray = $this->db->get_Where('users', array('user_id'=>$product["user_id"]))->row_array(); ?> 


    <!-- Als het cadeau niet van de ingelogde gebruiker is laat email van de eigenaar van het cadeau zien --> 
    <?php if (isset($_SESSION['user_id']) && isset($product["user_id"]) && $_SESSION['user_id'] != $product["user_id"]): ?> 
<h3>Email van de eigenaar:</h4> 
<?php echo $userarray['email'];?> 
     <?php endif; ?> 
</div> 



<div class="container"> 
<div class="row"> 



    <div class="overditcadeau" > 
    <div class="overditcadeau_foto"> 
    <img src="<?php echo base_url(); ?>upload/<?php echo $product['product_foto']; ?>" id="cadeaufoto_overditcadeau"> 
</div> 

<div class="overditcadeau_tekst1"> 
    <h1> <div class="product_naam"> <?php echo $product['product_naam']; ?> </div> </h1> 
    <h3>Over dit cadeau</h3> 
    <div class="product_beschrijving"><?php echo $product['product_beschrijving']; ?> </div> 
    </div> 
    <div class="overditcadeau_tekst2"> 

     <!--Als het cadeau niet van de ingelogde gebruiker is laat een button zien dat heet cadeau aanvragen --> 
     <div class="cadeau_aanvragen"> 
    <?php if (isset($_SESSION['user_id']) && isset($product["user_id"]) && $_SESSION['user_id'] != $product["user_id"]): ?> 
    <a href="<?php echo base_url() ?>/Cadeau_ontvang"> <button type="button" class="btn btn-default">Ik wil dit cadeau!</button></a> 

    <button onclick="myFunction()">Ik wil dit cadeau!</button> 
<script> 
function myFunction() { 
    alert("Uw cadeau aanvraag is geaccepteerd, Klik hier om een bericht naar de eigenaar van het cadeau te sturen."); 
} 
</script> 

<?php endif; ?> 
</div> 

<!--Als het cadeau van de ingelogde gebruiker is laat een button zien dat heet cadeau bewerken--> 
<div class="cadeau_bewerken"> 
     <?php if (isset($_SESSION['user_id']) && isset($product["user_id"]) && $_SESSION['user_id'] == $product["user_id"]): ?> 
    <a class="btn btn-primary" href="<?php echo base_url() ?>/KdGwController/details_bewerken/<?php echo $product['product_id']; ?>"> Cadeau bewerken </a> 
<?php endif; ?> 
    </div> 
    <br> 
    <div class="cadeau_verwijderen"> 
     <?php if (isset($_SESSION['user_id']) && isset($product["user_id"]) && $_SESSION['user_id'] == $product["user_id"]): ?> 
    <a class="btn btn-primary" href="<?php echo base_url() ?>/Delete_ctrl/delete_product_id/<?php echo $product['product_id']; ?>"> Cadeau verwijderen </a> 
<?php endif; ?> 
    </div> 

    <!--Als het cadeau van de ingelogde gebruiker is laat aantal geïnteresseerden zien--> 
    <div class="aantal_geinteresseerden"> 
     <?php if (isset($_SESSION['user_id']) && isset($product["user_id"]) && $_SESSION['user_id'] == $product["user_id"]): ?> 
    <h4>Aantal geïnteresseerden:</h4> 
<?php endif; ?> 
    </div> 

<?php if ($_SESSION['user_id'] != $product["user_id"]): ?> 
    <div class="aangeboden_door"> Aangeboden door: 
<tr> 
    <td> 
     <a href="<?php echo base_url() . 'User/userdetails/'.$product['user_id']?>"> 
      <?php echo $userarray['voornaam'];?> 
     </a> 
    </td> 
    </tr> 
</div> 

<?php endif; ?> 
</div> 


    </div> 
    </div> 
</div> 





<div class="container"> 

<footer> 
<p>&copy; kadokado 2017, Inc.</p> 
</footer> 
<hr> 
</div> 
</div> 
<div class="clearfix"></div> 
<?php include_once ('templates/footer.php'); ?> 
+0

@ Learningprogrammingphp44私の編集した解決策を確認してください –

+0

助けてくれてありがとうございます:) – Learningprogrammingphp44

+0

@ Learningprogrammingphp44 :) –

0

唯一の方法$ _SESSION [「user_idのが」]あなたがこれを使用しているどこにでも設定されているかどうかを確認することです。クイックフィックスとして

(あなたは$ _SESSIONへの参照をたくさん持っている場合は[ 'user_idの'])、あなたは二行目に入れることができます:

if (empty($_SESSION['user_id'])) $_SESSION['user_id'] = -1; 
関連する問題