ユーザーのプロファイルを作成して、ユーザーがログインすると自分のプロファイル ページにリダイレクトされるようにしました。
login.php (関連するコードのみ)
$MemberID = user_id_from_username($username);
$_SESSION['MemberID'] = $username;
header('location: member.php?username='.$username);
メンバー.php
if (logged_in () === true){
echo "Welcome, ".$_SESSION['MemberID']. "!<br><a href='logout.php'>Logout</a>\n<a href='index.php'>Back to homepage</a></p>";
}
if(isset($_GET['username']) === true & empty ($_GET['username']) === false) {
$username = $_GET ['username'];
//check if user actually exisits
if (user_exists($username) === true) {
//get username from user id
$MemberID = user_id_from_username($username);
$profile_data =user_data($MemberID,'Name','Address','Postcode','DOB','Mobile','CoinsAvailable','Email','profile','OddJobName','Description','CoinValue','DaysAvailable');//Need to pull out stuff from oddjob table
echo $MemberID;
}else{
protect_page();
}
}
関連機能:
function user_data($MemberID){ //pass in memberid to get info about user
$data = array();//data to be returned
$MemberID =(int)$MemberID;//creating int from this input
$func_num_args = func_num_args(); //count number of arguments from user data on init.php
$func_get_args = func_get_args();
if ($func_num_args >1) { //if more then 1, unset the first element of array
unset($func_get_args[0]);
$fields = '`' . implode('`,`', $func_get_args) . '`'; //taking array and converting to string
$data = mysql_fetch_assoc(mysql_query("SELECT $fields FROM `member`,`oddjob` WHERE member.MemberID = oddjob.MemberID AND member.MemberID = $MemberID"))or die (mysql_error());
//echo $MemberID;
return $data;
}
}
function logged_in() {
return (isset($_SESSION['MemberID'])) ? true : false; //Email
}
if (logged_in() ===true) {
$session_MemberID = $_SESSION['MemberID'];//grabbing value from login
$user_data= user_data($session_MemberID,'MemberID','Name','Address','Postcode','DOB','Mobile','CoinsAvailable','Email','Password','RepeatPassword','OddJobName','Description','DaysAvailable','profile');
exit();
}
このすべてのコードにより、ユーザーがログインすると自分のページにリダイレクトされ、自分の名前が他の$profile_data
情報とともに表示されます。ここで、ユーザーが update_info.php へのリンクをクリックして自分の情報を更新できるようにしたいと考えています。しかし、メンバーがログインしたときのように update_info.php にアクセスしたときにメンバーのユーザー名を URL に表示する方法がわかりません。
メンバーページ(リンクがある場所)で試しました:
<a><?php header('location:update_info.php?username='.$username)?>">Update info</a></p>
しかし、ユーザーがログインすると、member.php ではなく update_info.php にリダイレクトされます。誰でもこれを修正する方法を教えてもらえますか? ありがとう。