2017-06-14 9 views
0

私はもっと多くのPHPを学びたいと思います。URLのユーザIDを使用してナビゲートする

ログインに成功すると$ _SESSION ['user']が設定されていると思うので、ヘッダーを使用してprofile.phpページに誘導します。私がしようとしているのは、URL内のユーザーIDまたはユーザー名を使用して、他のユーザープロファイルを表示することです。例えば

/profile.php?id=7または/profile.php/John

if(!isset($_SESSION['user'])){ 
    header("Location:profile.php?id=" . $_SESSION['user']); 

}else if(!empty($_GET['name'])) { 

    $username = $_GET['name']; 
    $getUserProfile = mysqli_query($connection, "SELECT user.username, user.userID 
            FROM profile, user 
            WHERE profile.userID = user.userID 
            AND user.username = '{$username}'"); 
    while($getResult = mysqli_fetch_array($getUserProfile)){ 
     $usersname = $getResult["username"]; 
     $usersId = $getResult["userID"]; 

    } 
} 

私はこれを行うことを試みたが、私はそれを動作させることはできません。これを行う方法について私は大いに感謝しています!

+1

これは間違って 'もし(!のISSET($ _ SESSION [ 'ユーザー'])){'場合 'てみてください(ISSET($ _ SESSION [ 'ユーザー']))です{' – hungrykoala

+0

あなたのスクリプトは[SQLインジェクション攻撃]の危険にさらされています(http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) [リトルボビーテーブル](http://bobby-tables.com/)でも [入力をエスケープしている場合、その安全ではありません!](http://stackoverflow.com/questions/5741187/sql-injection-that-gets -around-mysql-real-escape-string) [準備されたパラメータ化された文](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) – RiggsFolly

答えて

2

これを試してみてください:

if(!empty($_SESSION['user']) && empty($_GET['name'])){ 
    header("Location:profile.php?id=" . $_SESSION['user']); 

}else if(!empty($_GET['name'])) { 

    $username = $_GET['name']; 
    $getUserProfile = mysqli_query($connection, "SELECT user.username, user.userID 
            FROM profile, user 
            WHERE profile.userID = user.userID 
            AND user.username = '{$username}'"); 
    while($getResult = mysqli_fetch_array($getUserProfile)){ 
     $usersname = $getResult["username"]; 
     $usersId = $getResult["userID"]; 

    } 
    header("Location:profile.php?id=" . $usersId); 
} 
+0

こんにちは、お返事ありがとう!それは確かに非常に有用でした!しかし、今はいつでもURLを入力するたびに、ログインしたユーザー(たとえば "/profile.php?id=John")に戻ってきます。マンディのプロフィールを表示したいのですが、どうすればいいですか?ありがとう – John107

+0

こんにちは@ John107、URLパラメータが空の場合、条件に含めるコードを更新しました。 – hungrykoala

関連する問題