前提
ログインは問題なくできログイン情報などはSESSIONで取得しています。ログイン後はプロフィールページに飛ばし、入力した値がみれている状況なのですが、今のままだと、プロフィール画面を見ている際に皆同じURLになっていて、他の人がログインすると書き変わってしまうと思い、当サイトなどにも使われている、URLに個人の情報を乗っけたURLを作りたいと思いました。
実現したいこと
他の人がログインしても変わらないように、個人のURLをつけたプロフィール画面などを作りたいです。
該当のソースコード
ログイン用のコードです。
php
1<?php 2$err_msg=""; 3session_start(); 4if(isset($_POST['login'])){ 5 $nickname = $_POST['nickname']; 6 $password = $_POST['password']; 7 try { 8 $db = new PDO('mysql:host=---------'); 9 $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 10 $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 11 $sql = 'SELECT name, nickname, password, comment FROM Info where nickname = :nickname AND password = :password'; 12 $stmt = $db->prepare($sql); 13 $stmt->bindValue(':nickname', $nickname, PDO::PARAM_STR); 14 $stmt->bindValue(':password', $password, PDO::PARAM_STR); 15 $stmt->execute(); 16 $result = $stmt->fetch(); 17 $stmt = null; 18 $db = null; 19 if(!empty($result)){ 20 $_SESSION['name'] = $result['name']; 21 $_SESSION['nickname'] = $result['nickname']; 22 $_SESSION['comment'] = $result['comment']; 23 header('Location:https://-----------'); 24 exit(); 25 }else{ $err_msg = "アカウント情報が間違っています。";} 26 }catch (PDOExeption $e) { 27 echo "値が入力されていません。\n"; 28 echo $e->getMessage(); 29 exit(); 30 } 31} 32?> 33<!DOCTYPE html> 34<html lang="ja"> 35<body> 36 <h1>ログイン</h1> 37 <form action="" method="POST"> 38 ID:<input type="text" name="nickname"><br> 39 Password:<input type="password" name="password"><br> 40 自動ログイン:<input type="checkbox" name="auto" value="fales"><br> 41 <input type="hidden" name="csrf_token" value=""> 42 <input type="submit" value="login" name="login"> 43 <input type="reset" value="reset"> 44 <a href="-------" class="fir-pro">初めてのログイン</a> 45 </form> 46</body> 47</html>
ログイン後に飛ばされるプロフィール画面のコードです。
php
1<?php 2session_start(); 3?> 4<!DOCTYPE html> 5<!--------------------------------共通のHTML--------------------------------------------------> 6<html lang="ja"> 7 <head> 8 <meta charset="utf-8"> <!--このページの情報--> 9 <meta name="viewport" content="width=device-width, initial-scale=1"> 10 <link rel="shortcut icon" href="/favicon.ico"> <!--ブックマークのアイコン--> 11 <link rel="apple-touch-icon" href="/apple-touch-icon.png"> 12 <meta name="description" content="分からないことを聞いたり説明し、分からないことをなくす.より理解を深めるwebsite。"> 13 <title>Arch Education</title> 14 <link rel="stylesheet" href="------" type="text/css"> 15 </head> 16 <body> 17<!-----------------------------header-他のページでも共通のヘッダー----------------------------> 18 <header> 19 <div class="body header header-inner header-logo"> 20 <img src="/images/header.jpg" alt="header.jpg" width="100" height="60"> 21 <a href="" class="header-botton">設定</a> 22 <h1 href="" class="header-name">profile</h1> 23 </div> 24 </header> 25<!-----------------------------nav-----------------------------------------------------------> 26<!---------------------------------------main-----------------------------------------------> 27<main> 28 <dl>[お名前]</dl> 29 <?php 30 echo $_SESSION['name']; 31 ?> 32 <dl>[ID]</dl> 33 <?php 34 echo $_SESSION['nickname']; 35 ?> 36 <dl>[自己紹介]</dl> 37 <?php 38 echo $_SESSION['comment']; 39 ?> 40 <a href="------" class="fix-pro">プロフィール編集</a> 41 42</main> 43<!-----------------------------------footer-完成----------------------------------------------> 44 <footer> 45 <div class="body wrapper footer btn-orange btn-circle btn-circle-a"> 46 <a href="-------" class="btn btn-orage btn-circle btn-circle-a">他の質問</a> 47 <a href="-------" class="btn btn-orage btn-circle btn-circle-a">Research</a> 48 <a href="-------" class="btn btn-orage btn-circle btn-circle-a">+Q</a> 49 <a href="" class="btn btn-orage btn-circle btn-circle-a">問題集</a> 50 <a href="" class="btn btn-orage btn-circle btn-circle-a">Profile</a> 51 </div> 52 <a href="" class="footer-copyright"> 53 © Arch 54 </a> 55 </footer> 56 </body> 57</html>
試したこと
インターネットでURL関連のことを調べていて当サイトで2019年に同じ質問をされている方がいたのですが、やり方までは書いておらず、URLに情報を乗っける方法がわかりません。
当サイトの他の質問者のものです。
https://teratail.com/questions/182999
Yahoo知恵袋の同じ質問者のものです。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12265339882
補足情報(FW/ツールのバージョンなど)
このサイトでは禁止行為の丸投げ方式のようにも感じるのですが、調べているとInstagramのアプリ内でのプロフィールシェア方法などがヒットしてしまい、見つけられませんでした。コンピュータ関連の語彙が足らず、十分な検索ができていないのだと思うのですが、この検索方法なら出てくると思うなどアドバイスもいただけたら幸いです。
よろしくお願いいたします。
サイトに関する情報の部分は----で隠しています。
回答2件
あなたの回答
tips
プレビュー