2012-01-19 1 views
2

私は建物に取り組んでいるサイトを持っています。私はその場所にログイン/登録システムとメンバープロフィールシステムを用意しています。プロフィールページの表示 - ユーザーIDによって表示内容が異なります。セッションの問題

ユーザーがログインすると、自動的にプロフィールページに転送されます。彼らには、プロファイルの編集リンクをクリックしてそのデータを編集するオプションがあります。また、別のリンクをクリックしてプロフィールを表示することもできます。

現在のところ、この作品は素晴らしいです。

問題は、「ユーザーリスト」というナビゲーションバーにリンクがあることです。このリンクは、データベース内の現在のすべてのユーザーのリストをフェッチする必要があります。これは、URLの最後にuid =(適切なユーザーID)を使用しますが、これらのリンクのいずれかをクリックすると、ログインしたユーザーのものであり、クリックしたユーザーのものではありません。

私は問題が述べprofile.phpページで私の関数によって引き起こされていることを認識しています:

<?php 

include('core/init.inc.php'); 

$user_info = fetch_user_info($_SESSION['uid']); 

?> 

プロフィールページは、セッションUIDを使用するように言われているので、私は、任意のにリダイレクトすることを理解しますprofile.phpページにログインしたユーザー情報が表示されます。

この関数を$ _GET ['uid'] 'に変更すると、問題が解決します。ユーザーリストのユーザーのプロファイルを正しく表示できましたが、ログインしたユーザーはセッションのUIDへの呼び出しがないため、プロフィールを表示したり編集したりすることができません。

私はこれをどのように修正するのだろうかと思います。ログインした人以外のプロファイルと自分の個人のプロファイルをどのように分離しますか?あなたが見たいコードを教えてください。私はそれを投稿して嬉しいです。

+0

回答ありがとうございます - あなたは例がありますか?私はそれがそのユーザーID情報とセッション情報ではなく、プルする必要があるURLの最後にuid =(random#)があることを理解する必要があります。 – soshannad

答えて

2

$_GET['uid']が設定されている場合は、この変数を使用してユーザー情報を取得します。それ以外の場合は、セッション変数を使用してユーザー情報を取得します。

<?php 

include('core/init.inc.php');  
if (isset($_GET['uid']) && $_GET['uid'] !='') 
{ 
    $user_info = fetch_user_info($_GET['uid']); 
} 
else 
{ 
    $user_info = fetch_user_info($_SESSION['uid']); 
}  
?> 
+0

あなたは私の人生を救った!それは完璧に働いた!どうもありがとうございます。文字通りこれを理解しようと3日間かけて過ごした。私はPhPには新しいSUPERです。ありがとうございました!!! – soshannad

+0

OKこれを迷惑にして、ユーザーリストの問題を解決しました。セッションにログインしている間にそれらを表示できるようになりました。私が別のユーザIDでログインしたことを除いて、私はログインするユーザIDに関係なく、デフォルトでセッション情報としてユーザID#1のプロファイル情報を表示していることに気付きました。キャッシュ。 – soshannad

+0

var dumpは、ユーザーの正しい情報を引き出していることを示していますが、表示されているものはvar dumpとは異なります。 – soshannad

関連する問題